Memigrasikan objek ConfigManagement Anda

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:

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:

  1. Buka objek ConfigManagement.
  2. Buat salinan nilai di kolom spec.git. Anda menggunakan saat Anda membuat objek RootSync.
  3. Hapus semua kolom spec.git (termasuk git:) dari ConfigManagement.
  4. Pada 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 RootSync CRD dibuat.

    kubectl wait --for=condition=established crd rootsyncs.configsync.gke.io
    
  7. 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: tambahkan unstructured untuk menggunakan repositori tidak terstruktur atau tambahkan hierarchy untuk menggunakan repositori hierarkis. Nilai ini peka huruf besar/kecil. Bidang 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: 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 adalah HEAD.
    • ROOT_BRANCH: menambahkan cabang repositori yang akan disinkronkan. Ini kolom bersifat opsional dan nilai defaultnya adalah master.
    • 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 autentikasi
      • ssh: Menggunakan pasangan kunci SSH
      • cookiefile: Menggunakan cookiefile
      • token: Gunakan token
      • gcpserviceaccount: 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 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 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

Langkah selanjutnya