Bermigrasi dari ConfigManagement API ke PolicyController API

Halaman ini menjelaskan cara bermigrasi dari ConfigManagement API ke PolicyController API untuk mengelola Pengontrol Kebijakan. PolicyController API menawarkan kemampuan yang sama untuk menginstal dan mengelola Pengontrol Kebijakan.

Mulai April 2025, configManagement API versi 1.21 dan yang lebih baru tidak lagi mendukung penginstalan atau update Policy Controller. Mencoba mengupgrade atau menginstal Policy Controller dengan metode ini akan gagal dengan error. Ikuti petunjuk di halaman ini untuk bermigrasi agar Anda dapat terus menggunakan Policy Controller.

Langkah-langkah untuk bermigrasi sepenuhnya berbeda-beda, bergantung pada metode penginstalan yang Anda gunakan untuk menginstal Policy Controller.

Jika Anda menggunakan perintah PolicyController gcloud CLI yang dimulai dengan gcloud container fleet policycontroller, Anda sudah menggunakan PolicyController API. Anda tidak perlu melakukan apa pun. Jika tidak, tinjau petunjuk untuk metode yang Anda gunakan untuk menginstal Pengontrol Kebijakan:

config management

Jika Anda menggunakan perintah gcloud CLI yang dimulai dengan gcloud alpha container fleet config-management, beralihlah ke penggunaan perintah gcloud CLI Policy Controller yang dimulai dengan gcloud container fleet policycontroller. Tinjau dokumentasi gcloud CLI untuk mengetahui daftar perintah. Anda tidak perlu melakukan tindakan lain.

Jika file Google Cloud CLI apply spec Anda memiliki blok policyController, hapus blok tersebut untuk memastikan kompatibilitas dengan Config Sync.

Terraform

Jika Anda menggunakan resource Terraform yang mengonfigurasi Policy Controller dengan nama fitur "configmanagement", Anda harus beralih ke resource Terraform dengan nama fitur "policycontroller" dengan menyelesaikan langkah-langkah berikut:

  1. Salin file Terraform yang ada ke file baru, atau perbarui file Terraform Anda, lalu tambahkan kode berikut:

    resource "google_gke_hub_feature" "feature" {
      name = "policycontroller"
      location = "global"
    }
    
    resource "google_gke_hub_feature_membership" "feature_member" {
      feature = google_gke_hub_feature.feature.name # "policycontroller"
      location = "global"
      membership = MEMBERSHIP_NAME
      project = PROJECT_ID
       policycontroller {
          policy_controller_hub_config {
            install_spec = "INSTALL_SPEC_ENABLED"
        }
      }
    }
    

    Ganti kode berikut:

    • MEMBERSHIP: nama keanggotaan cluster terdaftar yang telah menginstal Policy Controller.
    • PROJECT_ID: project ID Anda.
  2. Hapus blok "policy_controller" dari resource Terraform yang ada. Anda dapat menemukan blok di bawah blok "configmanagement". Jika Anda menggunakan resource hanya untuk mengelola Policy Controller, Anda dapat menghapus seluruh blok configmanagement. Jika Anda menggunakan resource untuk mengelola Config Sync, pastikan Anda hanya menghapus blok Policy Controller. Misalnya, blok configmanagement Anda mungkin menyerupai berikut:

    resource "google_gke_hub_feature_membership" "feature_member" {
       provider   = google-beta
       location   = "global"
       feature    = "configmanagement"
       membership = google_gke_hub_membership.membership.membership_id
       configmanagement {
          version = "1.8.0"
          config_sync {
             source_format = "unstructured"
             git {
             }
          }
          # if you're still using the config_sync block, delete only the policy_controller block
          policy_controller {
             enabled                    = true
             template_library_installed = true
             referential_rules_enabled  = true
          }
       }
    }
    
  3. Impor setelan fitur keanggotaan Policy Controller dengan menyelesaikan salah satu langkah berikut:

    1. Jalankan perintah berikut:

      terraform import "google_gke_hub_feature.feature" "projects/PROJECT_ID/locations/global/features/policycontroller"
      terraform import "google_gke_hub_feature_membership.feature_member" "projects/PROJECT_ID/locations/global/features/policycontroller/membershipId/MEMBERSHIP_NAME"
      
    2. Tambahkan blok impor ke resource Terraform Anda:

      import {
         to = google_gke_hub_feature_membership.feature_member
         id = "projects/PROJECT_ID/locations/global/features/policycontroller/membershipId/MEMBERSHIP_NAME"
      }
      import {
         to = google_gke_hub_feature.feature
         id = "projects/PROJECT_ID/locations/global/features/policycontroller"
      }
      
  4. Terapkan setelan Pengontrol Kebijakan:

    terraform apply
    
  5. Opsional: Setelah impor selesai, Anda dapat menghapus blok impor dari resource Terraform. Atau, Anda dapat membiarkan blok impor dalam konfigurasi sebagai catatan asal resource.

Config Connector

Untuk berhenti menggunakan spesifikasi configmanagement.policyController, selesaikan langkah-langkah berikut:

  1. Buat spesifikasi GKEHubFeatureMembership baru dengan kolom policycontroller yang diperlukan. Pastikan Anda menetapkan kolom resourceID ke policyController.

  2. Jika Anda memiliki GKEHubFeatureMembership yang sudah ada dan menggunakan kolom spec.configmanagement.policyController, hapus kolom policycontroller dari spesifikasi configmanagement.

kubectl

Jika Anda menggunakan perintah kubectl untuk mengelola Policy Controller dengan objek ConfigManagement, beralihlah ke penggunaan perintah Policy Controller gcloud CLI yang dimulai dengan gcloud container fleet policycontroller. Anda tidak perlu melakukan tindakan lain.

Jika objek ConfigManagement memiliki blok policyController, hapus blok tersebut agar kompatibel dengan Config Sync.

Anda dapat meninjau referensi berikut untuk mempelajari lebih lanjut Policy Controller API: