Champs RootSync et RepoSync
Cette page décrit les différents champs présents dans vos objets RootSync, RepoSync et ResourceGroup.
À propos des objets RootSync, RepoSync et ResourceGroup
Si vous installez Config Sync à l'aide de Google Cloud Console ou de Google Cloud CLI, Config Sync crée automatiquement un objet RootSync appelé root-sync
. Si vous installez Config Sync à l'aide de kubectl
, vous créez manuellement un objet RootSync. Vous créez un objet RepoSync lorsque vous configurez la synchronisation à partir de plusieurs dépôts.
Une fois ces objets créés, les API RootSync et RepoSync sont activées et vous avez accès à des fonctionnalités Config Sync supplémentaires, telles que la synchronisation à partir de plusieurs dépôts et la synchronisation des configurations Kustomize et Helm.
Pour chaque dépôt Git synchronisé avec le cluster, l'état de rapprochement de toutes les ressources est agrégé dans une ressource appelée ResourceGroup. Config Sync génère automatiquement la ressource personnalisée ResourceGroup (RS). Vous n'avez pas besoin de le déclarer et la modification des RS ResourceGroup générées par Config Sync peut entraîner un échec inattendu de Config Sync.
Le schéma suivant montre comment Config Sync crée les ressources RootSync, RepoSync et ResourceGroup :
Une fois créé, le gestionnaire de rapprochement gère le cycle de vie du rapprochement racine et de chaque processus de rapprochement des espaces de noms :
Champs RootSync et RepoSync
Les CRD RootSync et RepoSync utilisent les mêmes champs, à l'exception de spec.sourceFormat
. Pour les CRD RepoSync, spec.sourceFormat
doit être unstructured
et la valeur par défaut est également unstructured
.
Configuration pour le dépôt Git
Clé | Description |
---|---|
spec.git.auth |
Type de secret configuré pour l'accès au dépôt Git. La valeur doit être ssh , cookiefile , gcenode , gcpserviceaccount , token ou none .
La validation de ce champ est sensible à la casse. Obligatoire. |
spec.git.gcpServiceAccountEmail |
Compte de service Google Cloud utilisé pour annoter le compte de service Kubernetes du contrôleur RootSync ou RepoSync. Ce champ n'est utilisé que lorsque spec.git.auth est défini sur gcpserviceaccount . |
spec.git.branch |
Branche du dépôt Git à partir de laquelle la synchronisation doit être effectuée. Valeur par défaut : master |
spec.git.dir |
Chemin d'accès absolu du dépôt Git vers le répertoire racine contenant la configuration que vous souhaitez synchroniser. Valeur par défaut : répertoire racine (/ ) du dépôt. |
spec.git.period |
Durée entre deux synchronisations consécutives. Valeur par défaut : 15s . |
spec.git.repo |
URL du dépôt Git à partir de laquelle la synchronisation doit être effectuée. Obligatoire. |
spec.git.revision |
Révision Git (tag, commit ou hachage) à récupérer. Valeur par défaut : HEAD |
spec.git.secretRef.name |
Nom du secret permettant de se connecter à la source Git fiable. |
spec.sourceFormat |
Format de votre dépôt Git Pour les objets RootSync : peut être unstructured ou hierarchy .
Valeur par défaut : hierarchy .Pour les objets RepoSync : doit être unstructured. Par défaut : unstructured . |
spec.git.noSSLVerify |
noSSLVerify spécifie s'il faut activer ou désactiver la validation du certificat SSL. Valeur par défaut : "false". Si noSSLVerify est défini sur true, il indique à Git d'ignorer la validation du certificat SSL. Ce champ est compatible avec Anthos Config Management version 1.8.2 et ultérieure. |
Configuration du proxy pour le dépôt Git
Si les règles de sécurité de votre organisation vous obligent à acheminer le trafic via un proxy HTTP(S), vous pouvez utiliser l'URI du proxy pour configurer Config Sync de manière à communiquer avec votre hôte Git.
Clé | Description |
---|---|
spec.git.proxy |
URL de proxy avec un schéma permettant de configurer l'accès au dépôt Git à l'aide d'un proxy. Par exemple, https://proxy.internal.business.co:443 .
Ce champ n'a d'effet que lorsque spec.git.auth est défini sur cookiefile , none ou token . |
Configuration permettant de remplacer les requêtes et les limites de ressources d'un rapprochement racine ou d'un espace de noms
Clé | Description |
---|---|
spec.override.resources |
Liste des remplacements de requêtes et de limites de ressources du conteneur. Facultatif. Chaque élément de la liste contient trois champs :
Si aucune valeur de remplacement n'est définie pour une requête ou une limite de ressource, la requête ou la limite de ressource par défaut est utilisée. |
Configuration du nombre de commits Git à récupérer
Clé | Description |
---|---|
spec.override.gitSyncDepth |
gitSyncDepth vous permet de remplacer le nombre de commits Git à récupérer. Doit être inférieur ou égal à 0. Config Sync effectue un clone complet si ce champ est égal à 0, et un clone superficiel si ce champ est supérieur à 0. Si ce champ n'est pas renseigné, Config Sync le configure automatiquement. |
Configuration de la capture de l'état au niveau des ressources
Clé | Description |
---|---|
spec.override.statusMode |
statusMode vous permet d'activer ou de désactiver la capture de l'état au niveau des ressources.La valeur par défaut est enabled .Pour désactiver la capture de l'état au niveau des ressources, définissez ce champ sur disabled . |
État des objets
Clé | Description |
---|---|
status.observedGeneration |
Génération (metadata.generation) de la spécification d'une ressource RootSync ou RepoSync qui a été observée et exécutée en dernier par Config Sync. Cette valeur peut être comparée à metadata.generation, qui est un entier, et mise à jour lors de la mutation de spécifications par le serveur d'API. |
status.reconciler |
Nom du processus de rapprochement correspondant à la ressource de synchronisation. |
status.source.gitStatus.repo |
URL du dépôt Git en cours de synchronisation. |
status.source.gitStatus.revision |
Révision Git (tag, commit ou hachage) en cours de récupération. |
status.source.gitStatus.branch |
Branche du dépôt Git en cours de récupération. |
status.source.gitStatus.dir |
Chemin d'accès absolu du dépôt Git vers le répertoire racine contenant la configuration vers laquelle vous effectuez la synchronisation. |
status.source.commit |
Hachage du commit le plus récent affiché dans le dépôt. |
status.source.errors |
Liste des erreurs survenues lors de la lecture à partir du dépôt. |
status.sync.commit |
Hachage du commit le plus récent qui a été synchronisé avec le cluster. Cette valeur est mise à jour même lorsqu'un commit n'est que partiellement synchronisé en raison d'une erreur. |
status.sync.errors |
Liste des erreurs survenues lors de l'application des ressources à partir de la modification indiquée par status.sync.commit . |
status.conditions |
Dernières observations disponibles de l'état actuel du RootSync. |
Champs ResourceGroup
Champs de spécification et d'état
Clé | Description |
---|---|
spec.resources |
Liste des identifiants (groupe, genre, espace de noms, nom) pour les ressources appliquées au cluster à partir du dépôt Git spécifié dans un RS RepoSync ou un RS RootSync. Facultatif. Chaque élément de la liste contient quatre champs : group , kind , namespace et name . |
Champs d'état
Clé | Description |
---|---|
status.observedGeneration |
Génération (metadata.generation) de la spécification d'une ressource RootSync ou RepoSync qui a été observée et exécutée en dernier par le contrôleur ResourceGroup. Cette valeur peut être comparée à metadata.generation, qui est un entier, et mise à jour lors de la mutation de spécifications par le serveur d'API. |
status.conditions |
Dernières conditions observées pour la ressource ResourceGroup actuelle. Les conditions sont de deux types : Reconciling et Stalled . Lorsque la condition de type Reconciling est définie sur "true", cela signifie que la ressource ResourceGroup est en cours de rapprochement. Lorsque la condition de type Stalled est définie sur "true", cela signifie que le rapprochement est bloqué. Lorsque les deux valeurs sont définies sur "false", cela signifie que la ressource ResourceGroup actuelle est rapprochée et que l'état est à jour. |
status.resourceStatuses |
Liste des états des ressources incluses dans ".spec.resources". Chaque élément contient l'identifiant (groupe, genre, espace de noms ou nom) et l'état d'une ressource. L'état est défini sur l'une des valeurs suivantes : InProgress , Current , Failed , Terminating , NotFound ou Unknown . |
Exemples de RS
Les sections suivantes présentent des exemples de RS RootSync et Reposync.
RS RootSync
Le RS suivant a été généré à l'aide de kubectl describe rootsync root-sync -n config-management-system
.
Name: root-sync
Namespace: config-management-system
Labels: <none>
Annotations: configmanagement.gke.io/managed-by-hub: true
configmanagement.gke.io/update-time: 1623779339
API Version: configsync.gke.io/v1beta1
Kind: RootSync
Metadata:
Creation Timestamp: 2021-06-15T17:49:35Z
Generation: 1
Managed Fields:
API Version: configsync.gke.io/v1beta1
Fields Type: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.:
f:configmanagement.gke.io/managed-by-hub:
f:configmanagement.gke.io/update-time:
f:spec:
.:
f:git:
.:
f:auth:
f:branch:
f:dir:
f:period:
f:repo:
f:secretRef:
f:sourceFormat:
Manager: Google-GKEHub-Controllers-ACM
Operation: Update
Time: 2021-06-15T17:49:35Z
API Version: configsync.gke.io/v1alpha1
Fields Type: FieldsV1
fieldsV1:
f:status:
.:
f:conditions:
f:observedGeneration:
f:reconciler:
f:source:
.:
f:gitStatus:
f:sync:
Manager: reconciler-manager
Operation: Update
Time: 2021-06-15T17:49:47Z
API Version: configsync.gke.io/v1alpha1
Fields Type: FieldsV1
fieldsV1:
f:status:
f:source:
f:commit:
f:gitStatus:
f:branch:
f:dir:
f:repo:
f:revision:
f:sync:
f:commit:
f:lastUpdate:
Manager: reconciler
Operation: Update
Time: 2021-06-15T17:51:28Z
Resource Version: 4850
Self Link: /apis/configsync.gke.io/v1beta1/namespaces/config-management-system/rootsyncs/root-sync
UID: 3fd2ea19-7e16-4c69-a3a1-90b9d90677eb
Spec:
Git:
Auth: none
Branch: init
Dir: config-sync-quickstart/multirepo/root
Period: 0s
Repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
Secret Ref:
Source Format: unstructured
Status:
Conditions:
Last Transition Time: 2021-06-15T17:50:15Z
Last Update Time: 2021-06-15T17:50:15Z
Status: False
Type: Reconciling
Observed Generation: 1
Reconciler: root-reconciler
Source:
Commit: a9b7593b2df5f64b1ae5e5eb2d9cafa619029589
Git Status:
Branch: init
Dir: quickstart/multirepo/root
Repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
Revision: HEAD
Sync:
Commit: a9b7593b2df5f64b1ae5e5eb2d9cafa619029589
Last Update: 2021-06-15T17:51:28Z
Events: <none>
RS RepoSync
Le RS suivant a été généré à l'aide de kubectl describe reposync repo-sync -n config-management-system
.
Name: repo-sync
Namespace: gamestore
Labels: app.kubernetes.io/managed-by=configmanagement.gke.io
configsync.gke.io/declared-version=v1alpha1
Annotations: config.k8s.io/owning-inventory: config-management-system_root-sync
configmanagement.gke.io/cluster-name: cs-cluster-1
configmanagement.gke.io/managed: enabled
configmanagement.gke.io/source-path: quickstart/multirepo/root/reposync-gamestore.yaml
configmanagement.gke.io/token: a9b7593b2df5f64b1ae5e5eb2d9cafa619029589
configsync.gke.io/declared-fields: {"f:spec":{}}
configsync.gke.io/git-context:
{"repo":"https://github.com/GoogleCloudPlatform/anthos-config-management-samples","branch":"init","rev":"HEAD"}
configsync.gke.io/manager: :root
configsync.gke.io/resource-id: configsync.gke.io_reposync_gamestore_repo-sync
API Version: configsync.gke.io/v1beta1
Kind: RepoSync
Metadata:
Creation Timestamp: 2021-06-15T17:51:27Z
Generation: 1
Managed Fields:
API Version: configsync.gke.io/v1alpha1
Fields Type: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
f:config.k8s.io/owning-inventory:
f:configmanagement.gke.io/cluster-name:
f:configmanagement.gke.io/managed:
f:configmanagement.gke.io/source-path:
f:configmanagement.gke.io/token:
f:configsync.gke.io/declared-fields:
f:configsync.gke.io/git-context:
f:configsync.gke.io/manager:
f:configsync.gke.io/resource-id:
f:labels:
f:app.kubernetes.io/managed-by:
f:configsync.gke.io/declared-version:
f:spec:
f:git:
f:auth:
f:branch:
f:dir:
f:repo:
f:sourceFormat:
Manager: configsync.gke.io
Operation: Apply
Time: 2021-06-15T17:51:27Z
API Version: configsync.gke.io/v1alpha1
Fields Type: FieldsV1
fieldsV1:
f:status:
f:source:
f:commit:
f:gitStatus:
f:branch:
f:dir:
f:repo:
f:revision:
f:sync:
f:commit:
f:lastUpdate:
Manager: reconciler
Operation: Update
Time: 2021-06-15T17:51:53Z
API Version: configsync.gke.io/v1alpha1
Fields Type: FieldsV1
fieldsV1:
f:spec:
f:git:
f:period:
f:secretRef:
f:status:
.:
f:conditions:
f:observedGeneration:
f:reconciler:
f:source:
.:
f:gitStatus:
f:sync:
Manager: reconciler-manager
Operation: Update
Time: 2021-06-15T17:51:53Z
Resource Version: 5216
Self Link: /apis/configsync.gke.io/v1beta1/namespaces/gamestore/reposyncs/repo-sync
UID: 80d0a0d3-4ec6-4ccd-9a9d-4e2ddf0b7bbd
Spec:
Git:
Auth: none
Branch: init
Dir: quickstart/multirepo/namespaces/gamestore
Repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
Source Format: unstructured
Status:
Conditions:
Last Transition Time: 2021-06-15T17:51:56Z
Last Update Time: 2021-06-15T17:51:56Z
Status: False
Type: Reconciling
Observed Generation: 1
Reconciler: ns-reconciler-gamestore
Source:
Commit: a9b7593b2df5f64b1ae5e5eb2d9cafa619029589
Git Status:
Branch: init
Dir: quickstart/multirepo/namespaces/gamestore
Repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
Revision: HEAD
Sync:
Commit: a9b7593b2df5f64b1ae5e5eb2d9cafa619029589
Last Update: 2021-06-15T17:51:53Z
Events: <none>
Étape suivante
- Découvrez comment surveiller vos objets RootSync et RepoSync.