第 6 章 启用对命名空间范围的 Argo Rollouts 安装的支持
Red Hat OpenShift GitOps 支持 Argo Rollouts 安装的两种模式:
- 集群范围的安装 (默认):任何命名空间中定义的 Argo Rollouts 自定义资源(CR)由 Argo Rollouts 实例协调。因此,您可以在集群的任意命名空间中使用 Argo Rollouts CR。
命名空间范围的安装 :Argo Rollouts 实例安装在特定命名空间中,并只处理同一命名空间中的 Argo Rollouts CR。这个安装模式包括以下优点:
-
这个模式不需要集群范围的
ClusterRole
或ClusterRoleBinding
权限。您可以在单一命名空间中安装和使用 Argo Rollouts,而无需集群权限。 - 此模式通过将单个 Argo Rollouts 实例的集群范围限制为特定命名空间来提供安全优势。
-
这个模式不需要集群范围的
为了防止意外的权限升级,Red Hat OpenShift GitOps 一次只允许一个模式 Argo Rollout 安装。
要在集群范围的 Argo Rollouts 安装间切换,请完成以下步骤。
6.1. 配置命名空间范围的 Argo Rollouts 安装
要配置命名空间范围的实例 Argo Rollouts 安装,请完成以下步骤。
先决条件
- 以管理员身份登录到 Red Hat OpenShift GitOps 集群。
- 您已在 Red Hat OpenShift GitOps 集群上安装了 Red Hat OpenShift GitOps。
流程
-
在 Web 控制台的 Administrator 视角中,进入 Administration
CustomResourceDefinitions。 -
搜索
Subscription
并点 Subscription CRD。 - 点 Instances 选项卡,然后点 openshift-gitops-operator 订阅。
点 YAML 选项卡并编辑 YAML 文件。
指定
NAMESPACE_SCOPED_ARGO_ROLLOUTS
环境变量,并在.spec.config.env
属性中设置为true
。配置命名空间范围的 Argo Rollouts 安装示例
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: openshift-gitops-operator spec: # (...) config: env: - name: NAMESPACE_SCOPED_ARGO_ROLLOUTS value: 'true' 1
- 1
- 设置为
'true'
可启用命名空间范围的安装。如果值设为'false'
或没有指定安装,则默认为集群范围的模式。
点击 Save。
Red Hat OpenShift GitOps Operator 有助于协调命名空间范围的安装中的 Argo Rollouts 自定义资源。
通过查看 GitOps 容器的日志来验证 Red Hat OpenShift GitOps Operator 是否已启用了命名空间范围的 Argo Rollouts 安装:
-
在 Web 控制台的 Administrator 视角中,进入 Workloads
Pods。 - 点 openshift-gitops-operator-controller-manager pod,然后点 Logs 选项卡。
-
查找以下日志语句:
在全命名空间范围模式中运行
。此声明表示 Red Hat OpenShift GitOps Operator 启用了命名空间范围的 Argo Rollouts 安装。
-
在 Web 控制台的 Administrator 视角中,进入 Workloads
创建一个
RolloutManager
资源,以完成命名空间范围的 Argo Rollouts 安装:-
进入 Operators
Installed Operators Red Hat OpenShift GitOps,然后点击 RolloutManager 选项卡。 - 单击 Create RolloutManager。
选择 YAML 视图 并输入以下片断:
命名空间范围的 Argo Rollouts 安装的
RolloutManager
CR 示例apiVersion: argoproj.io/v1alpha1 kind: RolloutManager metadata: name: rollout-manager namespace: my-application 1 spec: namespaceScoped: true
- 1
- 指定要安装命名空间范围的 Argo Rollouts 实例的项目名称。
点 Create。
创建
RolloutManager
CR 后,Red Hat OpenShift GitOps 开始将命名空间范围的 Argo Rollouts 实例安装到所选命名空间中。
-
进入 Operators
验证命名空间范围的安装是否成功。
-
在
RolloutManager
选项卡中,确保 RolloutManagers 部分下的 Status 字段是Phase: Available
。 在 RolloutManagers 部分下的 YAML 标签页中检查以下输出,以确保安装成功:
命名空间范围的 Argo Rollouts 安装 YAML 文件示例
spec: namespaceScoped: true status: conditions: lastTransitionTime: '2024-07-10T14:20:5z` message: '' reason: Success status: 'True' 1 type: 'Reconciled' phase: Available rolloutController: Available
- 1
- 此状态表示命名空间范围 Argo Rollouts 安装已被成功启用。
如果您试图在集群范围的安装已存在于集群中时安装特定于命名空间的 Argo Rollouts 实例,则会显示错误消息:
出错信息安装示例
spec: namespaceScoped: true status: conditions: lastTransitionTime: '2024-07-10T14:10:7z` message: 'when Subscription has environment variable NAMESPACE_SCOPED_ARGO_ROLLOUTS set to False, there may not exist any namespace-scoped RolloutManagers: only a single cluster-scoped RolloutManager is supported' reason: InvalidRolloutManagerScope status: 'False' 1 type: 'Reconciled' phase: Failure rolloutController: Failure
- 1
- 此状态表示命名空间范围的 Argo Rollouts 安装没有成功启用。安装默认为集群范围的模式。
-
在