---
tags: Catalog Approach
---
# Catalog
## Purpose for catalog
* Normalization use case (deduplication)
* Ste data aggregation : Define all variabes for a site in a single place.
## Where do they live
They will live at three places :
* At the catalogue function level:
* <repository>/manifests/function/<...-base-catalogues>
* At the Type level , under a specific location:
*
* ***type/<type name>/shared/catalogues***
* At the cluster level , under a specific location:
* ***site/<site name>/<cluster name>/catalogues***
## Relationship between the different levels of catalogues
** Core Catalogues <-- Types <-- Site **
### Core catalogue function and type
* Will be consumed by the types when apropriate.
### Type vs cluster level catalogues
* Cluster level will use the catalogues from the type level as kustomize resource.
* We should use kustomize Patches or Strategic Patches to update type level patches when appropriate.
* Cluster level might use catalogues from others cluster levels and patch as appropriate . This allows for subcluster to target cluster parent - child relationships, as well as subcluuster - subclusre sibling relationships.
## How are subcluster treated ?
Expectation is that a subcluster is essentially cluster as defined above.