3.5. 사용자 정의 클러스터 역할 생성 및 애플리케이션 컨트롤러에 대한 사용자 정의 권한 구성


클러스터 관리자는 집계된 클러스터 역할에 사용자 정의 권한을 추가하려면 하나 이상의 사용자 정의 클러스터 역할을 생성한 다음 클러스터 범위 Argo CD 인스턴스의 Argo CD 애플리케이션 컨트롤러 구성 요소에 대한 사용자 정의 권한을 구성해야 합니다.

사전 요구 사항

  • 클러스터 범위 Argo CD 인스턴스의 Argo CD 애플리케이션 컨트롤러 구성 요소에 대해 집계된 클러스터 역할을 생성했습니다.
  • Red Hat OpenShift GitOps Operator에서 생성 및 관리하는 다음과 같은 기본 클러스터 역할이 있습니다.

    • < argocd_name>-<argocd_namespace>-argocd-application-controller 가 사전 정의된 aggregationRule 필드를 사용하여 클러스터 역할을 집계했습니다.
    • <argocd_name>-<argocd_namespace>-argocd-application-controller-view 및 사전 정의된 보기 권한
    • 사전 정의된 권한이 없는 < argocd_name>-<argocd_namespace>-argocd-application-controller-admin

프로세스

  1. 다음 명령을 사용하여 필수 레이블 및 권한으로 새 클러스터 역할을 생성합니다.

    $ oc apply -n <namespace> -f <cluster_role_name>.yaml

    다음과 같습니다.

    <namespace>
    정의된 네임스페이스의 이름을 지정합니다.
    <cluster_role_name>

    정의된 클러스터 역할 YAML 파일의 이름을 지정합니다.

    사용자 정의 클러스터 역할 YAML의 예

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: user-application-controller 1
      labels: 2
        app.kubernetes.io/managed-by: spring-petclinic
        app.kubernetes.io/name: example
        app.kubernetes.io/part-of: argocd
        argocd/aggregate-to-admin: 'true'
    rules: 3
      - verbs:
          - '*'
        apiGroups:
          - ''
        resources:
          - namespaces
          - persistentvolumeclaims
          - persistentvolumes
          - configmaps
      - verbs:
          - '*'
        apiGroups:
          - compliance.openshift.io
        resources:
          - scansettingbindings

    1
    사용자 정의 클러스터 역할의 이름입니다.
    2
    레이블은 기존 < argocd_name>-<argocd_namespace>-argocd-application-controller-admin 클러스터 역할의 사전 정의된 목록과 일치합니다.
    3
    < argocd_name>-<argocd_namespace>-argocd-application-controller-admin 클러스터 역할을 통해 집계된 클러스터 역할에 추가할 사용자 정의 권한입니다.
    작은 정보

    또는 웹 콘솔을 사용하여 관리자 화면에서 사용자 정의 클러스터 역할을 생성할 수 있습니다. 사용자 관리 역할 역할 생성 으로 이동하여 이전 YAML 템플릿을 사용하여 권한을 추가하고 생성 을 클릭합니다.

    출력 예

    clusterrole.rbac.authorization.k8s.io/user-application-controller created

    사용자 정의 클러스터 역할이 생성됩니다.

  2. 다음 명령을 실행하여 < argocd_name>-<argocd_namespace>-argocd-application-controller-admin 클러스터 역할이 사용자 정의 클러스터 역할의 권한을 상속하는지 확인합니다.

    $ oc get ClusterRole/<argocd_name>-<argocd_namespace>-argocd-application-controller-admin -o yaml

    다음과 같습니다.

    <argocd_name>
    사용자 정의 클러스터 범위 Argo CD 인스턴스의 이름을 지정합니다.
    <argocd_namespace>

    Argo CD가 설치된 네임스페이스를 지정합니다.

    출력 예

    aggregationRule:
      clusterRoleSelectors:
      - matchLabels:
          app.kubernetes.io/managed-by: spring-petclinic
          argocd/aggregate-to-admin: "true"
    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:15Z"
      labels:
        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
      resourceVersion: "79202"
      uid: e2d35b6f-0832-4993-8b24-915a725454f9
    rules:
    - apiGroups:
      - ""
      resources:
      - namespaces
      - persistentvolumeclaims
      - persistentvolumes
      - configmaps
      verbs:
      - '*'
    - apiGroups:
      - compliance.openshift.io
      resources:
      - scansettingbindings
      verbs:
      - '*'

    작은 정보

    또는 OpenShift Container Platform 웹 콘솔을 사용하여 관리자 화면에서 확인할 수 있습니다. 사용자 관리 역할로 이동하여 필터 옵션을 사용하여 클러스터 전체 역할을 선택하고 < argocd_name>-<argocd_namespace>-argocd-application-controller-admin 클러스터 역할을 검색할 수 있습니다. 세부 정보 및 구성을 확인하려면 클러스터 역할을 열어야 합니다.

  3. 다음 명령을 실행하여 < argocd_name>-<argocd_namespace>-argocd_application-controller 집계 클러스터 역할에서 < argocd_name>-<argocd_namespace>-argocd_namespace>-argocd-application-controller-admin 및 < argocd_name>-<argocd_namespace>-argocd_controller-view 의 권한을 상속하는지 확인합니다.

    $ oc get ClusterRole/<argocd_name>-<argocd_namespace>-argocd-application-controller -o yaml

    다음과 같습니다.

    <argocd_name>
    사용자 정의 클러스터 범위 Argo CD 인스턴스의 이름을 지정합니다.
    <argocd_namespace>

    Argo CD가 설치된 네임스페이스를 지정합니다.

    집계된 클러스터 역할의 출력 예

    aggregationRule:
      clusterRoleSelectors:
      - matchLabels:
          app.kubernetes.io/managed-by: spring-petclinic
          argocd/aggregate-to-controller: "true"
    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
      resourceVersion: "79203"
      uid: aeeb2ef5-b531-4fe3-a61a-b5ad8dd8ca6e
    rules:
    - apiGroups:
      - ""
      resources:
      - namespaces
      - persistentvolumeclaims
      - persistentvolumes
      - configmaps
      verbs:
      - '*'
    - apiGroups:
      - compliance.openshift.io
      resources:
      - scansettingbindings
      verbs:
      - '*'
    - apiGroups:
      - '*'
      resources:
      - '*'
      verbs:
      - get
      - list
      - watch
    - nonResourceURLs:
      - '*'
      verbs:
      - get
      - list

    작은 정보

    또는 OpenShift Container Platform 웹 콘솔을 사용하여 관리자 화면에서 확인할 수 있습니다. 사용자 관리 역할로 이동하여 필터 옵션을 사용하여 클러스터 전체 역할을 선택한 다음 집계된 클러스터 역할을 검색할 수 있습니다. 세부 정보 및 구성을 확인하려면 클러스터 역할을 열어야 합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.