Halaman ini menunjukkan cara memigrasikan konfigurasi Git dari objek ConfigManagement
ke objek RootSync
. Migrasi ini mengaktifkan RootSync
dan RepoSync
API, yang memungkinkan Anda menggunakan fitur tambahan:
- Menyinkronkan dari lebih dari satu sumber tepercaya
- Menggunakan dasbor Config Sync
- Memantau Config Sync menggunakan Cloud Monitoring, Prometheus, atau sistem pemantauan kustom
- Merender konfigurasi Kustomize dan diagram Helm
- Menyinkronkan artefak OCI dari Artifact Registry
- Menyinkronkan diagram Helm dari Artifact Registry
- Ganti nilai sistem seperti mengubah batas resource dan memperbarui jumlah commit Git yang akan diambil
Anda dapat mengaktifkan API ini meskipun hanya ingin menggunakan repositori root dan tidak ingin menggunakan repositori namespace apa pun.
Memigrasikan setelan ConfigManagement Anda
Jika Anda menggunakan RootSync
dengan spec.enableLegacyFields
, ikuti petunjuk untuk Berhenti menggunakan kolom lama.
Jika objek ConfigManagement Anda menggunakan spec.git
, tetapi spec.enableMultiRepo
ditetapkan ke salah (false), ikuti petunjuk untuk Bermigrasi ke RootSync.
Berhenti menggunakan kolom lama
Setelah versi 1.19.0 dan yang lebih baru, kolom spec.enableLegacyFields
tidak
didukung dan menetapkan kolom ini akan menyebabkan error. Untuk menggunakan Config Sync
versi 1.19.0 dan yang lebih baru, selesaikan langkah-langkah berikut untuk menghapus kolom
lama:
Buka objek ConfigManagement.
Di objek ConfigManagement, hapus kolom
spec.enableLegacyFields
danspec.git
. Objek ConfigManagement Anda akan terlihat seperti berikut:# config-management.yaml apiVersion: configmanagement.gke.io/v1 kind: ConfigManagement metadata: name: config-management spec: enableMultiRepo: true
Terapkan perubahan:
kubectl apply -f config-management.yaml
Kolom lama kini dinonaktifkan tanpa memengaruhi objek RootSync
yang dihasilkan dari kolom spec.git
objek ConfigManagement Anda. Migrasi telah
selesai dan Anda kini dapat menggunakan kolom git di objek RootSync
secara langsung.
Bermigrasi ke RootSync
Jika objek ConfigManagement Anda menggunakan spec.git
, tetapi spec.enableMultiRepo
ditetapkan ke salah (false), ikuti panduan ini untuk mengaktifkan RootSync
dan RepoSync
API.
Gunakan nomos migrate
Mulai dari versi 1.10.0, nomos
menyediakan perintah nomos migrate
untuk
mengaktifkan API RootSync
dan RepoSync
. Anda harus mengupdate
nomos
ke 1.10.0 dan yang lebih baru.
Untuk mengetahui detail selengkapnya tentang cara menjalankan perintah, ikuti Bermigrasi dari objek ConfigManagement ke objek RootSync. Pastikan objek ConfigManagement Anda tidak di-check in ke sumber tepercaya dan dikelola oleh Config Sync. Jika ya, Anda harus mengubah objek ConfigManagement di sumber tepercaya dengan mengikuti langkah-langkah dalam Migrasi manual.
Migrasi manual
Jika versi nomos
Anda lebih lama dari 1.10.0, Anda dapat memigrasikan setelan secara manual. Anda perlu menetapkan spec.enableMultiRepo
ke true
di objek ConfigManagement dan membuat objek RootSync yang menyinkronkan repositori root ke cluster. Repositori root dapat berupa repositori
tidak terstruktur atau repositori
hierarkis. Setelah bermigrasi
untuk menggunakan objek RootSync, Anda dapat membagi repositori menjadi beberapa
repositori dan mengonfigurasi sinkronisasi dari
beberapa repositori.
Untuk mengonfigurasi repositori root dengan memigrasikan konfigurasi, selesaikan tugas berikut:
- Buka objek ConfigManagement.
- Buat salinan nilai di kolom
spec.git
. Anda menggunakan nilai ini saat membuat objek RootSync. - Hapus semua kolom
spec.git
(termasukgit:
) dari objek ConfigManagement. Dalam objek ConfigManagement, tetapkan kolom
spec.enableMultiRepo
ketrue
:# config-management.yaml apiVersion: configmanagement.gke.io/v1 kind: ConfigManagement metadata: name: config-management spec: enableMultiRepo: true
Terapkan perubahan:
kubectl apply -f config-management.yaml
Tunggu hingga CRD RootSync dibuat.
kubectl wait --for=condition=established crd rootsyncs.configsync.gke.io
Dengan menggunakan nilai yang Anda salin dari objek ConfigManagement, buat objek RootSync. Contoh:
# 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
Ganti kode berikut:
ROOT_FORMAT
: tambahkanunstructured
untuk menggunakan repositori tidak terstruktur atau tambahkanhierarchy
untuk menggunakan repositori hierarkis. Nilai ini peka huruf besar/kecil. Kolom ini bersifat opsional dan nilai defaultnya adalahhierarchy
. Sebaiknya tambahkanunstructured
karena format ini memungkinkan Anda mengatur konfigurasi dengan cara yang paling nyaman bagi Anda.ROOT_REPOSITORY
: menambahkan URL repositori Git untuk digunakan sebagai repositori root. Anda dapat memasukkan URL menggunakan protokol HTTPS atau SSH. Misalnya,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
menggunakan protokol HTTPS. Jika Anda tidak memasukkan protokol, URL akan diperlakukan sebagai URL HTTPS. Kolom ini wajib diisi.ROOT_REVISION
: menambahkan revisi Git (tag atau hash) yang akan diperiksa. Kolom ini bersifat opsional dan nilai defaultnya adalahHEAD
.ROOT_BRANCH
: menambahkan cabang repositori yang akan disinkronkan. Kolom ini bersifat opsional dan nilai defaultnya adalahmaster
.ROOT_DIRECTORY
: tambahkan jalur di repositori Git ke direktori root yang berisi konfigurasi yang ingin Anda sinkronkan. Kolom ini bersifat opsional dan defaultnya adalah direktori utama (/
) repositori.ROOT_AUTH_TYPE
: menambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasissh
: Menggunakan pasangan kunci SSHcookiefile
: Menggunakancookiefile
token
: Menggunakan tokengcpserviceaccount
: Menggunakan akun layanan Google untuk mengakses repositori di Cloud Source Repositories.gcenode
: Menggunakan akun layanan Google untuk mengakses repositori di Cloud Source Repositories. Hanya pilih opsi ini jika Workload Identity Federation untuk GKE tidak diaktifkan di cluster Anda.Untuk mengetahui informasi selengkapnya tentang jenis autentikasi ini, lihat Memberikan akses hanya baca ke Git kepada Config Sync.
Kolom ini wajib diisi.
ROOT_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiROOT_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.
Terapkan perubahan:
kubectl apply -f root-sync.yaml
Tabel perbandingan ConfigManagement dan RootSync
Tabel berikut memberikan ringkasan tentang cara kolom dalam objek ConfigMangent dipetakan ke kolom dalam objek RootSync.
Kolom ConfigManagement | Kolom 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 (ini adalah nilai tetap dalam objek ConfigManagement) |
spec.git.secretRef.name |
spec.sourceFormat |
spec.sourceFormat |
spec.git.proxy.httpProxy atau spec.git.proxy.httpsProxy
|
spec.git.proxy |