ConfigManagement-Objekt migrieren
Auf dieser Seite erfahren Sie, wie Sie Ihr ConfigManagement-Objekt zu einem RootSync-Objekt migrieren. Durch die Migration von einem ConfigManagement-Objekt zu einem RootSync-Objekt werden die RootSync
- und RepoSync
-APIs aktiviert. Mit diesen APIs können Sie zusätzliche Features verwenden. Sie können zum Beispiel:
Kustomize-Konfigurationen und Helm-Diagramme rendern und Systemwerte wie Ressourcenlimits ändern und Anzahl der abzurufenden Git-Commits aktualisieren überschreiben.
Sie können diese APIs auch dann aktivieren, wenn Sie nur ein Root-Repository und keine Namespace-Repositories verwenden möchten.
ConfigManagement-Einstellungen migrieren
nomos migrate
verwenden
Ab Version 1.10.0 bietet nomos
den Befehl nomos migrate
, um die APIs RootSync
und RepoSync
zu aktivieren. Sie müssen nomos
auf 1.10.0 und höher aktualisieren.
Weitere Informationen zum Ausführen des Befehls finden Sie unter Von einem ConfigManagement-Objekt zu einem RootSync-Objekt migrieren.
Manuelle Migration
Wenn Ihre nomos
-Version vor 1.10.0 ist, können Sie Ihre Einstellungen manuell migrieren. Sie müssen in Ihrem ConfigManagement-Objekt spec.enableMultiRepo
auf true
setzen und ein RootSync-Objekt erstellen, das Ihr Roote-Repository mit dem Cluster synchronisiert. Das Stamm-Repository kann entweder ein unstrukturiertes Repository oder ein hierarchisches Repository sein. Nach der Migration zum RootSync-Objekt können Sie ein Repository in mehrere Repositories aufteilen und die Synchronisierung aus mehreren Repositories konfigurieren.
Führen Sie die folgenden Aufgaben aus, um das Root-Repository durch Migrieren der Konfiguration zu konfigurieren:
- Öffnen Sie das ConfigManagement-Objekt.
- Kopieren Sie die Werte in den
spec.git
-Feldern. Sie verwenden diese Werte beim Erstellen des RootSync-Objekts. - Entfernen Sie alle
spec.git
-Felder (einschließlichgit:
) aus dem ConfigManagement-Objekt. Legen Sie im ConfigManagement-Objekt das Feld
spec.enableMultiRepo
auftrue
fest:# config-management.yaml apiVersion: configmanagement.gke.io/v1 kind: ConfigManagement metadata: name: config-management spec: enableMultiRepo: true
Änderungen anwenden:
kubectl apply -f config-management.yaml
Warten Sie, bis die RootSync-CRD erstellt wurde.
kubectl wait --for=condition=established crd rootsyncs.configsync.gke.io
Erstellen Sie das RootSync-Objekt mit den Werten, die Sie aus dem ConfigManagement-Objekt kopiert haben. Beispiel:
# 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
Dabei gilt:
ROOT_FORMAT
: Fügen Sieunstructured
hinzu, um ein unstrukturiertes Repository zu verwenden, oder fügen Siehierarchy
hinzu, um ein hierarchisches Repository zu verwenden. Bei diesen Werten wird zwischen Groß- und Kleinschreibung unterschieden. Dieses Feld ist optional und der Standardwert isthierarchy
. Wir empfehlen das Hinzufügen vonunstructured
, da Sie damit Ihre Konfigurationen so organisieren können, wie es für Sie am besten ist.ROOT_REPOSITORY
: Fügen Sie die URL des Git-Repositorys hinzu, das als Stamm-Repository verwendet werden soll. Sie können URLs mithilfe des HTTPS- oder SSH-Protokolls eingeben.https://github.com/GoogleCloudPlatform/anthos-config-management-samples
verwendet beispielsweise das HTTPS-Protokoll. Wenn Sie kein Protokoll eingeben, wird die URL als HTTPS-URL behandelt. Dies ist ein Pflichtfeld.ROOT_REVISION
: Fügen Sie die Git-Revision (Tag oder Hash) hinzu, um auszuchecken. Dieses Feld ist optional und der Standardwert istHEAD
.ROOT_BRANCH
: Der Zweig des Repositorys, von dem aus synchronisiert werden soll. Dieses Feld ist optional und der Standardwert istmaster
.ROOT_DIRECTORY
: Fügen Sie den Pfad im Git-Repository zum Stammverzeichnis hinzu, das die Konfiguration enthält, mit der Sie die Synchronisierung durchführen möchten. Dieses Feld ist optional und die Standardeinstellung ist das Stammverzeichnis (/
) des Repositorys.ROOT_AUTH_TYPE
: Fügen Sie einen der folgenden Authentifizierungstypen hinzu:none
: Keine Authentifizierung verwendenssh
: Ein SSH-Schlüsselpaar verwendencookiefile
: Nutzen Sie einencookiefile
.token
: Ein Token verwendengcpserviceaccount
: Verwenden Sie ein Google-Dienstkonto, um auf ein Repository in Cloud Source Repositories zuzugreifen.gcenode
: Verwenden Sie ein Google-Dienstkonto, um auf ein Repository in Cloud Source Repositories zuzugreifen. Wählen Sie diese Option nur aus, wenn Workload Identity nicht in Ihrem Cluster aktiviert ist.Weitere Informationen zu diesen Authentifizierungstypen finden Sie unter Config Sync Lesezugriff auf Git gewähren.
Dies ist ein Pflichtfeld.
ROOT_EMAIL
: Wenn Siegcpserviceaccount
fürROOT_AUTH_TYPE
angegeben haben, fügen Sie die E-Mail-Adresse Ihres Google-Dienstkontos hinzu. Beispiel:acm@PROJECT_ID.iam.gserviceaccount.com
.
Änderungen anwenden:
kubectl apply -f root-sync.yaml
ConfigManagement und RootSync-Vergleichstabelle
Die folgende Tabelle bietet einen Überblick darüber, wie die Felder in Ihrem ConfigManagement-Objekt den Feldern in einem RootSync-Objekt zugeordnet werden.
ConfigManagement-Feld | RootSync-Feld |
---|---|
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 (fester Wert in ConfigManagement-Objekten) |
spec.git.secretRef.name |
spec.sourceFormat |
spec.sourceFormat |
spec.git.proxy.httpProxy oder spec.git.proxy.httpsProxy
|
spec.git.proxy |