このページでは、Policy Controller を管理するために ConfigManagement
API から PolicyController
API に移行する方法について説明します。PolicyController
API は、Policy Controller のインストールと管理に同じ機能を提供します。
完全に移行する手順は、Policy Controller のインストールに使用したインストール方法によって異なります。
gcloud container fleet policycontroller
で始まる gcloud CLI PolicyController
コマンドを使用している場合は、すでに PolicyController
API を使用しています。必要な対応はありません。それ以外の場合は、Policy Controller のインストールに使用した方法の手順を確認してください。
config management
gcloud alpha container fleet config-management
で始まる gcloud CLI コマンドを使用している場合は、gcloud container fleet policycontroller
で始まる gcloud CLI Policy Controller コマンドに切り替えます。コマンドのリストについては、gcloud CLI のドキュメントをご覧ください。その他の対応は必要ございません。
Google Cloud CLI apply spec
ファイルに policyController
ブロックがある場合は、Config Sync との互換性を確保するために削除します。
Terraform
機能名 "configmanagement"
で Policy Controller を構成する Terraform リソースを使用している場合は、次の手順で機能名 "policycontroller"
の Terraform リソースに切り替える必要があります。
既存の Terraform ファイルを新しいファイルにコピーするか、Terraform ファイルを更新して、以下を追加します。
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" } } }
次のように置き換えます。
MEMBERSHIP
: Policy Controller がインストールされている登録済みクラスタのメンバーシップ名。PROJECT_ID
: プロジェクト ID。
既存の Terraform リソースから
"policy_controller"
ブロックを削除します。このブロックは"configmanagement"
ブロックの下にあります。このリソースを使用して Policy Controller のみを管理する場合は、configmanagement
ブロック全体を削除できます。リソースを使用して Config Sync を管理している場合は、Policy Controller ブロックのみを削除してください。たとえば、configmanagement
ブロックは次のようになります。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 } } }
次のいずれかの方法で、Policy Controller メンバーシップ機能の設定をインポートします。
次のコマンドを実行します。
terraform import "google_gke_hub_feature.policycontroller" "projects/PROJECT_ID/locations/global/features/policycontroller" terraform import "google_gke_hub_feature_membership.policycontroller" "projects/PROJECT_ID/locations/global/features/policycontroller/membershipId/MEMBERSHIP_NAME"
Terraform リソースにインポート ブロックを追加します。
import { to = google_gke_hub_feature_membership.policycontroller id = "projects/PROJECT_ID/locations/global/features/policycontroller/membershipId/MEMBERSHIP_NAME" }
Policy Controller の設定を適用します。
terraform apply
省略可: インポートが完了したら、Terraform リソースからインポート ブロックを削除できます。または、リソースのオリジンのレコードとして、インポート ブロックを構成に残しておいても安全です。
Config Connector
configmanagement.policyController
仕様の使用を停止するには、次の操作を行います。
policycontroller
フィールドにspec.ResourceID
番号を入力して、GKEHubFeatureMembership
仕様を作成または更新します。spec.configmanagement.policyController
フィールドを使用する既存のGKEHubFeatureMembership
がある場合は、configmanagement
仕様からpolicycontroller
フィールドを削除します。
kubectl
kubectl
コマンドを使用して ConfigManagement
オブジェクトで Policy Controller を管理している場合は、gcloud container fleet policycontroller
で始まる gcloud CLI Policy Controller コマンドに切り替えます。その他の対応は必要ございません。
ConfigManagement
オブジェクトに policyController
ブロックがある場合は、Config Sync との互換性を確保するために削除します。
Policy Controller API の詳細については、次のリソースをご覧ください。
gcloud container fleet policycontroller
コマンドを使用して Policy Controller をインストールする- Config Connector
GKEHubFeature
リファレンス ドキュメントを確認する。 - Terraform
google_gke_hub_feature
リファレンス ドキュメントを確認する