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

Cette page explique les différents champs que vous pouvez utiliser pour configurer Config Sync avec l'indicateur --config de la commande Google Cloud CLI apply et l'indicateur --fleet-default-member-config de la commande enable dans le canal de publication beta. Ce schéma de champ est désormais déconseillé dans le alpha canal de publication de la enable commande 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 de une 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 Config Sync cluster-name-selector annotation ou ClusterSelector, pour appliquer des 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 Config Sync cluster-name-selector annotation ou 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, installe et gère Config Sync. Si la valeur est false, désinstalle toute instance de Config Sync 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 ou de l'image OCI à utiliser comme source de vérité. 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 spec.configSync.syncRev champ 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 qui contient 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, arrête la synchronisation des configurations pour un seul cluster. 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 utilisé pour annoter le compte de service Kubernetes du contrôleur RootSync ou RepoSync. Google Cloud Ce champ n'est utilisé que lorsque spec.configSync.secretType est gcpserviceaccount.
spec.configSync.metricsGcpServiceAccountEmail Obsolète : si Workload Identity Federation for GKE est activé, Google Cloud le compte de service n'est pas obligatoire pour exporter les métriques Config Sync. Utilisez plutôt un compte de service Kubernetes Service Account.
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. Le champ ne s'applique qu'aux déploiements Config Sync avec conteneurs qui ne sont pas un réconciliateur racine ou d'espace de noms, tels que reconciler-manager. Si vous devez remplacer un réconciliateur racine ou d'espace de noms utilisez les champs rootsync ou reposync plutôt. 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 Requête 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 Requête de mémoire pour le conteneur. Utilisez les unités de ressources de mémoire dans Kubernetes. Facultatif.
spec.configSync.deploymentOverrides.containers.memoryLimit Limite de mémoire pour le conteneur. Utilisez les unités de ressources de 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 utilisée pour 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 l'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 spécifique de la commande d'application de gcloud avec des remplacements de ressources de déploiement

Si vous souhaitez personnaliser les requêtes 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