Memigrasikan objek ConfigManagement Anda

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:

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:

  1. Buka objek ConfigManagement.
  2. Buat salinan nilai di kolom spec.git. Anda menggunakan nilai ini saat membuat objek RootSync.
  3. Hapus semua kolom spec.git (termasuk git:) dari objek ConfigManagement.
  4. Di objek ConfigManagement, tetapkan kolom spec.enableMultiRepo ke true:

    # config-management.yaml
    apiVersion: configmanagement.gke.io/v1
    kind: ConfigManagement
    metadata:
      name: config-management
    spec:
      enableMultiRepo: true
    
  5. Terapkan perubahan:

    kubectl apply -f config-management.yaml
    
  6. Tunggu hingga CRD RootSync dibuat.

    kubectl wait --for=condition=established crd rootsyncs.configsync.gke.io
    
  7. 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: tambahkan unstructured untuk menggunakan repositori tidak terstruktur atau tambahkan hierarchy untuk menggunakan repositori hierarkis. Nilai ini peka huruf besar/kecil. Kolom ini bersifat opsional dan nilai defaultnya adalah hierarchy. Sebaiknya tambahkan unstructured 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 adalah HEAD.
    • ROOT_BRANCH: menambahkan cabang repositori yang akan disinkronkan. Kolom ini bersifat opsional dan nilai defaultnya adalah master.
    • 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 autentikasi
      • ssh: Menggunakan pasangan kunci SSH
      • cookiefile: Gunakan cookiefile
      • token: Menggunakan token
      • gcpserviceaccount: 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 menambahkan gcpserviceaccount sebagai ROOT_AUTH_TYPE, tambahkan alamat email akun layanan Google Anda. Contoh, acm@PROJECT_ID.iam.gserviceaccount.com.

  8. 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

Langkah selanjutnya