Configurer Config Sync avec des 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 apporter 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 afin de contrôler la validation des certificats SSL. et d'utiliser une autorité de certification.

Créer et modifier le fichier de configuration RootSync

Pour configurer Config Sync à l'aide de commandes kubectl, vous 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 appelé 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 Google Cloud CLI, root-sync est mis à jour.

Découvrez les champs que vous pouvez modifier à l'aide de 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 de commandes kubectl, consultez Champs RootSync et RepoSync.

Avant d'apporter des modifications au fichier YAML que vous allez créer dans la section suivante, familiarisez-vous avec le tableau ci-dessous. 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 modifications que vous avez définies lors de la dernière configuration de Config Sync dans la console Google Cloud ou Google Cloud CLI.

Clé Description
spec.helm Tous les champs de configuration du dépôt Helm.
spec.override Tous les champs permettant de remplacer les configurations par défaut.
spec.git.noSSLVerify Spécifie s'il faut activer ou désactiver la validation du certificat SSL pour Git. La valeur par défaut est false.
spec.git.caCertSecretRef.name Nom du secret contenant le certificat de l'autorité de certification pour un dépôt Git.
spec.oci.caCertSecretRef.name Nom du secret contenant le certificat de l'autorité de certification pour un dépôt OCI.

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 à 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 que vous souhaitez donner à votre configuration.

  3. Ouvrez le fichier YAML que vous avez créé et apportez les modifications de configuration requises. 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 pas introduit d'erreurs, utilisez la commande nomos status :

    nomos status
    

Configurer l'autorité de certification

Pour les serveurs configurés avec des certificats provenant d'une autorité de certification (CA) qui n'est pas encore approuvée, Config Sync peut être configuré pour utiliser un certificat CA afin de valider les connexions HTTPS au serveur. Cette option est disponible pour les serveurs Git, Helm ou OCI. Le certificat de l'autorité de certification doit inclure des certificats SSL complets (racine/intermédiaire/feuille). Si votre serveur utilise déjà une autorité de certification de confiance ou si vous ne vous connectez pas via HTTPS, vous pouvez ignorer cette étape et laisser caCertSecretRef non défini.

RootSync

  1. Récupérer le certificat de l'autorité de certification qui a été utilisé pour émettre le certificat de votre serveur Git et l'enregistrer dans un fichier.

  2. Pour les objets RootSync, le secret doit être créé dans l'espace de noms config-management-system. Exemple :

    kubectl create secret generic ROOT_CA_CERT_SECRET_NAME 
    --namespace=config-management-system
    --from-file=cert=/path/to/CA_CERT_FILE

  3. Lorsque vous configurez l'objet RootSync, définissez la valeur du champ caCertSecretRef.name dans l'objet RootSync sur ROOT_CA_CERT_SECRET_NAME.

RepoSync

  1. Récupérer le certificat de l'autorité de certification qui a été utilisé pour émettre le certificat de votre serveur Git et l'enregistrer dans un fichier.

  2. Pour les objets RepoSync, le Secret doit être créé dans le même espace de noms que le RepoSync. Exemple :

    kubectl create secret generic NAMESPACE_CA_CERT_SECRET_NAME 
    --namespace=REPO_SYNC_NAMESPACE
    --from-file=cert=/path/to/CA_CERT_FILE

  3. Lorsque vous configurez RepoSync, définissez la valeur du champ caCertSecretRef.name dans l'objet RepoSync sur NAMESPACE_CA_CERT_SECRET_NAME.

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. 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 la synchronisation à partir d'un répertoire Git vide.

Étapes suivantes