2.6.2.3. クラスターへのポリシーのデプロイ
変更をプッシュしたら、ポリシーを Red Hat Advanced Cluster Management for Kubernetes インストールにデプロイできます。デプロイメント後、ハブクラスターは Git リポジトリーに通知されます。Git リポジトリーの選択したブランチに追加された変更がクラスターに反映されます。
注記: デフォルトでは、GitOps でデプロイされるポリシーは マージ の調整オプションを使用します。代わりに replace 調整オプションを使用する場合は、apps.open-cluster-management.io/reconcile-option: replace アノテーションを Subscription リソースに追加します。詳細は、アプリケーションライフサイクルを参照してください。
deploy.sh スクリプトは、ハブクラスターに Channel および Subscription リソースを作成します。チャネルは Git リポジトリーに接続し、サブスクリプションは、チャネルを介してクラスターに配置するデータを指定します。その結果、指定のサブディレクトリーで定義された全ポリシーがハブに作成されます。サブスクリプションによりポリシーが作成されると、Red Hat Advanced Cluster Management はポリシーを分析し、定義した配置ルールに基づいて、ポリシーが適用される各マネージドクラスターに関連付けられた namespace に追加のポリシーリソースを作成します。
その後、ポリシーはハブクラスター上にある該当するマネージドクラスターの namespace からマネージドクラスターにコピーされます。そのため、Git リポジトリーのポリシーは、ポリシーの配置ルールで定義される clusterSelector に一致するラベルが付いた全マネージドクラスターにプッシュされます。
以下の手順を実行します。
policy-collectionフォルダーから、以下のコマンドを実行してディレクトリーを変更します。cd deploy
cd deployCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドで、コマンドラインインターフェース (CLI) が正しいクラスターでリソースを作成するように設定されていることを確認します。
oc cluster-info
oc cluster-infoCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの出力には、Red Hat Advanced Cluster Management がインストールされているクラスターの API サーバーの詳細が表示されます。正しい URL が表示されない場合は、CLI を正しいクラスターを参照するように設定します。詳細情報は、「Using the OpenShift CLI」のセクションを参照してください。
アクセス制御およびポリシー整理を行うポリシーの作成先の namespace を作成します。以下のコマンドを実行します。
oc create namespace policy-namespace
oc create namespace policy-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行してクラスターにポリシーをデプロイします。
./deploy.sh -u https://github.com/<your-repository>/policy-collection -p my-policies -n policy-namespace
./deploy.sh -u https://github.com/<your-repository>/policy-collection -p my-policies -n policy-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow your-repositoryは、Git ユーザー名またはリポジトリー名に置き換えます。注記: 参考までに、
deploy.shスクリプトの引数の全一覧では、以下の構文を使用します。./deploy.sh [-u <url>] [-b <branch>] [-p <path/to/dir>] [-n <namespace>] [-a|--name <resource-name>]
./deploy.sh [-u <url>] [-b <branch>] [-p <path/to/dir>] [-n <namespace>] [-a|--name <resource-name>]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 引数については、以下のドキュメントを参照してください。
-
URL: メインの
policy-collectionリポジトリーからフォークしたリポジトリーへの URL。デフォルトの URL はhttps://github.com/stolostron/policy-collection.gitです。 -
ブランチ: 参照する Git リポジトリーのブランチ。デフォルトのブランチは
mainです。 -
サブディレクトリーパス: 使用するポリシーを含めるために作成したサブディレクトリーパス。上記のサンプルでは
my-policiesサブディレクトリーを使用しましたが、開始するフォルダーを指定することもできます。たとえば、my-policies/AC-Access-Controlを使用できます。デフォルトのフォルダーはstableです。 -
Namespace: リソースおよびポリシー作成先のハブクラスター上の namespace。これらの手順では
policy-namespace名前空間を使用します。デフォルトの namespace はpoliciesです。 -
名前のプレプレフィックス:
ChannelおよびSubscriptionリソースのプレフィックス。デフォルトはdemo-stable-policiesです。
-
URL: メインの
deploy.sh スクリプトの実行後に、リポジトリーへのアクセス権があるユーザーはブランチに変更をコミットでき、コミットすることでクラスター上の既存のポリシーに対して変更がプッシュされます。