1.2. 在任意命名空间中为 pull 模型部署 Argo CD ApplicationSet 资源(技术预览)
使用 Argo CD pull 模型,您可以在 hub 集群上的任意命名空间中创建 ApplicationSet 资源。
要完全管理 Argo CD ApplicationSet 资源,请完成以下部分:
需要的访问权限:集群管理员
先决条件
- 完成注册受管集群的步骤。如需说明,请参阅将受管集群注册到 Red Hat OpenShift GitOps operator。
-
完成流程以在任何自定义命名空间中启用
ApplicationSet和应用程序资源。有关方向,请参阅 在任意命名空间中启用 ApplicationSet 资源。
1.2.1. 为标准配置部署 ApplicationSet 资源 复制链接链接已复制到粘贴板!
如果您对基于角色的访问控制(RBAC)的支持有限,您可能需要为标准配置部署 ApplicationSet 资源。
对于简单的 RBAC 管理,您可以为标准配置部署 ApplicationSet 资源,为您提供以下优点:
- 命名空间没有在 GitHub 仓库资源中指定。
-
工作负载命名空间的目的地在
Application模板中指定。 -
ApplicationSet资源使用默认的AppProject资源。
要为标准配置部署 ApplicationSet 资源,请完成以下步骤:
-
在
openshift-gitops命名空间中,创建一个Placement资源。 通过添加以下 YAML 文件示例,使用默认的
AppProject资源在appset-2命名空间中创建ApplicationSet资源:apiVersion: v1 kind: Namespace metadata: annotations: name: appset-2
apiVersion: v1 kind: Namespace metadata: annotations: name: appset-2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用 YAML 文件示例:
oc apply -f namespace-example.yaml
oc apply -f namespace-example.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过添加以下 YAML 文件示例,使用默认的
AppProject资源在appset-2命名空间中创建ApplicationSet资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用 YAML 文件示例:
oc apply -f applicationset-example.yaml
oc apply -f applicationset-example.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ApplicationSet资源在 hub 集群上的appset-2命名空间中创建。 -
应用程序资源部署到受管集群上的appset-2命名空间。 -
Application资源将其工作负载部署到受管集群上的Helloworld命名空间。 -
应用默认的 Argo CD
AppProject资源配置 -
GitHub 存储库指定路径中定义的所有应用程序资源都不特定于命名空间。
-
1.2.2. 为高级配置部署 ApplicationSet 资源 复制链接链接已复制到粘贴板!
如果支持基于角色的访问控制(RBAC),则可以选择为高级配置部署 ApplicationSet 资源。
您可以使用更多 RBAC 管理为高级配置部署 ApplicationSet 资源,为您提供以下优点:
-
GitHub 仓库资源中指定的应用程序资源工作负载命名空间。
-
ApplicationSet资源中指定的工作负载命名空间的目的地与 GitHub 存储库匹配。 -
ApplicationSet资源对 RBAC 控制使用自定义 Argo CDAppProject资源。
要为高级配置部署 ApplicationSet 资源,请完成以下步骤:
-
在
openshift-gitops命名空间中,创建一个Placement资源。 通过添加以下 YAML 文件示例,使用自定义
bgdkAppProject资源在bgdk命名空间中创建ApplicationSet资源:apiVersion: v1 kind: Namespace metadata: annotations: name: bgdk
apiVersion: v1 kind: Namespace metadata: annotations: name: bgdkCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用 YAML 文件示例:
oc apply -f namespace-example.yaml
oc apply -f namespace-example.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过添加以下 YAML 文件示例,在 OpenShift GitOps 命名空间中设置
bgdkAppProject资源配置:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
sourceNamespaces是创建应用程序本身的命名空间。 -
sourceRepos是Application模板使用的存储库。 -
目的地是应用程序部署其工作负载的命名空间。 -
clusterResourceWhitelist是允许应用程序部署的集群范围的资源列表。在这种情况下,此命名空间类型是强制的,因为Application必须创建新命名空间。
-
运行以下命令来应用 YAML 文件示例:
oc apply -f appproject-example.yaml
oc apply -f appproject-example.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过添加以下 YAML 文件示例,将自定义 Argo CD
AppProject资源配置应用到ApplicationSet资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用 YAML 文件示例:
oc apply -f applicationset-example.yaml
oc apply -f applicationset-example.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
要了解更多有关 ArgoCD ApplicationSet 的信息,请参阅以下资源: