Halaman ini menunjukkan kepada Anda cara
memigrasikan konfigurasi Git dari sebuah
ConfigManagement
objek ke
Objek RootSync
. Tujuan
migrasi memungkinkan 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 API RootSync
dan RepoSync
. Anda harus memperbarui
nomos
ke versi 1.10.0 dan yang lebih baru.
Untuk detail selengkapnya tentang cara menjalankan perintah, ikuti Bermigrasi dari objek ConfigManagement ke objek RootSync. Memastikan objek ConfigManagement tidak diperiksa di sumber tepercaya Anda dan dikelola oleh Config Sync. Jika ya, Anda harus memodifikasi objek ConfigManagement di sumber tepercaya Anda dengan mengikuti langkah-langkah dalam Migrasi manual.
Migrasi manual
Jika versi nomos
Anda lebih lama dari 1.10.0, Anda dapat memigrasikan secara manual
setelan. Anda perlu menyetel spec.enableMultiRepo
ke true
di
objek ConfigManagement dan membuat objek RootSync yang menyinkronkan root Anda
repositori ke cluster. Repositori root dapat berupa repositori tidak terstruktur
repositori atau hierarki
repositori yang baru. Setelah Anda melakukan migrasi
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 langkah tugas berikut:
- Buka objek ConfigManagement.
- Buat salinan nilai di kolom
spec.git
. Anda menggunakan saat Anda membuat objek RootSync. - Hapus semua kolom
spec.git
(termasukgit:
) dari ConfigManagement. Pada 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 RootSync CRD dibuat.
kubectl wait --for=condition=established crd rootsyncs.configsync.gke.io
Dengan menggunakan nilai yang Anda salin dari objek ConfigManagement, buat 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. Bidang 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
: tambahkan URL repositori Git ke Anda gunakan sebagai repositori {i>root<i}. Anda dapat memasukkan URL menggunakan HTTPS atau protokol SSH. Misalnya,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
penggunaan di protokol HTTPS. Jika Anda tidak memasukkan protokol, URL akan diperlakukan sebagai URL HTTPS. Kolom ini wajib diisi.ROOT_REVISION
: tambahkan revisi Git (tag atau hash) yang akan diperiksa. Ini kolom bersifat opsional dan nilai defaultnya adalahHEAD
.ROOT_BRANCH
: menambahkan cabang repositori yang akan disinkronkan. Ini kolom bersifat opsional dan nilai defaultnya adalahmaster
.ROOT_DIRECTORY
: menambahkan jalur di repositori Git untuk direktori {i>root<i} yang berisi konfigurasi yang ingin Anda sinkronkan tempat mesin terhubung. Bidang ini bersifat opsional dan defaultnya adalah direktori utama (/
) repositori.ROOT_AUTH_TYPE
: tambahkan salah satu autentikasi berikut jenis:none
: Tidak menggunakan autentikasissh
: Menggunakan pasangan kunci SSHcookiefile
: Menggunakancookiefile
token
: Gunakan tokengcpserviceaccount
: Gunakan akun layanan Google untuk mengakses di Cloud Source Repositories.gcenode
: Gunakan akun layanan Google untuk mengakses di Cloud Source Repositories. Hanya pilih opsi ini jika Workload Identity Federation untuk GKE tidak diaktifkan di cluster Anda.Untuk informasi lebih lanjut 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 gambaran umum tentang bagaimana {i>field<i} dalam Objek ConfigMangent dipetakan ke kolom di 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 (nilai ini tetap pada objek ConfigManagement) |
spec.git.secretRef.name |
spec.sourceFormat |
spec.sourceFormat |
spec.git.proxy.httpProxy atau spec.git.proxy.httpsProxy
|
spec.git.proxy |