Halaman ini menunjukkan cara memigrasikan konfigurasi Git dari objek ConfigManagement
ke objek RootSync
. Migrasi
akan mengaktifkan API RootSync
dan RepoSync
, 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
- Mengganti 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
Gunakan nomos migrate
Mulai versi 1.10.0, nomos
menyediakan perintah nomos migrate
untuk
mengaktifkan RootSync
API dan RepoSync
API. Anda harus mengupdate
nomos
ke versi 1.10.0 dan yang lebih baru.
Untuk detail selengkapnya tentang cara menjalankan perintah, ikuti Melakukan migrasi dari objek ConfigManagement ke objek RootSync. Pastikan objek ConfigManagement Anda tidak diperiksa 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 memecah repositori menjadi beberapa
repositori dan mengonfigurasi sinkronisasi dari
beberapa repositori.
Untuk mengonfigurasi repositori root dengan memigrasikan konfigurasi, selesaikan tugas-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. Di 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) untuk 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
: menambahkan jalur dalam repositori Git ke direktori utama 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
: Gunakancookiefile
token
: Menggunakan tokengcpserviceaccount
: Gunakan akun layanan Google untuk mengakses repositori di Cloud Source Repositories.gcenode
: Gunakan akun layanan Google untuk mengakses repositori di Cloud Source Repositories. Hanya pilih opsi ini jika Workload Identity tidak diaktifkan di cluster Anda.Untuk mengetahui informasi selengkapnya tentang jenis autentikasi ini, lihat Memberikan akses hanya baca Config Sync ke Git.
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 bagaimana kolom di 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 pada objek ConfigManagement) |
spec.git.secretRef.name |
spec.sourceFormat |
spec.sourceFormat |
spec.git.proxy.httpProxy atau spec.git.proxy.httpsProxy
|
spec.git.proxy |