Présentation du dépôt hiérarchique

Cette page décrit comment Config Sync lit les fichiers de configuration configs à partir d'un dépôt hiérarchique afin d'appliquer automatiquement la configuration obtenue à vos clusters.

Si vous souhaitez plus de flexibilité structurelle (par exemple, pour créer des sous-dossiers de ressources), vous pouvez créer un dépôt non structuré. Les dépôts non structurés sont recommandés pour la plupart des utilisateurs et peuvent être combinés avec Hierarchy Controller pour fournir un héritage d'espace de noms semblable à celui proposé par les dépôts hiérarchiques.

Pour comprendre comment Config Sync utilise un dépôt hiérarchique, il est utile que vous maîtrisez les dépôts Git et l'interface de ligne de commande git.

Structure de dépôt hiérarchique

Pour les dépôts hiérarchiques, Config Sync exploite la structure de Git (semblable à un système de fichiers) afin d'identifier les clusters ou espaces de noms auxquels une configuration est adaptée.

namespaces/

Le répertoire namespaces/ contient les configurations associées aux espaces de noms et aux objets à l'échelle d'un espace de noms. La structure de namespaces/ est le mécanisme qui gère le processus d'héritage des espaces de noms. Vous pouvez limiter les espaces de noms pouvant hériter d'une configuration à l'aide d'un objet NamespaceSelector.

cluster/

Le répertoire cluster/ contient des configurations qui s'appliquent à des clusters entiers plutôt qu'à des espaces de noms. Par défaut, toute configuration du répertoire cluster/ s'applique à chaque cluster inscrit dans Config Sync. Vous pouvez limiter les clusters susceptibles d'être affectés par une configuration en utilisant un objet ClusterSelector.

clusterregistry/

Le répertoire clusterregistry/ est facultatif et contient les configurations associées aux objets ClusterSelector. Ces objets limitent les clusters auxquels une configuration s'applique et sont référencés dans les configurations trouvées dans les répertoires cluster/ et namespaces/.

system/

Le répertoire system/ contient des configurations pour l'opérateur. Pour plus d'informations sur la configuration de Config Sync, consultez la section Installer Config Sync.

Exemple de dépôt hiérarchique

Cet exemple de dépôt hiérarchique illustre la structure d'un dépôt.

Vous pouvez constater que les répertoires d'espaces de noms abstraits eng/ et rnd/ sont imbriqués dans namespaces/. Il s'agit de répertoires d'espaces de noms abstraits, car ils ne disposent d'aucune configuration pour un espace de noms.

namespace-inheritance/config/
├── cluster
│   ├── admin-clusterrole.yaml
│   ├── namespace-reader-clusterrolebinding.yaml
│   ├── namespace-reader-clusterrole.yaml
│   ├── rbac-viewer-clusterrole.yaml
│   └── rbac-viewers.yaml
├── namespaces
│   ├── eng
│   │   ├── analytics
│   │   │   └── namespace.yaml
│   │   ├── eng-roleinding.yaml
│   │   ├── eng-role.yaml
│   │   ├── gamestore
│   │   │   ├── bob-rolebinding.yaml
│   │   │   ├── inventory-configmap.yaml
│   │   │   └── namespace.yaml
│   │   ├── network-policy-allow-gamestore-ingress.yaml
│   │   ├── quota.yaml
│   │   └── selectors.yaml
│   ├── network-policy-default-deny-all.yaml
│   ├── rnd
│   │   ├── incubator-1
│   │   │   ├── incubator-1-admin-role.yaml
│   │   │   └── namespace.yaml
│   │   └── incubator-2
│   │       └── namespace.yaml
│   └── viewers-rolebinding.yaml
└── system
    ├── README.md
    └── repo.yaml

Étape suivante