apiVersion: argoproj.io/v1beta1
kind: ArgoCD
metadata:
name: example
namespace: openshift-gitops
spec:
server:
route:
enabled: true
默认情况下,Red Hat OpenShift GitOps 在 `openshift-gitops` 命名空间中安装一个 Argo CD 实例,并具有管理某些集群范围资源的其他权限。此默认 Argo CD 实例也称为默认集群范围实例。
要阻止默认 Argo CD 实例在 `openshift-gitops` 命名空间中启动,您可以使用 `openshift-gitops-operator` 订阅并在其中配置 `DISABLE_DEFAULT_ARGOCD_INSTANCE` 环境变量,方法是将字符串值设置为 `"true"`。
对于 GitOps 版本 1.13 及更高版本
|
要管理集群配置或部署应用程序,您可以安装和部署新的用户定义的 Argo CD 实例。默认情况下,任何新的用户定义实例都只有权限管理其部署到的命名空间中的资源。
|
您可以在任何命名空间(除了openshift-gitops
命名空间)中创建用户定义的 Argo CD 实例。
如果您想在 |
要管理集群配置或部署应用程序,您可以安装和部署新的用户定义的 Argo CD 实例。
您有权访问具有cluster-admin
权限的集群。
您已在 OpenShift Container Platform 集群上安装了 Red Hat OpenShift GitOps Operator。
登录到 OpenShift Container Platform Web 控制台。
在 Web 控制台的**管理员**视角中,单击**Operators** → **已安装的 Operators**。
从**项目**列表中创建或选择您要安装用户定义的 Argo CD 实例的项目。
从已安装的 Operators 列表中选择**Red Hat OpenShift GitOps**,然后单击**Argo CD**选项卡。
单击**创建 ArgoCD**以配置参数
输入实例的**名称**。默认情况下,**名称**设置为example
。
创建一个外部 OS 路由以访问 Argo CD 服务器。单击**服务器** → **路由**并选中**启用**。
您也可以配置 YAML 来创建外部 OS 路由,如下例所示 创建具有外部 OS 路由的 Argo CD 示例
|
可选:通过配置 Argo CD CR 的.spec.server.route.tls
字段来修改路由 TLS 终止策略。
为 Argo CD 服务器路由配置自定义 TLS 证书时,避免使用 |
单击**创建**。
转到安装用户定义的 Argo CD 实例的项目中的**网络** → **路由** → **<instance_name>-server**。
在**详细信息**选项卡上,单击**路由详细信息** → **位置**下的 Argo CD Web UI 链接。Argo CD Web UI 将在新浏览器窗口中打开。
可选:要使用您的 OpenShift Container Platform 凭据登录,请确保您是cluster-admins
组的用户,然后在 Argo CD 用户界面中选择通过 OpenShift 登录
选项。
要成为 |
获取用户定义的 Argo CD 实例的密码
使用导航面板转到**工作负载** → **密钥**页面。
使用**项目**列表并选择创建用户定义的 Argo CD 实例的命名空间。
选择**<argo_CD_instance_name>-cluster**实例以显示密码。
在**详细信息**选项卡上,复制**数据** → **admin.password**下的密码。
使用admin
作为**用户名**,使用复制的密码作为**密码**登录新窗口中的 Argo CD UI。
作为集群管理员,当您使用argocd.argoproj.io/managed-by
标签授予 Argo CD 对命名空间的访问权限时,Argo CD 将承担namespace-admin
权限。然后,Red Hat OpenShift GitOps Operator 将自动为以下 GitOps 控制平面组件的所有托管命名空间创建角色绑定
Argo CD 应用程序控制器
Argo CD 服务器
Argo CD ApplicationSet 控制器
当您向非管理员用户(例如开发团队)提供命名空间时,他们可以使用namespace-admin
权限修改网络策略等对象。在这些命名空间中安装 Argo CD 实例会赋予开发团队admin
权限,并间接提升其分配的权限。这些角色具有很高的权限,可以删除所有资源。作为预防措施,您可以通过为 Operator 为 Argo CD 应用程序控制器和 Argo CD 服务器组件创建的角色绑定中所有托管命名空间配置公共集群角色来定义一组特定的、权限降低的角色,以满足您的安全要求。
要为所有托管命名空间配置公共集群角色,您可以为 Operator 的Subscription
对象 YAML 文件中的CONTROLLER_CLUSTER_ROLE
和SERVER_CLUSTER_ROLE
环境变量指定用户定义的集群角色。结果,Operator 将使用现有的用户定义的集群角色,并为所有托管命名空间创建角色绑定,而不是创建默认的admin
角色。
您已以管理员身份登录到 OpenShift Container Platform 集群。
您已在 OpenShift Container Platform 集群上安装了 Red Hat OpenShift GitOps Operator。
在**管理员**视角中,导航到**管理** → **CustomResourceDefinitions**。
找到**Subscription** CRD 并单击以打开它。
选择**实例**选项卡并单击**openshift-gitops-operator**订阅。
选择**YAML**选项卡并进行自定义
为CONTROLLER_CLUSTER_ROLE
和SERVER_CLUSTER_ROLE
环境变量指定用户定义的集群角色
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: openshift-gitops-operator
namespace: openshift-gitops-operator
spec:
config:
env:
- name: CONTROLLER_CLUSTER_ROLE
value: gitops-controller-role (1)
- name: SERVER_CLUSTER_ROLE
value: gitops-server-role (2)
1 | Argo CD 应用程序控制器组件的环境变量名称。 |
2 | Argo CD 服务器组件的环境变量名称。 |
或者,您可以将前面的环境变量直接注入 Operator 的 |
Argo CD 服务器和 Argo CD 仓库服务器工作负载是无状态的。为了更好地在 Pod 之间分配工作负载,您可以增加 Argo CD 服务器和 Argo CD 仓库服务器副本的数量。但是,如果在 Argo CD 服务器上启用了水平自动缩放器,它将覆盖您设置的副本数量。
将repo
和server
规范的replicas
参数设置为要运行的副本数
apiVersion: argoproj.io/v1beta1
kind: ArgoCD
metadata:
name: example-argocd
labels:
example: repo
spec:
repo:
replicas: <number_of_replicas>
server:
replicas: <number_of_replicas>
route:
enabled: true
path: /
tls:
insecureEdgeTerminationPolicy: Redirect
termination: passthrough
wildcardPolicy: None
为了允许 Argo CD 管理其安装位置之外的其他命名空间中的资源,请使用argocd.argoproj.io/managed-by
标签配置目标命名空间。
配置命名空间
$ oc label namespace <namespace> \
argocd.argoproj.io/managed-by=<namespace> (1)
1 | Argo CD 安装所在的命名空间。 |
在多租户集群中,用户可能需要处理多个 Argo CD 实例。例如,在您的命名空间中安装 Argo CD 实例后,您可能会发现控制台应用程序启动器中显示的是不同的 Argo CD 实例链接,而不是您自己的 Argo CD 实例。
您可以通过设置DISABLE_DEFAULT_ARGOCD_CONSOLELINK
环境变量来自定义 Argo CD 控制台链接。
当您将DISABLE_DEFAULT_ARGOCD_CONSOLELINK
设置为true
时,Argo CD 控制台链接将被永久删除。
当您将DISABLE_DEFAULT_ARGOCD_CONSOLELINK
设置为false
或使用默认值时,Argo CD 控制台链接将被暂时删除,并在 Argo CD 路由协调后再次显示。
您已以管理员身份登录到 OpenShift Container Platform 集群。
您已安装 Red Hat OpenShift GitOps Operator。
在**管理员**视角中,导航到**管理** → **CustomResourceDefinitions**。
找到**Subscription** CRD 并单击以打开它。
选择**实例**选项卡并单击**openshift-gitops-operator**订阅。
选择**YAML**选项卡并进行自定义
要启用或禁用 Argo CD 控制台链接,请根据需要编辑DISABLE_DEFAULT_ARGOCD_CONSOLELINK
的值。
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: openshift-gitops-operator
spec:
config:
env:
- name: DISABLE_DEFAULT_ARGOCD_CONSOLELINK
value: 'true'