Configurer Config Sync à l'aide de commandes kubectl

Cette page explique comment configurer Config Sync à l'aide des commandes kubectl après avoir installé Config Sync à l'aide de la console Google Cloud ou de Google Cloud CLI.

Bien que vous puissiez effectuer de nombreuses modifications de configuration à l'aide de la console ou de la CLI, vous devez utiliser des commandes kubectl pour remplacer certaines valeurs par défaut de Config Sync, contrôler la validation des certificats SSL et utiliser une autorité de certification.

Créer et modifier le fichier de configuration RootSync

Pour configurer Config Sync à l'aide des commandes kubectl, modifiez un objet RootSync en créant un fichier YAML.

Lorsque vous installez Config Sync à l'aide de la console Google Cloud ou de Google Cloud CLI, Config Sync crée automatiquement un objet RootSync nommé root-sync. Cet objet contient les informations de configuration les plus récentes pour Config Sync. Chaque fois que vous effectuez une modification dans la console Google Cloud ou la Google Cloud CLI, root-sync est mis à jour.

En savoir plus sur les champs modifiables avec kubectl

Vous pouvez apporter des modifications avancées à root-sync à l'aide des commandes kubectl pour les champs non compatibles avec la console Google Cloud ou Google Cloud CLI. Si vous souhaitez créer, puis mettre à jour des objets RootSync ou RepoSync directement à l'aide des commandes kubectl, consultez la section Champs RootSync et RepoSync.

Avant d'apporter des modifications au fichier YAML que vous créez dans la section suivante, familiarisez-vous avec le tableau suivant. Ce tableau liste les champs que vous pouvez modifier et ajouter. Si vous modifiez des champs non répertoriés dans ce tableau, Config Sync rétablit automatiquement les valeurs que vous aviez définies lors de la dernière configuration de Config Sync dans la console Google Cloud ou la Google Cloud CLI.

Clé Description
spec.git.noSSLVerify noSSLVerify indique si la vérification du certificat SSL doit être activée ou désactivée. Valeur par défaut : false.
Si noSSLVerify est défini sur true, il indique à Git d'ignorer la vérification du certificat SSL.
spec.git.caCertSecretRef.name Nom du secret contenant le certificat de l'autorité de certification. Si ce champ est fourni, le serveur Git doit utiliser un certificat émis par cette autorité de certification. Le certificat CA doit être stocké dans le secret sous une clé nommée "cert".
spec.override.resources Liste des demandes de ressources de conteneur et des remplacements de limites. Facultatif.
Chaque élément de la liste contient trois champs :
  • containerName: ce champ peut être git-sync, oci-sync, hydration-controller ou reconciler.
  • cpuRequest (facultatif)
  • cpuLimit (facultatif)
  • memoryRequest (facultatif)
  • memoryLimit (facultatif)

Lorsqu'aucune valeur de remplacement n'est fournie pour une demande ou une limite de ressource, la valeur de ressource par défaut pour la requête ou la limite est utilisée.
spec.override.gitSyncDepth gitSyncDepth vous permet d'ignorer le nombre de commits Git à récupérer.
Ne doit pas être inférieur à 0.
Config Sync effectue un clone complet si ce champ est défini sur 0, et un clone superficiel si ce champ est supérieur à 0.
Si ce champ n'est pas fourni, Config Sync le configure automatiquement.
spec.override.statusMode statusMode vous permet d'activer ou de désactiver la capture de l'état au niveau de la ressource.
La valeur par défaut est enabled.
Pour désactiver la capture de l'état au niveau de la ressource, définissez ce champ sur disabled.
spec.override.reconcileTimeout reconcileTimeout vous permet d'ignorer le seuil au-delà duquel le rapprochement des ressources d'un groupe d'application avant d'abandonner. Toutes les ressources d'un commit peuvent se trouver dans plusieurs groupes d'application en fonction des dépendances.
Le délai avant expiration par défaut est 5m.
Utilisez une chaîne pour spécifier la valeur de ce champ, par exemple 30s ou 5m.
spec.override.enableShellInRendering enableShellInRendering spécifie si l'accès à l'interface système doit être activé ou désactivé dans le processus de rendu. Les bases distantes Kustomize nécessitent un accès au shell. Si vous définissez ce champ sur true, vous pouvez accéder à l'interface système lors du processus de rendu et extraire des bases distantes à partir de dépôts publics.
La valeur par défaut est false.

Créer le fichier

Pour créer et modifier un fichier de configuration pour root-sync, procédez comme suit:

  1. Pour vous assurer de récupérer les informations de configuration du cluster approprié, configurez l'accès via la ligne de commande kubectl:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --zone ZONE \
        --project PROJECT_ID
    

    Remplacez les éléments suivants :

    • CLUSTER_NAME: nom du cluster contenant la configuration Config Sync que vous souhaitez modifier
    • ZONE : zone dans laquelle vous avez créé le cluster.
    • PROJECT_ID : ID de votre projet.
  2. Copiez les informations de configuration de l'objet RootSync créé par Config Sync dans un fichier YAML:

    kubectl get rootsync root-sync -n config-management-system -o yaml >
    FILE_NAME.yaml
    

    Remplacez FILE_NAME par le nom de votre fichier de configuration.

  3. Ouvrez le fichier YAML que vous avez créé et apportez les modifications requises à la configuration. Par exemple, pour ignorer la limite de mémoire du conteneur git-sync, ajoutez les champs suivants en gras:

    apiVersion: v1
    items:
    - apiVersion: configsync.gke.io/v1beta1
    kind: RootSync
    metadata:
    annotations:
      configmanagement.gke.io/managed-by-hub: "true"
      configmanagement.gke.io/update-time: "1644945169"
    creationTimestamp: "2022-02-15T17:12:52Z"
    generation: 1
    name: root-sync
    namespace: config-management-system
    resourceVersion: "211980457"
    uid: aa30a94b-2825-4590-ad30-5af848403502
    spec:
    git:
      auth: none
      branch: main
      dir: /quickstart/config-sync
      period: 15s
      repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
      revision: HEAD
      secretRef: {}
    override:
      resources:
      - containerName: "git-sync"
        memoryLimit: "400Mi"
    sourceFormat: unstructured
    # Remainder of RootSync omitted
    
  4. Appliquez les modifications au fichier YAML:

    kubectl apply -f FILE_NAME.yaml
    
  5. Pour vérifier que Config Sync a appliqué vos modifications, affichez l'objet RootSync:

    kubectl describe rootsync root-sync -n config-management-system
    
  6. Pour vérifier que vos modifications n'ont entraîné aucune erreur, utilisez la commande nomos status:

    nomos status
    

Supprimer l'objet RootSync

Pour supprimer root-sync, exécutez la commande suivante:

kubectl delete -f FILE_NAME

Remplacez FILE_NAME par le nom de votre fichier de configuration RootSync. Par exemple, root-sync.yaml.

La suppression d'un objet RootSync ou RepoSync ne nettoie pas les annotations et les libellés Config Sync. Pour nettoyer les ressources gérées, effectuez une synchronisation à partir d'un répertoire Git vide.

Étapes suivantes