Configura Config Sync con i comandi kubectl

Questa pagina spiega come configurare Config Sync utilizzando i comandi kubectl dopo aver installato Config Sync utilizzando la console Google Cloud o Google Cloud CLI.

Sebbene tu possa apportare molte modifiche alla configurazione utilizzando la console o la CLI, devi utilizzare i comandi kubectl per ignorare alcuni valori predefiniti di Config Sync, per controllare la verifica dei certificati SSL e per utilizzare un'autorità di certificazione.

Crea e modifica il file di configurazione RootSync

Per configurare Config Sync utilizzando i comandi kubectl, modifica un oggetto RootSync creando un file YAML.

Quando installi Config Sync utilizzando la console Google Cloud o Google Cloud CLI, Config Sync crea automaticamente un oggetto RootSync denominato root-sync. Questo oggetto contiene le informazioni di configurazione più recenti per Config Sync. Ogni volta che apporti una modifica nella console Google Cloud o in Google Cloud CLI, root-sync viene aggiornato.

Scopri i campi che puoi modificare utilizzando kubectl

Puoi apportare modifiche avanzate a root-sync utilizzando i comandi kubectl per i campi non supportati nella console Google Cloud o in Google Cloud CLI. Se vuoi creare e poi aggiornare gli oggetti RootSync o RepoSync direttamente utilizzando i comandi kubectl, consulta Campi RootSync e RepoSync.

Prima di apportare modifiche al file YAML che crei nella sezione seguente, acquisisci familiarità con la tabella riportata di seguito. Questa tabella elenca i campi che puoi modificare e aggiungere. Se modifichi campi non elencati in questa tabella, Config Sync ripristina automaticamente le modifiche ai valori impostati l'ultima volta che hai configurato Config Sync nella console Google Cloud o in Google Cloud CLI.

Chiave Descrizione
spec.helm Tutti i campi per la configurazione del repository Helm.
spec.override Tutti i campi per ignorare le configurazioni predefinite.
spec.git.noSSLVerify Specifica se attivare o disattivare la verifica del certificato SSL per Git. Il valore predefinito è false.
spec.git.caCertSecretRef.name Il nome del secret contenente il certificato dell'autorità di certificazione (CA) per un repository Git.
spec.oci.caCertSecretRef.name Il nome del secret contenente il certificato dell'autorità di certificazione (CA) per un repository OCI.

Crea il file

Per creare e modificare un file di configurazione per root-sync, completa i seguenti passaggi:

  1. Per assicurarti di recuperare le informazioni di configurazione per il cluster corretto, configura l'accesso alla riga di comando kubectl:

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

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del cluster con la configurazione di Config Sync che vuoi modificare
    • ZONE: la zona in cui hai creato il cluster
    • PROJECT_ID: il tuo ID progetto
  2. Copia le informazioni di configurazione dall'oggetto RootSync creato da Config Sync in un file YAML:

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

    Sostituisci FILE_NAME con un nome per il file di configurazione.

  3. Apri il file YAML che hai creato e apporta le modifiche di configurazione necessarie. Ad esempio, per eseguire l'override del limite di memoria del container git-sync, aggiungi i seguenti campi in grassetto:

    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. Applica le modifiche al file YAML:

    kubectl apply -f FILE_NAME.yaml
    
  5. Per verificare che Config Sync abbia applicato le modifiche, visualizza l'oggetto RootSync:

    kubectl describe rootsync root-sync -n config-management-system
    
  6. Per verificare che le modifiche non abbiano introdotto errori, utilizza il comando nomos status:

    nomos status
    

Configura l'autorità di certificazione

Per i server configurati con certificati di un'autorità di certificazione (CA) che non è ancora attendibile, Config Sync può essere configurato per utilizzare un certificato CA per verificare le connessioni HTTPS al server. Questo attributo è supportato per i server Git, Helm o OCI. Il certificato CA deve includere certificati SSL completi (radice/intermedio/foglia). Se il tuo server utilizza già una CA attendibile o non ti connetti tramite HTTPS, puoi saltare questo passaggio e lasciare caCertSecretRef non impostato.

RootSync

  1. Recupera il certificato CA utilizzato per emettere il certificato per il tuo server Git e salvalo in un file.

  2. Per gli oggetti RootSync, il secret deve essere creato nello spazio dei nomi config-management-system. Ad esempio:

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

  3. Quando configuri l'oggetto RootSync, imposta il valore del campo caCertSecretRef.name nell'oggetto RootSync su ROOT_CA_CERT_SECRET_NAME.

RepoSync

  1. Recupera il certificato CA utilizzato per emettere il certificato per il tuo server Git e salvalo in un file.

  2. Per gli oggetti RepoSync, il secret deve essere creato nello stesso spazio dei nomi di RepoSync. Ad esempio:

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

  3. Quando configuri RepoSync, imposta il valore del campo caCertSecretRef.name nell'oggetto RepoSync su NAMESPACE_CA_CERT_SECRET_NAME.

Rimuovi l'oggetto RootSync

Per eliminare root-sync, esegui questo comando:

kubectl delete -f FILE_NAME

Sostituisci FILE_NAME con il nome del file di configurazione di RootSync. Ad esempio, root-sync.yaml.

L'eliminazione di un oggetto RootSync o RepoSync non comporta la pulizia delle annotazioni e delle etichette di Config Sync. Per pulire le risorse gestite, esegui la sincronizzazione da una directory Git vuota.

Passaggi successivi