Argo CD 인스턴스


Red Hat OpenShift GitOps 1.16

Argo CD 인스턴스 설치 및 배포, Argo CD 인스턴스로 알림 활성화, NotificationsConfiguration CR 구성

Red Hat OpenShift Documentation Team

초록

이 문서에서는 클러스터 구성을 관리하거나 애플리케이션을 배포하기 위해 Argo CD 인스턴스를 설치 및 배포하는 방법을 설명합니다. 또한 Argo CD 인스턴스에 대한 알림을 활성화하고 NotificationsConfiguration CR(사용자 정의 리소스)을 구성하는 방법에 대해 설명합니다.

1장. Argo CD 인스턴스 설정

기본적으로 Red Hat OpenShift GitOps는 특정 클러스터 범위 리소스를 관리하기 위한 추가 권한으로 openshift-gitops 네임스페이스에 Argo CD 인스턴스를 설치합니다. 이 기본 Argo CD 인스턴스는 기본 클러스터 범위 인스턴스라고도 합니다.

기본 Argo CD 인스턴스가 openshift-gitops 네임스페이스에서 시작되지 않도록 하려면 openshift-gitops-operator 서브스크립션을 사용하고 문자열 값을 "true" 로 설정하여 DISABLE_DEFAULT_ARGOCD_INSTANCE 환경 변수를 구성할 수 있습니다.

참고

GitOps 버전 1.13 이상의 경우:

  • 경로 TLS 종료는 기본 및 사용자 정의 Argo CD 인스턴스 모두에 대한 재암호화 모드로 기본값으로 설정됩니다. Argo CD 인스턴스에 대한 TLS 연결은 자체 서명된 Argo CD 인증서 대신 OpenShift Container Platform에 설정된 기본 수신 인증서를 수신합니다. Argo CD CR의 .spec.server.route.tls 필드를 구성하여 경로 TLS 종료 정책을 수정할 수 있습니다.
  • 제한된 Pod 보안 승인(PSA) 라벨은 OpenShift Container Platform 표준을 준수하기 위해 openshift-gitops 네임스페이스에 적용됩니다. 모니터링 또는 로깅과 같은 이 네임스페이스에서 추가 워크로드를 실행하는 경우 제한된 PSA 요구 사항을 준수하는지 확인하십시오. 컴플라이언스가 가능하지 않은 경우 사용자 정의 클러스터 범위 Argo CD 인스턴스를 사용하는 것이 좋습니다. 여기서 PSA 레이블은 GitOps Operator에 의해 적용되거나 제어되지 않습니다.

클러스터 구성을 관리하거나 애플리케이션을 배포하려면 새 사용자 정의 Argo CD 인스턴스를 설치하고 배포할 수 있습니다. 기본적으로 모든 새 사용자 정의 인스턴스에는 배포된 네임스페이스에서만 리소스를 관리할 수 있는 권한이 있습니다.

주의
  • Argo CD 네임스페이스에 대한 액세스 권한이 있는 Kubernetes 사용자는 Argo CD 관리자이며 Argo CD에 구성된 RBAC(역할 기반 액세스 제어) 제한을 바이패스할 수 있습니다. 관리자가 아닌 사용자에게 Argo CD 네임스페이스에 대한 읽기 또는 쓰기 액세스 권한을 부여하지 마십시오.
  • 관리자가 아닌 사용자가 애플리케이션을 생성하는 경우 제한이 없으므로 기본 AppProject CR(사용자 정의 리소스)에 바인딩하도록 허용하지 마십시오. 그렇지 않으면 Argo CD 인스턴스의 Kubernetes 권한과 기본 AppProject CR을 사용하면 모든 곳에 배포할 수 있습니다. 이 상황을 방지하려면 사용자가 Argo CD RBAC를 잘못 구성하더라도 실수로 사용할 수 없도록 기본 AppProject CR을 잠급니다.

openshift-gitops 네임스페이스 이외의 모든 네임스페이스에서 사용자 정의 Argo CD 인스턴스를 생성할 수 있습니다.

중요

openshift-gitops 네임스페이스에 사용자 정의 Argo CD 인스턴스를 생성하려면 openshift-gitops - operator 서브스크립션의 DISABLE_DEFAULT_ARGOCD_INSTANCE 플래그를 "true" 로 설정하고 인스턴스의 이름을 openshift-gitops 로 설정하지 마십시오.

1.1. 사용자 정의 Argo CD 인스턴스 설치

클러스터 구성을 관리하거나 애플리케이션을 배포하려면 새 사용자 정의 Argo CD 인스턴스를 설치하고 배포할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • OpenShift Container Platform 클러스터에 Red Hat OpenShift GitOps Operator를 설치했습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. 웹 콘솔의 관리자 화면에서 Operator설치된 Operator 를 클릭합니다.
  3. 프로젝트 목록에서 사용자 정의 Argo CD 인스턴스를 설치할 프로젝트를 생성하거나 선택합니다.
  4. 설치된 Operator 목록에서 Red Hat OpenShift GitOps 를 선택하고 Argo CD 탭을 클릭합니다.
  5. ArgoCD 생성 을 클릭하여 매개변수를 구성합니다.

    1. 인스턴스 이름을 입력합니다. 기본적으로 이름은 example 으로 설정됩니다.
    2. Argo CD 서버에 액세스할 외부 OS 경로를 생성합니다. 서버 → 경로를 클릭하고 활성화 되었는지 확인합니다.

      작은 정보

      다음 예와 같이 외부 OS 경로를 생성하도록 YAML을 구성할 수도 있습니다.

      외부 OS 경로가 생성된 Argo CD의 예

      apiVersion: argoproj.io/v1beta1
      kind: ArgoCD
      metadata:
        name: example
        namespace: openshift-gitops
      spec:
        server:
          route:
            enabled: true

    3. 선택 사항: Argo CD CR의 .spec.server.route.tls 필드를 구성하여 경로 TLS 종료 정책을 수정합니다.

      참고

      Argo CD Server 경로에 대한 사용자 정의 TLS 인증서를 구성할 때 .spec.server.route.tls.key.spec.server.route.tls.certificate 필드를 사용하지 마십시오. 대신 .spec.server.route.tls.externalCertificate 필드를 사용합니다. 사용자 정의 TLS 인증서의 경로 구성에 대한 자세한 내용은 경로에 대한 사용자 정의 TLS 인증서 의 예를 참조하십시오.

  6. 생성을 클릭합니다.
  7. 사용자 정의 Argo CD 인스턴스가 설치된 프로젝트에서 네트워킹경로 → < instance_name>-server 로 이동합니다.
  8. 세부 정보 탭에서 경로 세부 정보 → 위치 에서 Argo CD 웹 UI 링크를 클릭합니다. Argo CD 웹 UI가 별도의 브라우저 창에서 열립니다.
  9. 선택 사항: OpenShift Container Platform 인증 정보로 로그인하려면 cluster-admins 그룹의 사용자인지 확인한 다음 Argo CD 사용자 인터페이스에서 LOG IN VIA OPENSHIFT 옵션을 선택해야 합니다.

    참고

    cluster-admins 그룹의 사용자가 되려면 oc adm groups new cluster-admins <user > 명령을 사용합니다. 여기서 < user >는 클러스터 전체 또는 로컬로 사용자 및 그룹에 바인딩할 수 있는 기본 클러스터 역할입니다.

  10. 사용자 정의 Argo CD 인스턴스의 암호를 가져옵니다.

    1. 탐색 패널을 사용하여 워크로드 → 시크릿 페이지로 이동합니다.
    2. 프로젝트 목록을 사용하고 사용자 정의 Argo CD 인스턴스가 생성된 네임스페이스를 선택합니다.
    3. 암호를 표시할 <argo_CD_instance_name>-cluster 인스턴스를 선택합니다.
    4. 세부 정보 탭에서 데이터admin.password 아래에 암호를 복사합니다.
  11. adminUsername 으로 사용하고 복사한 암호를 Password 로 사용하여 새 창에서 Argo CD UI에 로그인합니다.

1.2. 네임스페이스 범위 인스턴스에 대한 사용자 정의 클러스터 역할을 지정하여 공통 클러스터 역할 구성

클러스터 관리자는 argocd.argoproj.io/managed-by 레이블을 사용하여 네임스페이스에 Argo CD에 액세스할 수 있는 경우 Argo CD는 namespace-admin 권한을 가정합니다. 그러면 Red Hat OpenShift GitOps Operator가 다음 GitOps 컨트롤 플레인 구성 요소의 모든 관리 네임스페이스에 대한 역할 바인딩을 자동으로 생성합니다.

  • Argo CD 애플리케이션 컨트롤러
  • Argo CD 서버
  • Argo CD ApplicationSet Controller

예를 들어 개발팀과 같이 관리자가 아닌 사용자에게 네임스페이스를 제공하는 경우 namespace-admin 권한을 사용하여 네트워크 정책과 같은 오브젝트를 수정할 수 있습니다. 이러한 네임스페이스에 Argo CD 인스턴스를 설치하면 개발 팀 관리자 권한이 부여되고 할당된 권한을 간접적으로 완화할 수 있습니다. 이러한 역할은 높은 권한이 있으며 모든 리소스를 삭제할 수 있습니다. 예방 조치로 Operator가 Argo CD 애플리케이션 컨트롤러 및 Argo CD 서버 구성 요소에 대해 생성하는 역할 바인딩에서 모든 관리형 네임스페이스에 대한 공통 클러스터 역할을 구성하여 보안 요구 사항을 충족하도록 보안 요구 사항을 충족하기 위해 축소된 특정 권한 세트를 정의할 수 있습니다.

모든 관리 네임스페이스에 대한 공통 클러스터 역할을 구성하려면 Operator의 Subscription 오브젝트 YAML 파일에서 CONTROLLER_CLUSTER_ROLESERVER_CLUSTER_ROLE 환경 변수에 대해 사용자 정의 클러스터 역할을 지정할 수 있습니다. 결과적으로 Operator는 기본 관리자 역할을 생성하는 대신 기존 사용자 정의 클러스터 역할을 사용하고 모든 관리 네임스페이스에 대한 역할 바인딩을 생성합니다.

사전 요구 사항

  • 관리자로 OpenShift Container Platform 클러스터에 로그인했습니다.
  • OpenShift Container Platform 클러스터에 Red Hat OpenShift GitOps Operator를 설치했습니다.

프로세스

  1. 관리자 관점에서 AdministrationCustomResourceDefinitions 로 이동합니다.
  2. Subscription CRD를 찾아 클릭하여 엽니다.
  3. Instances 탭을 선택하고 openshift-gitops-operator 서브스크립션을 클릭합니다.
  4. YAML 탭을 선택하고 사용자 지정을 만듭니다.

    • CONTROLLER_CLUSTER_ROLESERVER_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 Application Controller 구성 요소의 환경 변수 이름입니다.
      2
      Argo CD 서버 구성 요소의 환경 변수 이름입니다.
작은 정보

또는 이전 환경 변수를 Operator의 Deployment 오브젝트 YAML 파일에 직접 삽입할 수 있습니다.

1.3. Argo CD 서버 및 리포지토리 서버의 복제본 활성화

Argo CD-server 및 Argo CD-repo-server 워크로드는 상태 비저장입니다. Pod 간에 워크로드를 더 잘 배포하기 위해 Argo CD-server 및 Argo CD-repo-server 복제본의 수를 늘릴 수 있습니다. 그러나 Argo CD-server에서 수평 자동 스케일러가 활성화된 경우 설정한 복제본 수를 덮어씁니다.

프로세스

  • 리포지토리서버 사양의 replicas 매개변수를 실행할 복제본 수로 설정합니다.

    Argo CD 사용자 정의 리소스의 예

    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

1.4. 다른 네임스페이스에 리소스 배포

Argo CD가 설치된 위치와 다른 네임스페이스의 리소스를 관리할 수 있도록 하려면 argocd.argoproj.io/managed-by 라벨을 사용하여 대상 네임스페이스를 구성합니다.

프로세스

  • 다음 명령을 실행하여 대상 네임스페이스를 구성합니다.

    $ oc label namespace <target_namespace> \
    argocd.argoproj.io/managed-by=<argocd_namespace>

    다음과 같습니다.

    <target_namespace>
    Argo CD에서 관리할 네임스페이스의 이름을 지정합니다.
    <argocd_namespace>
    Argo CD가 설치된 네임스페이스의 이름을 지정합니다.

2장. Argo CD 사용자 정의 리소스 및 구성 요소 속성

ArgoCD 사용자 정의 리소스는 Argo CD 클러스터를 구성하는 구성 요소를 구성할 수 있는 지정된 Argo CD 클러스터에 대해 원하는 상태를 설명하는 CRD(Kubernetes Custom Resource)입니다.

2.1. Argo CD 사용자 정의 리소스 속성

Argo CD 사용자 정의 리소스는 다음 속성으로 구성됩니다.

이름설명기본속성

aggregatedClusterRoles

클러스터 범위 인스턴스의 Argo CD Application Controller 구성 요소에 대해 집계된 클러스터 역할을 사용합니다.

false

 

applicationInstanceLabelKey

Argo CD가 앱 이름을 추적 레이블로 삽입하는 metadata.label 키 이름입니다.

app.kubernetes.io/instance

 

applicationSet

ApplicationSet 컨트롤러 구성 옵션입니다.

오브젝트

  • annotations - Operator에서 배포한 Pod에 추가할 사용자 정의 주석 목록입니다. 이 필드는 선택 사항입니다.
  • enabled - Argo CD 설치 중에 ApplicationSet 컨트롤러를 활성화하는 데 사용할 플래그입니다.
  • env - ApplicationSet 컨트롤러 Pod의 환경을 지정합니다.
  • extraCommandArgs - ApplicationSet 워크로드에 대해 Operator가 설정한 기존 인수에 추가된 추가 인수 목록입니다.
  • image - ApplicationSet 컨트롤러의 컨테이너 이미지입니다. 이 속성은 ARGOCD_APPLICATIONSET_IMAGE 환경 변수를 재정의합니다.
  • labels - Operator에서 배포한 Pod에 추가할 사용자 정의 라벨 목록입니다. 이 필드는 선택 사항입니다.
  • loglevel - Argo CD 애플리케이션 컨트롤러 구성 요소에서 사용하는 로그 수준입니다. 유효한 옵션은 debug,info,error, warn 입니다.
  • LogFormat - Argo CD 애플리케이션 컨트롤러 구성 요소에서 사용하는 로그 형식입니다. 유효한 옵션은 textjson 입니다.
  • parallelismLimit - 컨트롤러에 설정할 kubectl 병렬 처리 제한(--- kubectl-parallelism-limit 플래그)입니다.
  • resources - 컨테이너 컴퓨팅 리소스입니다.
  • scmProviders - 허용된 SCM(Source Code Manager) 공급자의 URL입니다.
  • scmRootCAConfigMap - "/app/tls/scm/cert" 경로의 애플리케이션 세트 컨트롤러에 마운트될 Gitlab SCM 공급자의 TLS 인증서를 저장하는 구성 맵의 이름입니다.
  • sourceNamespaces - 대상 네임스페이스에서 Argo CD ApplicationSet 리소스를 생성하고 관리하기 위한 비컨트롤 플레인 네임스페이스 목록입니다.
  • version - applicationSet 컨테이너 이미지와 함께 사용할 태그입니다.
  • volumes - Argo CD ApplicationSet Controller 구성 요소에 대해 구성된 추가 볼륨 목록입니다. 이 필드는 선택 사항입니다.
  • volumeMounts - Argo CD ApplicationSet 컨트롤러 구성 요소에 대해 구성된 추가 볼륨 마운트 목록입니다. 이 필드는 선택 사항입니다.
  • webhookServer - ApplicationSet 웹 후크 서버에 사용 가능한 옵션을 정의합니다.

banner

UI 배너 메시지를 추가합니다.

오브젝트

  • banner.content - 배너 메시지 콘텐츠입니다. 배너가 표시되는 경우 이 콘텐츠가 필요합니다.
  • banner.url - 선택적 배너 메시지 링크 URL입니다.

configManagementPlugins

구성 관리 플러그인을 추가합니다.

 

controller

Argo CD 애플리케이션 컨트롤러 옵션.

<object>

  • annotations - Operator에서 배포한 Pod에 추가할 사용자 정의 주석 목록입니다. 이 필드는 선택 사항입니다.
  • AppSync - AppSync는 Argo CD 애플리케이션의 동기화 빈도를 제어하는 데 사용됩니다.
  • env - 애플리케이션 컨트롤러 워크로드에 설정할 환경입니다.
  • extraCommandArgs - Operator가 설정한 기존 인수에 추가된 인수 목록입니다.
  • initContainers - ArgoCD 애플리케이션 컨트롤러 구성 요소의 init 컨테이너 목록입니다. 이 필드는 선택 사항입니다.
  • labels - Operator에서 배포한 Pod에 추가할 사용자 정의 라벨 목록입니다. 이 필드는 선택 사항입니다.
  • loglevel - Argo CD 애플리케이션 컨트롤러 구성 요소에서 사용하는 로그 수준입니다. 유효한 옵션은 debug,info,error, warn 입니다.
  • processors.operation - 작업 프로세서 수입니다.
  • processors.status - 상태 프로세서 수입니다.
  • resources - 컨테이너 컴퓨팅 리소스입니다.
  • sidecarContainers - ArgoCD 애플리케이션 컨트롤러 구성 요소의 사이드카 컨테이너 목록입니다. 이 필드는 선택 사항입니다.
  • sharding.enabled - Argo CD 애플리케이션 컨트롤러 구성 요소에서 샤딩을 활성화합니다. 이 속성을 사용하여 많은 수의 클러스터를 관리하고 컨트롤러 구성 요소에서 메모리 부족을 완화합니다.
  • sharding.replicas Argo CD 애플리케이션 컨트롤러의 분할을 지원하는 데 사용되는 복제본 수입니다.
  • sharding.dynamicScalingEnabled - Argo CD Application Controller 구성 요소의 동적 스케일링을 활성화합니다. Operator에서 컨트롤러 구성 요소가 관리하는 클러스터 수에 따라 복제본 수를 확장하려면 이 속성을 사용합니다. 이 속성을 true 로 설정하면 sharding.enabledsharding.replicas 속성 구성이 재정의됩니다.
  • sharding.minShards - Argo CD Application Controller 복제본의 최소 수입니다.
  • sharding.maxShards - Argo CD 애플리케이션 컨트롤러 복제본의 최대 수입니다.
  • sharding.clustersPerShard - 각 shard에서 관리해야 하는 클러스터 수입니다. 복제본 수가 maxShards 에 도달하면 shard는 둘 이상의 클러스터를 관리합니다.
  • volumes - Argo CD 애플리케이션 컨트롤러 구성 요소에 대해 구성된 추가 볼륨 목록입니다. 이 필드는 선택 사항입니다.
  • volumeMounts - Argo CD 애플리케이션 컨트롤러 구성 요소에 대해 구성된 추가 볼륨 마운트 목록입니다. 이 필드는 선택 사항입니다.

disableAdmin

기본 제공 admin 사용자를 비활성화합니다.

false

 

defaultClusterScopedRoleDisabled

클러스터 범위 인스턴스의 기본 클러스터 역할 생성을 비활성화합니다.

false

 

extraConfig

Argo CD 사용자 정의 리소스 내에서 직접 구성할 수 없는 argocd-cm 구성 맵에 보조 Argo CD 설정을 추가합니다.

 

gaTrackingID

Google Analytics 추적 ID를 사용합니다.

 

gaAnonymizeUsers

Google Analytics로 전송되는 해시된 사용자 이름을 활성화합니다.

false

 

ha

고가용성 옵션.

오브젝트

  • enabled - Argo CD에 대해 전역적으로 고가용성 지원을 제공합니다.
  • redisProxyImage - Redis HAProxy 컨테이너 이미지. 이 속성은 ARGOCD_REDIS_HA_PROXY_IMAGE 환경 변수를 재정의합니다.
  • redisProxyVersion - Redis HAProxy 컨테이너 이미지에 사용할 태그입니다.

helpChatURL

채팅 도움말을 가져오기 위한 URL(일반적으로 지원을 위한 Slack 채널임).

https://mycorp.slack.com/argo-cd

 

helpChatText

채팅 도움말을 가져오기 위해 텍스트 상자에 표시되는 텍스트입니다.

지금 채팅!

 

image

모든 Argo CD 구성 요소의 컨테이너 이미지입니다. 이렇게 하면 ARGOCD_IMAGE 환경 변수가 재정의됩니다.

argoproj/argocd

 

가져오기

Argo CD의 구성 옵션을 가져옵니다.

오브젝트

  • name - 데이터를 가져올 수 있는 ArgoCDExport 리소스의 이름입니다.
  • namespace - name 필드에서 참조하는 ArgoCDExport 리소스의 네임스페이스입니다. 이 필드가 설정되지 않은 경우 ArgoCDExport 리소스의 네임스페이스는 기본적으로 Argo CD와 동일한 네임스페이스로 설정됩니다.

Ingress

인그레스 구성 옵션.

오브젝트

 

initialRepositories

클러스터 생성 시 사용할 Argo CD를 구성하는 초기 Git 리포지토리입니다.

 

initialSSHKnownHosts

SSH를 통해 Git 리포지토리에 연결하는 데 클러스터 생성 시 사용할 Argo CD의 초기 SSH knownn Hosts 데이터를 정의합니다.

default_Argo_CD_Known_Hosts

  • excludedefaulthosts - Argo CD에서 제공하는 SSH 알려진 호스트 기본 목록을 추가할지 여부를 나타냅니다.
  • keys - Argo CD 서버에 통합하려는 SSH 알려진 호스트 사용자 지정 세트를 설명합니다.

kustomizeBuildOptions

kustomize 빌드와 함께 사용할 빌드 옵션 및 매개변수입니다.

 

kustomizeVersions

Argo CD 리포지토리 서버 컨테이너 이미지에 구성된 Kustomize 버전 목록을 정의합니다.

  • path - Argo CD 리포지토리 서버 컨테이너 이미지의 파일 시스템에 있는 Kustomize 버전의 경로입니다.
  • 버전 - Argo CD 리포지토리 서버 컨테이너 이미지에 구성된 vX.Y.Z 형식의 Kustomize 버전입니다.

모니터링

인스턴스의 워크로드 상태 모니터링 구성을 정의합니다.

오브젝트

  • disableMetrics - 인스턴스의 메트릭 컬렉션을 활성화하거나 비활성화하도록 이 필드를 구성합니다.
  • enabled - 인스턴스에 워크로드 상태 모니터링이 활성화되었는지 여부를 나타냅니다.

알림

알림 컨트롤러 구성 옵션.

오브젝트

  • enabled - 알림 컨트롤러를 시작하기 위한 토글입니다.
  • env - 알림 컨트롤러 워크로드에 설정할 환경입니다.
  • image - 모든 Argo CD 구성 요소의 컨테이너 이미지입니다. 이 속성은 ARGOCD_IMAGE 환경 변수를 재정의합니다.
  • loglevel - Argo CD 애플리케이션 컨트롤러 구성 요소에서 사용하는 로그 수준입니다. 유효한 옵션은 debug,info,error, warn 입니다.
  • replicas - 알림 컨트롤러에 대해 실행할 복제본 수입니다.
  • resources - 컨테이너 컴퓨팅 리소스입니다.
  • 버전 - 알림 컨테이너 이미지와 함께 사용할 태그입니다.

nodePlacement

Argo CD 워크로드에 대한 NodeSelectors Tolerations를 정의합니다.

  • nodeSelector - 노드 선택을 위한 키-값 쌍의 맵입니다.
  • 허용 오차 - 허용 오차를 사용하면 Pod에서 일치하는 테인트가 있는 노드에 대한 스케줄을 생성할 수 있습니다.

oidcConfig

OIDC 구성의 대안으로 Dex입니다.

 

prometheus

Prometheus 구성 옵션.

오브젝트

  • enabled - Argo CD에 대해 전 세계적으로 Prometheus를 지원합니다.
  • host - Ingress 또는 Route 리소스에 사용할 호스트 이름입니다.
  • Ingress - Prometheus의 수신을 집계합니다.
  • Route - 경로 구성 옵션.
  • size - Prometheus StatefulSet 의 복제본 수입니다.

rbac

RBAC 구성 옵션.

오브젝트

  • defaultPolicy - argocd-rbac-cm 구성 맵의 policy.default 속성입니다. Argo CD가 API 요청을 승인할 때 대체되는 기본 역할의 이름입니다.
  • policy - argocd-rbac-cm 구성 맵의 policy.csv 속성입니다. 이 속성에는 사용자 정의 RBAC 정책 및 역할 정의에 대한 CSV 데이터가 포함됩니다.
  • policyMatcher - argocd-rbac-cm 구성 맵의 policy.matchMode 속성입니다. 이 속성에는 두 가지 옵션(글로러러의 경우 'glob' for glob matcher 및 regex matcher용 'regex')이 있습니다.
  • scopes - argocd-rbac-cm 구성 맵의 scopes 속성입니다. 하위 범위 외에도 RBAC 적용 중에 검사할 OIDC 범위를 제어합니다.

Redis

Redis 구성 옵션.

오브젝트

  • autotls - 공급자를 사용하여 Redis 서버의 TLS 인증서를 생성합니다. 현재 openshift 값만 사용할 수 있습니다.
  • disableTLSVerification - 엄격한 TLS 검증을 사용하여 Redis 서버에 액세스해야 하는지 여부를 정의합니다.
  • image - Redis의 컨테이너 이미지입니다. 이렇게 하면 ARGOCD_REDIS_IMAGE 환경 변수가 재정의됩니다.
  • resources - 컨테이너 컴퓨팅 리소스입니다.
  • version - Redis 컨테이너 이미지와 함께 사용할 태그입니다.

repositoryCredentials

클러스터 생성에 사용할 Argo CD를 구성하기 위한 Git 리포지토리 인증 정보 템플릿입니다.

 

resourceActions

리소스 작업 동작을 사용자 정의합니다.

 

resourceExclusions

리소스 그룹의 전체 클래스를 완전히 무시합니다.

 

resourceInclusions

적용되는 리소스 그룹/종류를 식별하는 구성입니다.

 

resourceHealthChecks

리소스 상태 점검 동작을 사용자 정의합니다.

 

resourceIgnoreDifferences

리소스를 사용자 지정하면 차이점 동작이 무시됩니다.

 

resourceTrackingMethod

Argo CD에서 관리 리소스를 모니터링하는 데 사용하는 필드입니다.

label

 

server

Argo CD 서버 구성 옵션.

<object>

  • annotations - Operator에서 배포한 Pod에 추가할 사용자 정의 주석 목록입니다. 이 필드는 선택 사항입니다.
  • autoscale - 서버 자동 스케일링 구성 옵션.
  • env - 서버 워크로드에 설정할 환경입니다.
  • enabled - Argo CD 설치 중에 Argo CD 서버를 활성화하는 플래그입니다.
  • enableRolloutsUI - 매개변수가 true 로 설정된 경우 매개변수는 Argo CD에서 Argo Rollouts UI 확장을 활성화합니다. 기본값은 false 로 설정됩니다.
  • extraCommandArgs - Operator가 설정한 기존 인수에 추가된 인수 목록입니다.
  • gRPC - gRPC 구성 옵션.
  • host - Ingress 또는 Route 리소스에 사용되는 호스트 이름입니다.
  • initContainers - Argo CD 애플리케이션 컨트롤러 구성 요소의 init 컨테이너 목록입니다. 이 필드는 선택 사항입니다.
  • Ingress - Argo CD 서버 구성 요소에 대한 Ingress 구성입니다.
  • insecure - Argo CD 서버의 비보안 플래그를 집계합니다.
  • labels - Operator에서 배포한 Pod에 추가할 사용자 정의 라벨 목록입니다. 이 필드는 선택 사항입니다.
  • loglevel - Argo CD 서버 구성 요소에서 사용할 로그 수준입니다. 유효한 옵션은 debug,info,error, warn 입니다.
  • LogFormat - Argo CD 서버 구성 요소에서 사용하는 로그 형식입니다. 유효한 옵션은 textjson 입니다.
  • resources - 컨테이너 컴퓨팅 리소스입니다.
  • replicas - Argo CD 서버의 복제본 수입니다. 0 보다 크거나 같아야 합니다. 자동 스케일링 이 활성화되면 복제본 이 무시됩니다.
  • Route - 경로 구성 옵션.
  • service.Type - 서비스 리소스에 사용되는 serviceType입니다.
  • sidecarContainers - Argo CD 애플리케이션 컨트롤러 구성 요소의 사이드카 컨테이너 목록입니다. 이 필드는 선택 사항입니다.
  • volumes - Argo CD 애플리케이션 컨트롤러 구성 요소에 대해 구성된 추가 볼륨 목록입니다. 이 필드는 선택 사항입니다.
  • volumeMounts - Argo CD 애플리케이션 컨트롤러 구성 요소에 대해 구성된 추가 볼륨 마운트 목록입니다. 이 필드는 선택 사항입니다.

sourceNamespaces

애플리케이션 리소스를 생성할 수 있는 네임스페이스를 지정합니다.

string

 

sso

Single Sign-On 옵션

오브젝트

  • DEX - Dex SSO 공급자의 구성 옵션.
  • K eycloak - Keycloak SSO 공급자에 대한 구성 옵션입니다.
  • provider - Single Sign-on을 구성하는 데 사용되는 공급자의 이름입니다. 현재 지원되는 옵션은 Dex 및 Keycloak입니다.

statusBadgeEnabled

애플리케이션 상태 배지를 활성화합니다.

true

 

tls

TLS 구성 옵션.

오브젝트

  • ca.configMapName - CA 인증서가 포함된 ConfigMap 의 이름입니다.
  • ca.secretName - CA 인증서 및 키가 포함된 시크릿의 이름입니다.
  • initialCerts - HTTPS를 통해 Git 리포지토리를 연결하기 위한 argocd-tls-certs-cm 구성 맵의 초기 인증서 세트입니다.

usersAnonymousEnabled

익명 사용자 액세스를 활성화합니다.

true

 

version

모든 Argo CD 구성 요소에 대해 컨테이너 이미지와 함께 사용할 태그입니다.

 

최신 Argo CD 버전

2.2. 리포지토리 서버 속성

다음 속성은 리포지토리 서버 구성 요소를 구성하는 데 사용할 수 있습니다.

이름기본설명

annotations

Operator에서 배포한 Pod에 추가할 사용자 정의 주석 목록입니다. 이 필드는 선택 사항입니다.

autotls

""

repo-server의 gRPC TLS 인증서에 TLS를 설정하는 데 사용할 공급자입니다. 현재는 openshift 값만 허용됩니다.

env

Repo 서버 워크로드에 대해 설정할 환경입니다.

enabled

Argo CD 설치 중에 Repo 서버를 활성화하는 플래그입니다.

execTimeout

180

툴 렌더링을 위한 실행 시간(초)입니다(예: Helm 또는 Kustomize).

extraRepoCommandArgs

Repo 서버 워크로드에 명령줄 인수를 전달합니다. 명령줄 인수는 Operator에서 설정한 인수 목록에 추가됩니다.

initContainers

Argo CD 애플리케이션 컨트롤러 구성 요소의 init 컨테이너 수입니다. 이 필드는 선택 사항입니다.

image

argoproj/argocd

Argo CD Repo 서버의 컨테이너 이미지입니다. 이 적절한 경우 ARGOCD_REPOSERVER_IMAGE 환경 변수를 덮어씁니다.

labels

Operator에서 배포한 Pod에 추가할 사용자 정의 라벨 목록입니다. 이 필드는 선택 사항입니다.

logLevel

info

Argo CD Repo 서버에서 사용하는 로그 수준입니다. 유효한 옵션은 debug,info,error, warn 입니다.

logFormat

text

Argo CD 리포지토리 서버에서 사용할 로그 형식입니다. 유효한 옵션은 textjson 입니다.

mountsatoken

false

serviceaccount 토큰을 repo-server 포드에 마운트해야 하는지 여부를 정의합니다.

remote

Repo 서버 컨테이너의 원격 URL을 지정합니다.

replicas

Argo CD Repo 서버의 복제본 수입니다. 0 보다 크거나 같아야 합니다.

resources

컨테이너 컴퓨팅 리소스입니다.

ServiceAccount

""

repo-server Pod와 함께 사용할 serviceaccount 의 이름입니다.

sidecarContainers

Argo CD 애플리케이션 컨트롤러 구성 요소의 사이드카 컨테이너 수입니다. 이 필드는 선택 사항입니다.

tls 확인

false

리포지토리 서버와 통신할 때 모든 구성 요소에서 엄격한 TLS 검사를 적용할지 여부를 정의합니다.

version

.spec.Version과 동일합니다.

Argo CD Repo 서버와 함께 사용할 태그입니다.

volumes

Repo 서버 배포에 사용되는 추가 볼륨을 구성합니다. 이 필드는 선택 사항입니다.

volumeMounts

Repo 서버 배포에 사용되는 추가 볼륨 마운트를 구성합니다. 이 필드는 선택 사항입니다.

2.3. Argo CD 인스턴스를 사용하여 알림 활성화

Argo CD 알림을 사용하면 Argo CD 인스턴스에서 이벤트가 발생할 때 외부 서비스에 알림을 보낼 수 있습니다. 예를 들어 동기화 작업이 실패하면 Slack 또는 이메일에 알림을 보낼 수 있습니다. 기본적으로 알림은 Argo CD 인스턴스에서 비활성화되어 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있고 웹 콘솔에 로그인한 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
  • 클러스터에 Red Hat OpenShift GitOps Operator가 설치되어 있습니다.

프로세스

OpenShift Container Platform 웹 콘솔을 사용하여 Argo CD 인스턴스에 대한 알림을 활성화하려면 다음 단계를 완료합니다.

  1. Operator설치된 Operator 페이지로 이동합니다.
  2. 설치된 Operator 목록에서 Red Hat OpenShift GitOps Operator를 선택한 다음 ArgoCD 탭을 클릭합니다.
  3. 알림을 활성화하려는 Argo CD 인스턴스 이름을 선택합니다. 예: openshift-gitops.
  4. YAML 탭을 클릭한 다음 spec.notifications.enabled 매개변수를 true 로 편집한 다음 설정합니다.

    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: openshift-gitops
    spec:
      notifications:
        enabled: true
    #....

  5. 저장을 클릭합니다.
작은 정보

또는 Openshift CLI에서 oc patch 명령을 사용하여 알림을 활성화할 수 있습니다. 예를 들면 다음과 같습니다.

oc patch argocd openshift-gitops -n openshift-gitops --type merge --patch '{"spec": {"notifications": {"enabled": true}}}'

추가 리소스

2.4. Argo CD CR에서 구성 관리 플러그인 활성화

Argo CD는 Helm, Jsonnet 및 Kustomize를 기본 제공 구성 관리 툴로 지원합니다. 다른 구성 관리 툴을 사용하거나 기본 제공 구성 관리 툴에서 제공하지 않는 기능을 활성화하려면 구성 관리 플러그인(CMP)을 사용할 수 있습니다.

Argo CD에서 CMP는 Argo CD 리포지토리 서버 컨테이너의 사이드카 컨테이너로 지정됩니다. 자세한 내용은 "구성 관리 플러그인"을 참조하십시오.

Red Hat OpenShift GitOps Operator에서 Argo CD CR(사용자 정의 리소스)에서 구성 관리 플러그인을 사이드카 컨테이너로 구성할 수 있습니다. 사이드카 컨테이너를 구성할 때 off-the-shelf 또는 사용자 정의 빌드 컨테이너 이미지를 지정합니다. 이미지를 지정하지 않으면 시스템은 플러그인의 리포지토리 서버와 동일한 이미지를 사용합니다.

Red Hat OpenShift GitOps Operator에서 사이드카 컨테이너를 구성하려면 Argo CD CR에 .spec.repo.sidecarContainers 키를 추가합니다.

구성 관리 플러그인 구성의 예

apiVersion: argoproj.io/v1alpha1
kind: ArgoCD
metadata:
 name: <my_argocd> 1
spec:
 repo:
   sidecarContainers:
     - name: <my_cmp> 2
       command: [/var/run/argocd/argocd-cmp-server]
       image: <my_image>
       securityContext:
         runAsNonRoot: <true>
         runAsUser: 3
       volumeMounts: 4
         - mountPath: /var/run/argocd
           name: <var_files>
         - mountPath: /home/argocd/cmp-server/plugins
           name: plugins
         - mountPath: /tmp
           name: tmp
         - mountPath: /home/argocd/cmp-server/config/plugin.yaml
           subPath: <plugin.yaml>
           name: <cmp_plugin>

1
Argo CD CR 인스턴스의 이름을 지정합니다.
2
리포지토리 서버에서 사용되는 사이드카 컨테이너의 이름을 지정합니다.
4
리포지토리 서버에 사용되는 볼륨 마운트의 이름을 지정합니다.

2.5. NotificationsConfiguration 사용자 정의 리소스 속성

NotificationsConfiguration 리소스는 Kubernetes 클러스터의 알림을 관리하는 Kubernetes 사용자 정의 리소스(CR)입니다. Red Hat OpenShift GitOps에서는 Notifications Configuration CR을 사용하여 템플릿, 트리거, 서비스 및 서브스크립션 리소스를 Argo CD 알림 구성 맵에 추가할 수 있습니다.

알림이 활성화된 Red Hat OpenShift GitOps에서 클러스터를 생성하면 기본적으로 NotificationsConfiguration CR이 name default-notifications-configuration 을 사용하여 생성됩니다.

NotificationsConfiguration CR의 기존 구성에서 수행된 모든 변경 사항은 Argo CD 알림 구성 맵에 복제됩니다. 예를 들어, 사용자가 Notifications Configuration 리소스에 트리거 구성을 추가하면 Argo CD 알림 구성 맵에서 이 구성을 읽고 처리하고 업데이트합니다.

중요

모든 구성 변경 사항은 default-notifications-configuration CR에서 업데이트해야 합니다. NotificationsConfiguration 리소스에 대해 사용자가 생성한 사용자 정의 리소스는 지원되지 않습니다.

Argo CD argocd-notifications-cm 구성 맵에 대한 수정은 NotificationsConfiguration CR에서 변경한 사항으로 재정의됩니다.

표 2.1. NotificationsConfiguration 사용자 정의 리소스 속성
속성기본설명

Templates

<empty>

템플릿은 알림 템플릿 메시지를 생성하는 데 사용됩니다.

Trigger

<empty>

트리거는 알림이 사용자에게 전송될 때 조건과 메시지를 생성하는 데 필요한 템플릿 목록을 정의하는 데 사용됩니다.

서비스

<empty>

서비스는 메시지를 전달하는 데 사용됩니다.

서브스크립션

<empty>

서브스크립션에는 중앙 집중식으로 관리되는 글로벌 애플리케이션 서브스크립션이 포함되어 있습니다.

다음 예제에서는 default-notifications-configuration 사용자 정의 리소스를 사용하여 Argo CD argocd-notification-cm 구성 구성 맵에 템플릿, 트리거, 서비스 및 서브스크립션 리소스를 추가하는 방법을 정의합니다.

템플릿

apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
 name: default-notifications-configuration 1
spec:
 templates:
  template.my-custom-template: | 2
    message: |
     Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.

1
클러스터의 NotificationsConfiguration CR의 기본 이름입니다.
2
NotificationsConfiguration CR에 대한 사용자 정의 템플릿 구성의 예입니다.

트리거의 예

apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
 name: default-notifications-configuration 1
spec:
 triggers:
  trigger.on-sync-status-unknown: | 2
   - when: app.status.sync.status == 'Unknown'
   send: [my-custom-template]

1
클러스터의 NotificationsConfiguration CR의 기본 이름입니다.
2
NotificationsConfiguration CR에 대한 사용자 정의 트리거 구성의 예입니다.

서비스의 예

apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
 name: default-notifications-configuration 1
spec:
 services:
  service.slack: |
    token: $slack-token 2
    username: <override-username> # optional username
    icon: <override-icon> # optional icon for the message (supports both emoji and url notation)

1
클러스터의 NotificationsConfiguration CR의 기본 이름입니다.
2
NotificationsConfiguration CR에 대한 사용자 정의 서비스 구성의 예입니다.

서브스크립션

apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
 name: default-notifications-configuration 1
spec:
 subscriptions: 2
  subscriptions: |
    # subscription for on-sync-status-unknown trigger notifications
    - recipients:
      - slack:test2
      - email:test@gmail.com
      triggers:
      - on-sync-status-unknown
    # subscription restricted to applications with matching labels only
    - recipients:
      - slack:test3
      selector: test=true
      triggers:
      - on-sync-status-unknown

1
클러스터의 NotificationsConfiguration CR의 기본 이름입니다.
2
NotificationsConfiguration CR에 대한 사용자 정의 서브스크립션 구성의 예입니다.

OpenShift Container Platform 웹 콘솔 또는 CLI(oc)를 사용하여 NotificationsConfiguration CR을 구성할 수 있습니다.

2.5.1. 웹 콘솔을 사용하여 NotificationsConfiguration CR 구성

웹 콘솔을 사용하여 NotificationsConfiguration CR(사용자 정의 리소스)을 구성할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있고 웹 콘솔에 로그인한 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
  • 클러스터에 Red Hat OpenShift GitOps Operator가 설치되어 있습니다.
  • Argo CD 인스턴스에 대한 알림이 활성화되어 있습니다. 자세한 내용은 " Argo CD 인스턴스를 사용하여 알림 활성화"를 참조하십시오.

프로세스

  1. OpenShift Container Platform 웹 콘솔의 관리자 화면에서 Operator → 설치된 Operator 를 확장합니다.
  2. 설치된 Operator 목록에서 Red Hat OpenShift GitOps Operator를 선택한 다음 NotificationsConfiguration 탭을 클릭합니다.
  3. NotificationsConfigurations 페이지에서 default-notifications-configuration 을 클릭합니다.
  4. default-notifications-configuration 페이지에서 YAML 을 클릭하고 템플릿 과 같은 지원되는 리소스에 대한 구성 을 추가합니다. 예를 들어 코드의 템플릿 아래에 다음 샘플 구성을 추가합니다.

    템플릿 구성 예

      template.my-custom-template: |
        message: |
        Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.

  5. 저장을 클릭합니다.
  6. NotificationsConfiguration CR의 구성 변경 사항이 argocd-notifications-cm 구성 맵에 반영되었는지 확인합니다.

    1. 워크로드 → ConfigMap 으로 이동합니다.
    2. argocd-notifications-cm 를 클릭하고 YAML 탭을 선택합니다.
    3. YAML 탭의 페이지를 스크롤하여 지원되는 리소스에 추가된 샘플 구성을 확인합니다.

2.5.2. CLI를 사용하여 NotificationsConfiguration CR 구성

CLI(oc)를 사용하여 NotificationsConfiguration CR(사용자 정의 리소스)을 구성할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
  • 클러스터에 Red Hat OpenShift GitOps Operator가 설치되어 있습니다.
  • Argo CD 인스턴스에 대한 알림이 활성화되어 있습니다. 자세한 내용은 " Argo CD 인스턴스를 사용하여 알림 활성화"를 참조하십시오.

프로세스

  1. 다음 명령을 실행하여 클러스터에서 기본 NotificationsConfiguration CR을 편집합니다.

    $ oc edit notificationsconfiguration default-notifications-configuration -n <namespace>

    다음과 같습니다.

    default-notifications-configuration
    기본 NotificationsConfiguration CR의 이름을 지정합니다.
    <namespace>
    네임스페이스의 이름을 지정합니다.
  2. CR의 templates 섹션에서 다음 예와 유사한 구성을 추가합니다.

    템플릿 구성 예

      template.my-custom-template: |
        message: |
        Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.

  3. 다음 명령을 실행하여 argocd-notifications-cm 구성 맵의 내용을 확인합니다.

    $ oc edit cm argocd-notifications-cm -n <namespace>

    NotificationsConfiguration CR의 기존 구성 변경 사항은 argocd-notifications-cm 구성 맵에 반영됩니다.

2.6. Argo CD에서 주석 기반 리소스 추적 활성화

Red Hat OpenShift GitOps Operator는 Argo CD에서 주석 기반 리소스 추적을 개선하여 다중 인스턴스 지원을 향상시킵니다. 이전 버전에서는 여러 Argo CD 인스턴스가 기존 레이블 기반 추적에만 의존하여 동일한 애플리케이션 이름으로 리소스를 적절하게 구별하지 않았습니다. 이번 개선된 기능을 통해 각 인스턴스에 고유한 설치 ID 를 할당하여 주석 기반 추적을 완전히 활용할 수 있습니다. 이렇게 하면 리소스 충돌을 방지하고 무한 동기화 루프를 제거하고 안전하게 병렬 작업을 수행할 수 있습니다.

OpenShift Container Platform 웹 콘솔을 사용하여 다음 작업을 수행할 수 있습니다.

  • 여러 Argo CD 인스턴스 설정
  • 네임스페이스와 연결하여 주석 기반 추적 구성
  • 배포 확인
참고
  • 리소스 추적 충돌을 방지하려면 각 Argo CD 인스턴스에 고유한 installationID ID가 있어야 합니다.
  • 각 Argo CD 인스턴스에서 의도한 리소스만 관리할 수 있으므로 네임스페이스의 레이블이 정확하게 지정되었는지 확인합니다.
  • 여러 인스턴스에 이름이 같은 애플리케이션이 있는 경우 리소스 추적을 annotations +label 로 설정합니다.
  • 문제가 발생하면 Argo CD 애플리케이션 상태를 확인하고 OpenShift Container Platform 웹 콘솔의 로그를 확인하십시오.

2.6.1. 여러 Argo CD 인스턴스에서 주석 기반 추적 구성

여러 Argo CD 인스턴스에서 주석 기반 추적을 구성할 수 있습니다.

참고

이 절차에서는 다음 예제 값을 사용합니다.

  • repoURL: https://github.com/redhat-developer/gitops-operator
  • server: https://kubernetes.default.svc

다음 단계를 수행할 때 예제 값을 실제 값으로 바꿉니다.

사전 요구 사항

  • 관리자로 OpenShift Container Platform 클러스터에 로그인했습니다.
  • OpenShift Container Platform 클러스터에 Red Hat OpenShift GitOps Operator를 설치했습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. 웹 콘솔의 관리자 화면에서 Operator설치된 Operator 를 클릭합니다.

    • 프로젝트 목록에서 사용자 정의 Argo CD 인스턴스를 설치할 프로젝트를 생성하거나 선택합니다.
  3. 설치된 Operator 목록에서 Red Hat OpenShift GitOps 를 선택하고 Argo CD 탭을 클릭합니다.
  4. Argo CD 인스턴스 두 개를 생성하려면 ArgoCD 생성 을 클릭하고 다음 예제와 유사한 두 개의 YAML 파일을 생성합니다.

    주석 레이블이 있는 첫 번째 Argo CD 인스턴스의 예

    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: argocd-instance-demo-1 1
      namespace: argocd-test-demo-1 2
    spec:
      installationID: "instance-demo-1" 3
      resourceTrackingMethod: "annotation+label"

    1
    첫 번째 Argo CD 인스턴스의 이름을 지정합니다.
    2
    첫 번째 Argo CD 인스턴스에 사용되는 네임스페이스를 지정합니다.
    3
    첫 번째 Argo CD 인스턴스에 대한 installationID 오브젝트의 이름을 지정합니다.

    주석 레이블이 있는 두 번째 Argo CD 인스턴스의 예

    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: argocd-instance-demo-2 1
      namespace: argocd-test-demo-2 2
    spec:
      installationID: "instance-demo-2" 3
      resourceTrackingMethod: "annotation+label"

    1
    두 번째 Argo CD 인스턴스의 이름을 지정합니다.
    2
    두 번째 Argo CD 인스턴스에 사용되는 네임스페이스를 지정합니다.
    3
    두 번째 Argo CD 인스턴스에 대한 installationID 오브젝트의 이름을 지정합니다.
  5. 네임스페이스를 Argo CD 인스턴스와 연결하도록 대상 네임스페이스를 구성하고 레이블을 지정합니다.

    1. 관리네임스페이스로 이동합니다.
    2. 애플리케이션 배포, app-ns-1app-ns-2 를 위한 네임스페이스를 만듭니다.
    3. 각 네임스페이스를 각 Argo CD 인스턴스와 연결합니다.

      1. 다음 명령을 실행하여 app-ns-1 네임스페이스를 argocd-test-demo-1 Argo CD 인스턴스와 연결합니다.

        명령 예

        $ oc label namespace app-ns-1 argocd.argoproj.io/managed-by=argocd-test-demo-1

      2. 다음 명령을 실행하여 app-ns-2 네임스페이스를 argocd-test-demo-2 Argo CD 인스턴스와 연결합니다.

        명령 예

        $ oc label namespace app-ns-2 argocd.argoproj.io/managed-by=argocd-test-demo-2

  6. Argo CD에 두 개의 애플리케이션을 생성합니다.

    1. OpenShift Container Platform 웹 콘솔에서 Operator → 설치된 Operator OpenShift GitOps Operator 로 이동합니다.
    2. Argo CD 를 선택하고 애플리케이션 탭으로 이동합니다.
    3. 애플리케이션 생성을 클릭합니다.
    4. 다음 YAML 스니펫을 입력하여 Argo CD에 두 개의 애플리케이션을 생성합니다.

      Argo CD를 사용하는 첫 번째 애플리케이션 예

      apiVersion: argoproj.io/v1alpha1
      kind: Application
      metadata:
        name: sprint-petclinic 1
        namespace: argocd-test-demo-1 2
      spec:
        project: default
        source:
          repoURL: https://github.com/redhat-developer/gitops-operator
          path: test/examples/nginx
          targetRevision: HEAD
        destination:
          server: https://kubernetes.default.svc
          namespace: app-ns-1
        syncPolicy:
          automated: {}

      1
      첫 번째 애플리케이션의 이름을 지정합니다.
      2
      첫 번째 애플리케이션에 사용되는 네임스페이스를 지정합니다.

      Argo CD를 사용하는 두 번째 애플리케이션 예

      apiVersion: argoproj.io/v1alpha1
      kind: Application
      metadata:
        name: sprint-petclinic 1
        namespace: argocd-test-demo-2 2
      spec:
        project: default
        source:
          repoURL: https://github.com/redhat-developer/gitops-operator
          path: test/examples/nginx
          targetRevision: HEAD
        destination:
          server: https://kubernetes.default.svc
          namespace: app-ns-2
        syncPolicy:
          automated: {}

      1
      첫 번째 애플리케이션과 동일한 이름으로 생성된 두 번째 애플리케이션의 이름을 지정합니다.
      2
      두 번째 애플리케이션에 사용되는 네임스페이스를 지정합니다.

검증

  1. OpenShift Container Platform 웹 콘솔에서 워크로드Pod 로 이동합니다.
  2. Argo CD 인스턴스의 포드가 argocd-instance-demo-1argocd-instance-demo-2 가 실행 중인지 확인합니다.
  3. Argo CD Applications YAML 탭에서 애플리케이션 동기화 상태를 확인합니다.
  4. argocd-test-demo-1 및 argocd-test- demo-2 네임스페이스에서 argocd- cm 구성 맵으로 이동하여 installationID 오브젝트가 성공적으로 구성되었는지 확인합니다.

2.7. 추가 리소스

법적 공지

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.