3.4. 집계된 클러스터 역할 생성 활성화
클러스터 범위의 Argo CD 애플리케이션 컨트롤러 구성 요소에 대해 집계된 클러스터 역할을 생성하려면 Argo CD 사용자 정의 리소스(CR)의 YAML 파일을 편집하여 해당 필드를 구성해야 합니다.
프로세스
Argo CD CR에서
.spec.aggregatedClusterRoles
필드의 값을true
로 설정합니다.Argo CD CR의 예
apiVersion: argoproj.io/v1beta1 kind: ArgoCD metadata: name: example 1 namespace: spring-petclinic 2 # ... spec: aggregatedClusterRoles: true 3 # ...
출력 예
argocd.argoproj.io/example configured
클러스터 범위의 Argo CD 인스턴스의
Status
필드가Phase: Available
로 표시되는지 확인합니다. 다음 명령을 실행하여 사용할 수 있습니다.$ oc describe argocd.argoproj.io/example -n spring-petclinic
출력 예
Name: example Namespace: spring-petclinic Labels: <none> Annotations: <none> API Version: argoproj.io/v1beta1 Kind: ArgoCD Metadata: Creation Timestamp: 2024-08-14T08:20:53Z Finalizers: argoproj.io/finalizer Generation: 3 Resource Version: 60437 UID: 57940e54-d60b-4c1a-bc4a-85c81c63ab69 Spec: Aggregated Cluster Roles: true ... Status: Application Controller: Running Application Set Controller: Unknown Phase: Available 1 Redis: Running Repo: Running Server: Running Sso: Unknown Events: <none>
- 1
Available
상태는 클러스터 범위의 Argo CD 인스턴스가 정상이고 사용 가능함을 나타냅니다.
참고Red Hat OpenShift GitOps Operator는 다음과 같은 기본 클러스터 역할을 생성하고 관리합니다.
-
<argocd_name>-<argocd_namespace>-argocd-application-controller
집계 클러스터 역할 -
<argocd_name>-<argocd_namespace>-argocd-application-controller-view
-
<argocd_name>-<argocd_namespace>-argocd-application-controller-admin
다음 명령을 실행하여 Operator에서 Argo CD 애플리케이션 컨트롤러 및 Argo CD 서버 구성 요소에 대한 기본 클러스터 역할 및 클러스터 역할 바인딩을 생성했는지 확인합니다.
$ oc get ClusterRoles -l app.kubernetes.io/part-of=argocd
출력 예
NAME CREATED AT example-spring-petclinic-argocd-application-controller 2024-08-14T08:20:58Z example-spring-petclinic-argocd-application-controller-admin 2024-08-14T09:08:38Z example-spring-petclinic-argocd-application-controller-view 2024-08-14T09:08:38Z example-spring-petclinic-argocd-server 2024-08-14T08:20:59Z
$ oc get ClusterRoleBindings -l app.kubernetes.io/part-of=argocd
출력 예
NAME ROLE AGE example-spring-petclinic-argocd-application-controller ClusterRole/example-spring-petclinic-argocd-application-controller 54m example-spring-petclinic-argocd-server ClusterRole/example-spring-petclinic-argocd-server 54m
view
및admin
클러스터 역할에 대한 클러스터 역할 바인딩은 생성되지 않습니다.view
및admin
클러스터 역할은 집계된 클러스터 역할에만 권한을 추가하고 Argo CD 애플리케이션 컨트롤러에 대한 권한을 직접 구성하지 않기 때문입니다.작은 정보또는 OpenShift Container Platform 웹 콘솔을 사용하여 관리자 화면에서 확인할 수 있습니다. 사용자 관리
역할 및 사용자 관리 RoleBindings 로 각각 이동할 수 있습니다. app.kubernetes.io/part-of:argocd
레이블이 있는 클러스터 역할 및 클러스터 역할 바인딩을 검색할 수 있습니다.다음 명령을 실행하여 생성된 역할의 출력 권한을 확인하여 집계된 클러스터 역할이 생성되었는지 확인합니다.
$ oc get ClusterRole/<cluster_role_name> -o yaml 1
- 1
- &
lt;cluster_role_name
>을 생성된 역할의 이름으로 바꿉니다.
집계된 클러스터 역할의 출력 예
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: argocds.argoproj.io/name: example argocds.argoproj.io/namespace: spring-petclinic kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"argoproj.io/v1beta1","kind":"ArgoCD","metadata":{"annotations":{},"name":"example","namespace":"spring-petclinic"},"spec":{"aggregatedClusterRoles":true}} rbac.authorization.kubernetes.io/autoupdate: "true" creationTimestamp: "2024-08-14T08:20:58Z" labels: app.kubernetes.io/managed-by: spring-petclinic app.kubernetes.io/name: example app.kubernetes.io/part-of: argocd name: example-spring-petclinic-argocd-application-controller 1 resourceVersion: "78640" uid: aeeb2ef5-b531-4fe3-a61a-b5ad8dd8ca6e aggregationRule: 2 clusterRoleSelectors: - matchLabels: app.kubernetes.io/managed-by: spring-petclinic argocd/aggregate-to-controller: "true" rules: [] 3
view
클러스터 역할의 출력 예apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: argocds.argoproj.io/name: example argocds.argoproj.io/namespace: spring-petclinic kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"argoproj.io/v1beta1","kind":"ArgoCD","metadata":{"annotations":{},"name":"example","namespace":"spring-petclinic"},"spec":{"aggregatedClusterRoles":true}} creationTimestamp: "2024-08-14T09:59:14Z" labels: 1 app.kubernetes.io/managed-by: spring-petclinic app.kubernetes.io/name: example app.kubernetes.io/part-of: argocd argocd/aggregate-to-controller: "true" name: example-spring-petclinic-argocd-application-controller-view 2 resourceVersion: "78639" uid: 068b8867-7a0c-4af3-a17a-0560a00eba41 rules: 3 - apiGroups: - '*' resources: - '*' verbs: - get - list - watch - nonResourceURLs: - '*' verbs: - get - list
admin
클러스터 역할의 출력 예apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: annotations: argocds.argoproj.io/name: example argocds.argoproj.io/namespace: spring-petclinic kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"argoproj.io/v1beta1","kind":"ArgoCD","metadata":{"annotations":{},"name":"example","namespace":"spring-petclinic"},"spec":{"aggregatedClusterRoles":true}} rbac.authorization.kubernetes.io/autoupdate: "true" creationTimestamp: "2024-08-14T09:59:15Z" labels: 1 app.kubernetes.io/managed-by: spring-petclinic app.kubernetes.io/name: example app.kubernetes.io/part-of: argocd argocd/aggregate-to-controller: "true" name: example-spring-petclinic-argocd-application-controller-admin 2 resourceVersion: "78642" uid: e2d35b6f-0832-4993-8b24-915a725454f9 aggregationRule: 3 clusterRoleSelectors: - matchLabels: app.kubernetes.io/managed-by: spring-petclinic argocd/aggregate-to-admin: "true" rules: null 4
작은 정보또는 OpenShift Container Platform 웹 콘솔을 사용하여 관리자 화면에서 확인할 수 있습니다. 사용자 관리
역할로 이동하여 필터 옵션을 사용하여 클러스터 전체 역할을 선택하고 집계된 클러스터 역할을 검색하고, 사용자 관리 및 관리자
클러스터 역할을볼
수 있습니다. 세부 정보 및 구성을 확인하려면 클러스터 역할을 열어야 합니다.클러스터 관리자는 이제 하나 이상의 사용자 정의 클러스터 역할을 생성하고 Argo CD 애플리케이션 컨트롤러에 대한 사용자 정의 권한을 구성할 수 있습니다.
추가 리소스