Migrazione dell'oggetto ConfigManagement

Questa pagina mostra come eseguire la migrazione della configurazione Git da un oggetto ConfigManagement a un oggetto RootSync. La migrazione abilita le API RootSync e RepoSync, che ti consentono di utilizzare funzionalità aggiuntive:

Puoi abilitare queste API anche se vuoi utilizzare solo un repository root e non vuoi utilizzare repository dello spazio dei nomi.

Esegui la migrazione delle impostazioni di ConfigManagement

Utilizza nomos migrate

A partire dalla versione 1.10.0, nomos fornisce il comando nomos migrate per abilitare le API RootSync e RepoSync. Devi eseguire l'aggiornamento di nomos alla versione 1.10.0 e a versioni successive.

Per maggiori dettagli su come eseguire il comando, vedi Eseguire la migrazione da un oggetto ConfigManagement a un oggetto RootSync. Assicurati che l'oggetto ConfigManagement non sia verificato nella tua origine attendibile e gestito da Config Sync. In caso affermativo, devi modificare l'oggetto ConfigManagement nella tua fonte attendibile seguendo i passaggi descritti in Migrazione manuale.

Migrazione manuale

Se la tua versione di nomos è precedente alla 1.10.0, puoi eseguire manualmente la migrazione delle impostazioni. Devi impostare spec.enableMultiRepo su true nell'oggetto ConfigManagement e creare un oggetto RootSync che esegua la sincronizzazione del repository radice con il cluster. Il repository radice può essere un repository non strutturato o un repository gerarchico. Dopo aver eseguito la migrazione per utilizzare l'oggetto RootSync, puoi suddividere un repository in più repository e configurare la sincronizzazione da più repository.

Per configurare il repository radice eseguendo la migrazione della configurazione, completa le seguenti attività:

  1. Apri l'oggetto ConfigManagement.
  2. Crea una copia dei valori nei campi spec.git. Questi valori vengono utilizzati durante la creazione dell'oggetto RootSync.
  3. Rimuovi tutti i campi spec.git (incluso git:) dall'oggetto ConfigManagement.
  4. Nell'oggetto ConfigManagement, imposta il campo spec.enableMultiRepo su true:

    # config-management.yaml
    apiVersion: configmanagement.gke.io/v1
    kind: ConfigManagement
    metadata:
      name: config-management
    spec:
      enableMultiRepo: true
    
  5. Applica le modifiche:

    kubectl apply -f config-management.yaml
    
  6. Attendi che il CRD di RootSync venga creato.

    kubectl wait --for=condition=established crd rootsyncs.configsync.gke.io
    
  7. Utilizzando i valori copiati dall'oggetto ConfigManagement, crea l'oggetto RootSync. Ad esempio:

    # root-sync.yaml
    apiVersion: configsync.gke.io/v1beta1
    kind: RootSync
    metadata:
      name: root-sync
      namespace: config-management-system
    spec:
      sourceFormat: ROOT_FORMAT
      git:
        repo: ROOT_REPOSITORY
        revision: ROOT_REVISION
        branch: ROOT_BRANCH
        dir: "ROOT_DIRECTORY"
        auth: ROOT_AUTH_TYPE
        gcpServiceAccountEmail: ROOT_EMAIL
        # secretRef should be omitted if the auth type is none, gcenode, or gcpserviceaccount.
        secretRef:
          name: git-creds
    

    Sostituisci quanto segue:

    • ROOT_FORMAT: aggiungi unstructured per utilizzare un repository non strutturato o aggiungi hierarchy per utilizzare un repository gerarchico. Questi valori sono sensibili alle maiuscole. Questo campo è facoltativo e il valore predefinito è hierarchy. Ti consigliamo di aggiungere unstructured poiché questo formato ti consente di organizzare le configurazioni nel modo che ritieni più pratico.
    • ROOT_REPOSITORY: aggiungi l'URL del repository Git da utilizzare come repository radice. Puoi inserire gli URL utilizzando il protocollo HTTPS o SSH. Ad esempio, https://github.com/GoogleCloudPlatform/anthos-config-management-samples utilizza il protocollo HTTPS. Se non inserisci un protocollo, l'URL viene considerato come un URL HTTPS. Questo campo è obbligatorio.
    • ROOT_REVISION: aggiungi la revisione Git (tag o hash) per il check-out. Questo campo è facoltativo e il valore predefinito è HEAD.
    • ROOT_BRANCH: aggiungi il ramo del repository da cui eseguire la sincronizzazione. Questo campo è facoltativo e il valore predefinito è master.
    • ROOT_DIRECTORY: aggiungi il percorso del repository Git alla directory radice contenente la configurazione con cui vuoi sincronizzare. Questo campo è facoltativo e il valore predefinito è la directory radice (/) del repository.
    • ROOT_AUTH_TYPE: aggiungi uno dei seguenti tipi di autenticazione:

      • none: non utilizzare l'autenticazione
      • ssh: utilizza una coppia di chiavi SSH
      • cookiefile: usa un cookiefile
      • token: usa un token
      • gcpserviceaccount: usa un account di servizio Google per accedere a un repository in Cloud Source Repositories.
      • gcenode: usa un account di servizio Google per accedere a un repository in Cloud Source Repositories. Seleziona questa opzione solo se Workload Identity non è abilitato nel tuo cluster.

        Per ulteriori informazioni su questi tipi di autenticazione, vedi Concedere l'accesso di sola lettura a Git di Config Sync.

      Questo campo è obbligatorio.

    • ROOT_EMAIL: se hai aggiunto gcpserviceaccount come ROOT_AUTH_TYPE, aggiungi l'indirizzo email del tuo account di servizio Google. Ad esempio, acm@PROJECT_ID.iam.gserviceaccount.com.

  8. Applica le modifiche:

    kubectl apply -f root-sync.yaml
    

Tabella di confronto per ConfigManagement e RootSync

La seguente tabella fornisce una panoramica di come i campi nell'oggetto ConfigMangent vengono mappati ai campi in un oggetto RootSync.

Campo ConfigManagement Campo RootSync
spec.git.gcpServiceAccountEmail spec.git.gcpServiceAccountEmail
spec.git.syncRepo spec.git.repo
spec.git.syncBranch spec.git.branch
spec.git.policyDir spec.git.dir
spec.git.syncWait spec.git.period
spec.git.syncRev spec.git.revision
spec.git.secretType spec.git.auth
git-creds (questo è un valore fisso negli oggetti ConfigManagement) spec.git.secretRef.name
spec.sourceFormat spec.sourceFormat
spec.git.proxy.httpProxy o spec.git.proxy.httpsProxy spec.git.proxy

Passaggi successivi