2.6.2.3. 在集群中部署策略
在推送更改后,您可以将策略部署到 Red Hat Advanced Cluster Management for Kubernetes 安装中。在部署后,您的 hub 集群连接到 Git 存储库。对 Git 存储库所选分支的任何其他更改都会反映在集群中。
注 : 默认情况下,通过 GitOps 部署的策略使用 合并
协调选项。如果要使用 replace
reconcile 选项,将 apps.open-cluster-management.io/reconcile-option: replace
注解添加到 Subscription
资源。如需了解更多详细信息 , 请参阅应用程序生命周期。
deploy.sh
脚本在 hub 集群中创建 Channel
和 Subscription
资源。频道连接到 Git 仓库,订阅指定要通过频道传递给集群的数据。因此,在您的 hub 上会创建指定子目录中定义的所有策略。在订阅创建策略后,Red Hat Advanced Cluster Management 会根据定义的放置规则分析策略,并在与策略应用到的每个受管集群关联的命名空间中创建额外的策略资源。
该策略随后从 hub 集群上对应的受管集群命名空间中复制到受管集群。因此,Git 仓库中的策略推送到具有与策略放置规则中定义的 clusterSelector
匹配的所有受管集群。
完成以下步骤:
在
policy-collection
文件夹中运行以下命令来更改目录:cd deploy
请确定将命令行界面(CLI)配置为使用以下命令在正确的集群中创建资源:
oc cluster-info
命令的输出显示集群的 API 服务器详情,其中安装了 Red Hat Advanced Cluster Management。如果没有显示正确的 URL,请将 CLI 配置为指向正确的集群。如需更多信息,请参阅使用 OpenShift CLI。
创建一个命名空间,创建您的策略以控制访问和组织策略。运行以下命令:
oc create namespace policy-namespace
运行以下命令将策略部署到集群中:
./deploy.sh -u https://github.com/<your-repository>/policy-collection -p my-policies -n policy-namespace
将
your-repository
替换为您的 Git 用户名或存储库名称。注:
deploy.sh
脚本的完整参数列表使用以下语法:./deploy.sh [-u <url>] [-b <branch>] [-p <path/to/dir>] [-n <namespace>] [-a|--name <resource-name>]
查看每个参数的以下解释:
-
URL:从主
policy-collection
存储库派生的存储库的 URL。默认 URL 为https://github.com/stolostron/policy-collection.git
。 -
分支:要指向的 Git 存储库的分支。默认分支为
main
。 -
子目录路径:为包含要使用的策略而创建的子目录路径。在前面的示例中,我们使用了
my-policies
子目录,但您也可以指定您想要从哪个文件夹开始。例如,您可以使用my-policies/AC-Access-Control
。默认文件夹为stable
。 -
Namespace:在 hub 集群中创建资源和策略的命名空间。这些说明使用
policy-namespace
命名空间。默认命名空间是policies
。 -
名称前缀:
Channel
和Subscription
资源的前缀。默认为demo-stable-policies
。
-
URL:从主
运行 deploy.sh
脚本后,有权访问存储库的任何用户都可以提交更改到分支,该分支会将更改推送到集群上执行策略。