Campi per le specifiche dell'applicazione di gcloud

Questa pagina spiega i diversi campi che puoi utilizzare per configurare Config Sync con il flag --config nel comando apply di Google Cloud CLI e il flag --fleet-default-member-config nel comando enable nel canale di rilascio beta. Lo schema di questo campo non è più consigliato nel canale di rilascio alpha del comando enable a favore del nuovo schema API .

Il formato del file utilizzato con questi flag di gcloud CLI è simile al formato dell'oggetto ConfigManagement. Tuttavia, i formati sono diversi e i due non sono intercambiabili.

Configurazione comune per Config Management

Chiave Descrizione
spec.version La versione di Config Management. Se stai configurando Config Management per un cluster, la versione predefinita è la versione corrente dell'installazione di Config Management sul cluster in questione. In caso contrario, per la configurazione a livello di parco risorse o in assenza di un'installazione esistente sul cluster di destinazione, il valore predefinito è la versione più recente.

Configurazione per Config Sync

Chiave Descrizione
spec.cluster Il nome del cluster utilizzato da Config Sync cluster-name-selector annotazione o ClusterSelector, per applicare le configurazioni solo a un sottoinsieme di cluster. Imposta questo campo se l'annotazione cluster-name-selector o ClusterSelector di Config Sync utilizza un nome diverso dal nome di appartenenza al parco risorse del cluster.
spec.upgrades (Anteprima) L'impostazione di upgrade per Config Sync. Il valore predefinito e l'unico valore supportato è manual.
spec.configSync.enabled Se true, installa e gestisce Config Sync. Se false, disinstalla qualsiasi Config Sync gestito in precedenza e ignora il resto della configurazione .spec.configSync. Obbligatorio per gcloud CLI versione 429.0.0 e precedenti. Facoltativo per gcloud CLI versione 430.0.0 e successive. Valore predefinito: true
spec.configSync.sourceType Il tipo di origine da cui Config Sync deve eseguire la sincronizzazione. Accetta git o oci. Valore predefinito: git.
spec.configSync.syncRepo L'URL del repository Git o dell'immagine OCI da utilizzare come fonte di verità. Puoi omettere questo campo se non hai un repository preparato.
spec.configSync.syncBranch Il ramo del repository Git da cui eseguire la sincronizzazione. Questo campo viene ignorato se .spec.configSync.sourceType è impostato su oci. Questo campo è facoltativo e il valore predefinito è master. Ti consigliamo di utilizzare il spec.configSync.syncRev campo per specificare un nome di ramo. Se vengono utilizzati entrambi i campi, il campo spec.configSync.syncRev ha la precedenza su spec.configSync.syncBranch.
spec.configSync.policyDir Il percorso nel repository Git o nell'immagine OCI alla directory principale che contiene la configurazione che vuoi sincronizzare. Valore predefinito: la directory principale del repository.
spec.configSync.syncWait Periodo in secondi tra sincronizzazioni consecutive. Valore predefinito: 15.
spec.configSync.syncRev Revisione Git (tag o hash) o ramo da cui eseguire la sincronizzazione. Questo campo viene ignorato se .spec.configSync.sourceType è impostato su oci. Questo campo è facoltativo e il valore predefinito è HEAD. Quando utilizzi un hash, deve essere un hash completo, non una forma abbreviata.
spec.configSync.preventDrift Se true, abilita il webhook di ammissione di Config Sync per impedire le deviazioni rifiutando il push delle modifiche in conflitto ai cluster live. Valore predefinito: false. Config Sync corregge sempre le deviazioni indipendentemente dal valore di questo campo.
spec.configSync.stopSyncing Se true, interrompe la sincronizzazione delle configurazioni per un singolo cluster. Valore predefinito: false.
spec.configSync.secretType Il tipo di secret configurato per l'accesso a .spec.configSync.syncRepo. Se hai selezionato git come tipo di origine, il valore deve essere ssh, cookiefile, gcenode, gcpserviceaccount, token, o none. Se hai selezionato oci come tipo di origine, il valore deve essere gcenode, gcpserviceaccount, o none. La convalida di questo campo è sensibile alle maiuscole. Obbligatorio.
spec.configSync.gcpServiceAccountEmail Il Google Cloud service account utilizzato per annotare il service account Kubernetes del controller RootSync o RepoSync. Questo campo viene utilizzato solo quando spec.configSync.secretType è gcpserviceaccount.
spec.configSync.metricsGcpServiceAccountEmail Deprecato: se Workload Identity Federation for GKE è abilitato, Google Cloud il service account non è obbligatorio per l'esportazione delle metriche di Config Sync. Utilizza invece il service account Kubernetes.
spec.configSync.sourceFormat Se impostato su unstructured, configura un repository non gerarchico. Valore predefinito: hierarchy.
spec.configSync.deploymentOverrides Un elenco di configurazioni di override delle risorse per i deployment di Config Sync. Il campo si applica solo ai deployment di Config Sync con container che non sono un riconciliatore di root o di spazio dei nomi, ad esempio reconciler-manager. Se devi eseguire l'override di un riconciliatore di root o di spazio dei nomi utilizza i campi rootsync o reposync invece. Facoltativo.
spec.configSync.deploymentOverrides.name Il nome del deployment di Config Sync di cui eseguire l'override. Il valore non può essere vuoto.
spec.configSync.deploymentOverrides.namespace Lo spazio dei nomi del deployment di Config Sync di cui eseguire l'override. Il valore non può essere vuoto.
spec.configSync.deploymentOverrides.containers Un elenco di configurazioni di override per le richieste e i limiti dei container di Config Sync Facoltativo.
spec.configSync.deploymentOverrides.containers.name Il nome del container di Config Sync di cui eseguire l'override. Il valore non può essere vuoto.
spec.configSync.deploymentOverrides.containers.cpuRequest La richiesta di CPU per il container. Utilizza le unità di risorse CPU in Kubernetes. Facoltativo.
spec.configSync.deploymentOverrides.containers.cpuLimit Il limite di CPU per il container. Utilizza le unità di risorse CPU in Kubernetes. Facoltativo.
spec.configSync.deploymentOverrides.containers.memoryRequest La richiesta di memoria per il container. Utilizza le unità di risorse di memoria in Kubernetes. Facoltativo.
spec.configSync.deploymentOverrides.containers.memoryLimit Il limite di memoria per il container. Utilizza le unità di risorse di memoria in Kubernetes. Facoltativo.

Configurazione del proxy per il repository Git

Se i criteri di sicurezza della tua organizzazione richiedono di instradare il traffico tramite un proxy HTTPS, puoi utilizzare l'URI del proxy per configurare Config Sync in modo che comunichi con l'host Git. Il proxy è supportato solo quando si utilizza un tipo di autorizzazione cookiefile, none o token.

Chiave Descrizione
spec.configSync.httpsProxy Definisce una variabile di ambiente HTTPS_PROXY utilizzata per accedere al repository Git. Ad esempio, https://proxy.internal.business.co:443.
Il proxy HTTPS accetta solo https o URL senza decorazioni. Gli URL contenenti http:// vengono rifiutati.
Se utilizzi un URL senza decorazioni, assicurati che la comunicazione tra il tuo server proxy e l'host Git sia sicura.

Esempio di specifica di applicazione di 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

Esempio di specifica di applicazione di gcloud con override delle risorse di deployment

Se vuoi personalizzare le richieste e i limiti delle risorse di Config Sync, aggiungi il campo deploymentOverrides nella specifica di applicazione. Ad esempio, il seguente YAML esegue l'override dei limiti di CPU e memoria per il container 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