Présentation du dépôt

Cette page décrit comment Config Sync lit les fichiers de configuration configs à partir d'un dépôt Git appelé repo et applique automatiquement la configuration obtenue à vos clusters.

Prérequis

  • Familiarisez-vous avec les dépôts Git et l'interface de ligne de commande git.
  • Familiarisez-vous avec les objets Kubernetes que vous souhaitez configurer, ainsi qu'avec leurs champs obligatoires et facultatifs.

Structure du dépôt

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. Pour en savoir plus à ce sujet, cliquez sur le lien précédent.

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

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

Vous pouvez constater que les répertoires d'espaces de noms abstraits online/ et shipping-app-backend/ 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.

foo-corp
├── cluster
│   ├── namespace-reader-clusterrolebinding.yaml
│   ├── namespace-reader-clusterrole.yaml
│   ├── pod-creator-clusterrole.yaml
│   └── pod-security-policy.yaml
├── clusterregistry
│   ├── cluster-1.yaml
│   ├── cluster-2.yaml
│   ├── clusterselector-1.yaml
│   └── clusterselector-2.yaml
├── namespaces
│   ├── audit
│   │   └── namespace.yaml
│   ├── online
│   │   └── shipping-app-backend
│   │       ├── pod-creator-rolebinding.yaml
│   │       ├── quota.yaml
│   │       ├── shipping-dev
│   │       │   ├── job-creator-rolebinding.yaml
│   │       │   ├── job-creator-role.yaml
│   │       │   ├── namespace.yaml
│   │       │   └── quota.yaml
│   │       ├── shipping-prod
│   │       │   └── namespace.yaml
│   │       └── shipping-staging
│   │           └── namespace.yaml
│   ├── sre-rolebinding.yaml
│   ├── sre-supported-selector.yaml
│   └── viewers-rolebinding.yaml
└── system
    └── hierarchy-config.yaml

Étape suivante