Champs spécifiques de la commande d'application de gcloud

Cette page décrit les différents champs que vous pouvez utiliser pour configurer Config Sync avec l'indicateur --config sur la commande Google Cloud CLI apply et l'indicateur --fleet-default-member-config sur la commande enable dans le canal de publication beta. Ce schéma de champ est désormais déconseillé dans la piste de publication alpha de la commande enable au profit du nouveau schéma d'API .

Le format du fichier utilisé avec ces indicateurs gcloud CLI est semblable à celui de l'objet ConfigManagement. Cependant, les formats sont différents et les deux ne sont pas interchangeables.

Configuration courante pour Config Management

Clé Description
spec.version Version de Config Management. Si vous configurez Config Management pour un cluster, la version par défaut est la version actuelle de l'installation de Config Management sur ce cluster. Sinon, pour une configuration à l'échelle du parc ou en l'absence d'installation existante sur le cluster cible, la valeur par défaut est la dernière version.

Configuration pour Config Sync

Clé Description
spec.cluster Nom du cluster utilisé par l'annotation cluster-name-selector ou ClusterSelector de Config Sync pour appliquer les configurations à un sous-ensemble de clusters uniquement. Définissez ce champ si un nom différent du nom d'appartenance au parc du cluster est utilisé par l'annotation cluster-name-selector de Config Sync ou par ClusterSelector.
spec.upgrades (Aperçu) Paramètre de mise à niveau pour Config Sync. La valeur par défaut et la seule valeur acceptée est manual.
spec.configSync.enabled Si la valeur est true, Config Sync est installé et géré. Si la valeur est false, désinstalle toute instance Config Sync gérée précédemment et ignore le reste de la configuration .spec.configSync. Obligatoire pour gcloud CLI version 429.0.0 et antérieure. Facultatif pour gcloud CLI version 430.0.0 et ultérieure. Valeur par défaut : true
spec.configSync.sourceType Type de source à partir duquel Config Sync doit être synchronisé. Accepte git ou oci. Valeur par défaut : git.
spec.configSync.syncRepo URL du dépôt Git, de l'image OCI ou du chart Helm à utiliser comme source fiable. Vous pouvez omettre ce champ si vous n'avez pas préparé de dépôt.
spec.configSync.syncBranch Branche du dépôt Git à partir de laquelle la synchronisation doit être effectuée. Ce champ est ignoré si .spec.configSync.sourceType est défini sur oci. Ce champ est facultatif et la valeur par défaut est master. Nous vous recommandons d'utiliser le champ spec.configSync.syncRev pour spécifier un nom de branche. Si les deux champs sont utilisés, le champ spec.configSync.syncRev est prioritaire sur spec.configSync.syncBranch.
spec.configSync.policyDir Chemin d'accès dans le dépôt Git ou dans l'image OCI au répertoire racine contenant la configuration que vous souhaitez synchroniser. Valeur par défaut : répertoire racine du dépôt
spec.configSync.syncWait Période en secondes entre des synchronisations consécutives. La valeur par défaut est 15.
spec.configSync.syncRev Révision Git (tag ou hachage) ou branche à partir de laquelle la synchronisation doit être effectuée. Ce champ est ignoré si .spec.configSync.sourceType est défini sur oci. Ce champ est facultatif et la valeur par défaut est HEAD. Lorsque vous utilisez un hachage, il doit s'agir d'un hachage complet et non d'une forme abrégée.
spec.configSync.preventDrift Si la valeur est true, active le webhook d'admission Config Sync pour éviter les écarts en empêchant le transfert des modifications incompatibles vers les clusters opérationnels. Valeurs par défaut : false. Config Sync corrige toujours les dérives, quelle que soit la valeur de ce champ.
spec.configSync.stopSyncing Si la valeur est true, la synchronisation des configurations pour un seul cluster est arrêtée. La valeur par défaut est false.
spec.configSync.secretType Type de Secret configuré pour l'accès à .spec.configSync.syncRepo. Si vous avez sélectionné git comme type de source, la valeur doit être ssh, cookiefile, gcenode, gcpserviceaccount, token ou none. Si vous avez sélectionné oci comme type de source, la valeur doit être gcenode, gcpserviceaccount ou none. La validation de ce champ est sensible à la casse. Obligatoire.
spec.configSync.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.configSync.secretType est défini sur gcpserviceaccount.
spec.configSync.metricsGcpServiceAccountEmail Obsolète : si la fédération d'identité de charge de travail pour GKE est activée, le compte de service Google Cloud n'est pas requis pour exporter les métriques Config Sync. Utilisez plutôt un compte de service Kubernetes.
spec.configSync.sourceFormat Si vous définissez ce paramètre sur unstructured, vous configurez un dépôt non hiérarchique. Valeur par défaut : hierarchy.
spec.configSync.deploymentOverrides Liste des configurations de remplacement de ressources pour les déploiements Config Sync. Ce champ ne s'applique qu'aux déploiements Config Sync avec des conteneurs qui ne sont pas des rapprocheurs racine ou d'espace de noms, tels que reconciler-manager. Si vous devez remplacer un réconciliateur racine ou d'espace de noms, utilisez plutôt les champs rootsync ou reposync. Facultatif.
spec.configSync.deploymentOverrides.name Nom du déploiement Config Sync à remplacer. Vous devez indiquer une valeur.
spec.configSync.deploymentOverrides.namespace Espace de noms du déploiement Config Sync à remplacer. Vous devez indiquer une valeur.
spec.configSync.deploymentOverrides.containers Liste des configurations de remplacement pour les requêtes et les limites des conteneurs Config Sync. Facultatif.
spec.configSync.deploymentOverrides.containers.name Nom du conteneur Config Sync à remplacer. Vous devez indiquer une valeur.
spec.configSync.deploymentOverrides.containers.cpuRequest Demande de ressources de processeur pour le conteneur. Utilisez les unités de ressources de processeur dans Kubernetes. Facultatif.
spec.configSync.deploymentOverrides.containers.cpuLimit Limite de processeur pour le conteneur. Utilisez les unités de ressources de processeur dans Kubernetes. Facultatif.
spec.configSync.deploymentOverrides.containers.memoryRequest Demande de mémoire pour le conteneur. Utilisez les unités de ressources mémoire dans Kubernetes. Facultatif.
spec.configSync.deploymentOverrides.containers.memoryLimit Limite de mémoire pour le conteneur. Utilisez les unités de ressources mémoire dans Kubernetes. Facultatif.

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 HTTPS, vous pouvez utiliser l'URI du proxy pour configurer Config Sync de manière à communiquer avec votre hôte Git. Le proxy n'est compatible qu'avec les types d'autorisation cookiefile, none ou token.

Clé Description
spec.configSync.httpsProxy Définit une variable d'environnement HTTPS_PROXY permettant d'accéder au dépôt Git. Exemple : https://proxy.internal.business.co:443.
Le proxy HTTPS n'accepte que les URL https ou les URL simples. Les URL contenant http:// sont refusées.
Si vous utilisez une URL simple, assurez-vous que la communication entre votre serveur proxy et votre hôte Git est sécurisée.

Exemple spécifique de la commande d'application de gcloud

applySpecVersion: 1
spec:
  configSync:
    enabled: true
    sourceFormat: unstructured
    syncRepo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
    syncBranch: main
    secretType: none
    policyDir: config-sync-quickstart/multirepo/root

Exemple de spécification d'application gcloud avec remplacement des ressources de déploiement

Si vous souhaitez personnaliser les demandes et les limites de ressources Config Sync, ajoutez le champ deploymentOverrides dans votre spécification d'application. Par exemple, le code YAML suivant remplace les limites de processeur et de mémoire pour le conteneur reconciler-manager :

applySpecVersion: 1
spec:
  configSync:
    enabled: true
    deploymentOverrides:
    - name: reconciler-manager
      namespace: config-management-system
      containers:
      - name: reconciler-manager
        cpuRequest: 50m
        cpuLimit: 100m
        memoryRequest: 256Mi
        memoryLimit: 512Mi