Questa pagina mostra come eseguire la migrazione della configurazione di Git da un oggetto ConfigManagement
a un oggetto RootSync
. La migrazione abilita le API RootSync
e RepoSync
, che ti consentono di utilizzare funzionalità aggiuntive:
- Eseguire la sincronizzazione da più di una fonte di riferimento
- Utilizzare la dashboard di Config Sync
- Monitorare Config Sync tramite Cloud Monitoring, Prometheus o un sistema di monitoraggio personalizzato
- Eseguire il rendering delle configurazioni di Kustomize e dei grafici Helm
- Sincronizza gli artefatti OCI da Artifact Registry
- Sincronizzare i grafici Helm da Artifact Registry
- Esegui l'override dei valori di sistema, ad esempio la modifica dei limiti delle risorse. e aggiornando il numero di commit Git da recuperare
Puoi abilitare queste API anche se vuoi utilizzare solo un repository radice e non vuoi utilizzare alcun repository dello spazio dei nomi.
Esegui la migrazione delle impostazioni di ConfigManagement
Se utilizzi RootSync
con spec.enableLegacyFields
, segui le istruzioni
fino a Interrompere l'utilizzo dei campi precedenti.
Se l'oggetto ConfigManagement utilizza spec.git
ma spec.enableMultiRepo
è impostato su false, segui le istruzioni per eseguire la migrazione a RootSync.
Interrompere l'utilizzo dei campi precedenti
A partire dalla versione 1.19.0 e successive, il campo spec.enableLegacyFields
non è supportato e la sua impostazione causerà errori. Per utilizzare Config Sync
nella versione 1.19.0 e successive, completa i seguenti passaggi per rimuovere i campi legacy:
Apri l'oggetto ConfigManagement.
Nell'oggetto ConfigManagement, rimuovi i campi
spec.enableLegacyFields
espec.git
. L'oggetto ConfigManagement dovrebbe essere simile al seguente:# config-management.yaml apiVersion: configmanagement.gke.io/v1 kind: ConfigManagement metadata: name: config-management spec: enableMultiRepo: true
Applica le modifiche:
kubectl apply -f config-management.yaml
I campi legacy sono ora disabilitati senza influire sull'oggetto RootSync
generato
dai campi spec.git
dell'oggetto ConfigManagement. La migrazione è stata completata e ora puoi utilizzare direttamente i campi git nell'oggetto RootSync
.
Eseguire la migrazione a RootSync
Se l'oggetto ConfigManagement utilizza spec.git
ma spec.enableMultiRepo
è impostato su false, segui questa guida per abilitare le API RootSync
e RepoSync
.
Utilizza nomos migrate
A partire dalla versione 1.10.0, nomos
fornisce il comando nomos migrate
per attivare le API RootSync
e RepoSync
. Devi aggiornare
nomos
alla versione 1.10.0 e successive.
Per maggiori dettagli su come eseguire il comando, vedi Eseguire la migrazione da un ConfigManagement a un oggetto RootSync. Assicurati che l'oggetto ConfigManagement non sia sottoposto a check-in nella tua fonte attendibile e gestito da Config Sync. In questo caso, devi modificare ConfigManagement nella tua origine attendibile seguendo i passaggi descritti in Migrazione manuale.
Migrazione manuale
Se la versione di nomos
è precedente alla 1.10.0, puoi eseguire manualmente la migrazione delle impostazioni. Devi impostare spec.enableMultiRepo
su true
nel tuo
ConfigManagement e crea un oggetto RootSync che sincronizza l'oggetto principale
repository Git nel cluster. Il repository principale può essere un repository non strutturato o un repository gerarchico. Dopo la migrazione
per utilizzare l'oggetto RootSync, potete suddividere un repository in più
repository e configurare la sincronizzazione
più repository.
Per configurare il repository radice eseguendo la migrazione della configurazione, completa il le seguenti attività:
- Apri l'oggetto ConfigManagement.
- Crea una copia dei valori nei campi
spec.git
. Utilizza questi valori quando crei l'oggetto RootSync. - Rimuovi tutti i campi
spec.git
(inclusogit:
) da ConfigManagement. Nell'oggetto ConfigManagement, imposta il campo
spec.enableMultiRepo
sutrue
:# config-management.yaml apiVersion: configmanagement.gke.io/v1 kind: ConfigManagement metadata: name: config-management spec: enableMultiRepo: true
Applica le modifiche:
kubectl apply -f config-management.yaml
Attendi la creazione del CRD RootSync.
kubectl wait --for=condition=established crd rootsyncs.configsync.gke.io
Utilizzando i valori copiati dall'oggetto ConfigManagement, crea 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
: aggiungiunstructured
per utilizzare un repository non strutturato ohierarchy
per utilizzare un repository gerarchico. Questi valori sono sensibili alle maiuscole. Questo campo è facoltativo e il valore predefinito èhierarchy
. Ti consigliamo di aggiungereunstructured
poiché questo formato consente puoi organizzare le configurazioni nel modo che preferisci.ROOT_REPOSITORY
: aggiungi l'URL del repository Git a da usare come repository radice. Puoi inserire gli URL utilizzando il protocollo HTTPS HTTP(S) o SSH. Ad esempio:https://github.com/GoogleCloudPlatform/anthos-config-management-samples
usi il protocollo HTTPS. Se non inserisci un protocollo, l'URL viene trattato come URL HTTPS. Questo campo è obbligatorio.ROOT_REVISION
: aggiungi la revisione Git (tag o hash) per il pagamento. Questo è 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 nel repository Git a la directory principale che contiene la configurazione da sincronizzare a. Questo campo è facoltativo e il valore predefinito è la directory radice (/
) di nel repository.ROOT_AUTH_TYPE
: aggiungi una delle seguenti autenticazioni tipi:none
: non usare l'autenticazionessh
: usa una coppia di chiavi SSHcookiefile
: usa uncookiefile
token
: utilizza un tokengcpserviceaccount
: utilizza un account di servizio Google per accedere a un repository in Cloud Source Repositories.gcenode
: utilizza un account di servizio Google per accedere a un repository in Cloud Source Repositories. Seleziona questa opzione solo se La federazione delle identità per i carichi di lavoro per GKE non è abilitata nel cluster.Per ulteriori informazioni su questi tipi di autenticazione, consulta la pagina Concedere a Config Sync l'accesso di sola lettura a Git.
Questo campo è obbligatorio.
ROOT_EMAIL
: se hai aggiuntogcpserviceaccount
come tuoROOT_AUTH_TYPE
, aggiungi l'indirizzo email del tuo account di servizio Google. Ad esempio:acm@PROJECT_ID.iam.gserviceaccount.com
.
Applica le modifiche:
kubectl apply -f root-sync.yaml
Tabella di confronto tra ConfigManagement e RootSync
La tabella seguente fornisce una panoramica della mappatura dei campi dell'oggetto ConfigMangent ai campi di 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 |