5.7. Argo CD Operator

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

5.7.1. Argo CD CLI 툴

Argo CD CLI 툴은 명령줄을 통해 Argo CD를 구성하는 데 사용되는 툴입니다. Red Hat OpenShift GitOps는 이 바이너리를 지원하지 않습니다. OpenShift 콘솔을 사용하여 Argo CD를 구성합니다.

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

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

이름

설명

기본값

속성

ApplicationInstanceLabelKey

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

app.kubernetes.io/instance

 

ApplicationSet

ApplicationSet 컨트롤러 구성 옵션.

<Object>

  • &lt ; image> - ApplicationSet 컨트롤러의 컨테이너 이미지입니다. 이렇게 하면 ARGOCD_APPLICATIONSET_IMAGE 환경 변수가 재정의됩니다.
  • &lt ; version> - ApplicationSet 컨테이너 이미지에 사용할 태그입니다.
  • < resources > - 컨테이너 컴퓨팅 리소스입니다.
  • <loglevel> - Argo CD 애플리케이션 컨트롤러 구성 요소에서 사용하는 로그 수준 입니다. 유효한 옵션은 debug,info,errorwarn 입니다.
  • < LogFormat > - Argo CD 애플리케이션 컨트롤러 구성 요소에서 사용하는 로그 형식입니다. 유효한 옵션은 text 또는 json 입니다.
  • <PrallelismLimit > - 컨트롤러에 대해 설정할 kubectl 병렬 처리 제한 (-kubectl-parallelism-limit 플래그).

ConfigManagementPlugins

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

<empty>

 

컨트롤러

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

<Object>

  • <processors.Operation > - 작업 프로세서 수
  • <processors.Status > - 상태 프로세서 수
  • < resources > - 컨테이너 컴퓨팅 리소스입니다.
  • <loglevel> - Argo CD 애플리케이션 컨트롤러 구성 요소에서 사용하는 로그 수준 입니다. 유효한 옵션은 debug,info,errorwarn 입니다.
  • <AppSync > - AppSync는 Argo CD 애플리케이션의 동기화 빈도를 제어하는 데 사용됩니다.
  • <sharding.enabled> - Argo CD 애플리케이션 컨트롤러 구성 요소에서 샤 딩을 활성화합니다. 이 속성은 컨트롤러 구성 요소에서 메모리 부족을 완화하기 위해 다수의 클러스터를 관리하는 데 사용됩니다.
  • <sharding.replicas > - Argo CD 애플리케이션 컨트롤러의 분할을 지원하는 데 사용할 복제본 수입니다.
  • <env > - 애플리케이션 컨트롤러 워크로드에 대해 설정할 환경입니다.

DisableAdmin

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

false

 

GATrackingID

Google 웹 로그 분석 추적 ID를 사용합니다.

<empty>

 

GAAnonymize 사용자

Google 분석으로 전송된 해시된 사용자 이름을 활성화합니다.

false

 

HA

고가용성 옵션.

<Object>

  • <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

 

Ingress

Ingress 구성 옵션.

<Object>

 

InitialRepositories

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

<empty>

 

알림

알림 컨트롤러 구성 옵션.

<Object>

  • < enabled > - notifications-controller를 시작하기 위한 토글입니다.
  • <image> - 모든 Argo CD 구성 요소의 컨테이너 이미지입니다. 이렇게 하면 ARGOCD_IMAGE 환경 변수가 재정의됩니다.
  • < version > - 알림 컨테이너 이미지와 함께 사용할 태그입니다.
  • < resources > - 컨테이너 컴퓨팅 리소스입니다.
  • <loglevel> - Argo CD 애플리케이션 컨트롤러 구성 요소에서 사용하는 로그 수준 입니다. 유효한 옵션은 debug,info,errorwarn 입니다.

RepositoryCredentials

클러스터 생성 시 사용할 Argo CD를 구성하는 Git 리포지토리 자격 증명 템플릿.

<empty>

 

InitialSSHKnownHosts

클러스터 생성 시 사용할 Argo CD의 초기 SSH Known Hosts입니다.

<default_Argo_CD_Known_Hosts>

 

KustomizeBuildOptions

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

<empty>

 

OIDCConfig

OIDC 구성은 Dex에 대한 대안으로 사용됩니다.

<empty>

 

nodePlacement

nodeSelector허용 오차 를 추가합니다.

<empty>

 

Prometheus

Prometheus 구성 옵션.

<Object>

  • & lt;enabled& gt; - Argo CD에 대한 전역적으로 Prometheus 지원을 토글합니다.
  • < host > - Ingress 또는 Route 리소스에 사용할 호스트 이름입니다.
  • <Ingress > - Prometheus의 Ingress를 토글합니다.
  • <route > - 경로 구성 옵션입니다.
  • &lt ;size > - Prometheus StatefulSet 의 복제본 수입니다.

RBAC

RBAC 구성 옵션.

<Object>

  • < DefaultPolicy > - argocd-rbac-cm 구성 맵의 policy.default 속성입니다. API 요청을 승인할 때 Argo CD가 다시 대체되는 기본 역할의 이름입니다.
  • <policy> - argocd-rbac-cm 구성 맵의 policy.csv 속성입니다. 사용자 정의 RBAC 정책 및 역할 정의가 포함된 CSV 데이터
  • < scopes > - argocd-rbac-cm 구성 맵의 scopes 속성입니다. RBAC 적용 중 검사할 OIDC 범위를 제어합니다(하위 범위 포함).

Redis

Redis 구성 옵션.

<Object>

  • <AutoTLS > - 공급자를 사용하여 Redis 서버의 TLS 인증서( openshift 중 하나)를 생성합니다. 현재 OpenShift Container Platform에서만 사용할 수 있습니다.
  • <DisableTLSVerification > - 엄격한 TLS 검증을 사용하여 Redis 서버에 액세스해야 하는지 여부를 정의합니다.
  • &lt ;image > - Redis의 컨테이너 이미지입니다. 이렇게 하면 ARGOCD_REDIS_IMAGE 환경 변수가 재정의됩니다.
  • < resources > - 컨테이너 컴퓨팅 리소스입니다.
  • &lt ; version> - Redis 컨테이너 이미지에 사용할 태그입니다.

ResourceCustomizations

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

<empty>

 

ResourceExclusions

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

<empty>

 

resourceInclusions

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

<empty>

 

서버

Argo CD 서버 구성 옵션.

<Object>

  • <autoscale& gt; - 서버 자동 스케일링 구성 옵션.
  • <ExtraCommandArgs > - Operator가 설정한 기존 인수에 추가된 인수 목록입니다.
  • <GRPC > - GRPC 구성 옵션
  • < host > - Ingress 또는 Route 리소스에 사용되는 호스트 이름입니다.
  • <Ingress > - Argo CD 서버 구성 요소에 대한 Ingress 구성입니다.
  • <insecure > - Argo CD 서버에 대한 비보안 플래그를 토글합니다.
  • < resources > - 컨테이너 컴퓨팅 리소스입니다.
  • &lt ;replicas > - Argo CD 서버의 복제본 수입니다. 0 보다 크거나 같아야 합니다. Autoscale 이 활성화되면 Replicas 가 무시됩니다.
  • <route > - 경로 구성 옵션입니다.
  • <service .Type > - 서비스 리소스에 사용된 ServiceType 입니다.
  • <loglevel> - Argo CD 서버 구성 요소에서 사용할 로그 수준 입니다. 유효한 옵션은 debug,info,errorwarn 입니다.
  • < LogFormat > - Argo CD 애플리케이션 컨트롤러 구성 요소에서 사용하는 로그 형식입니다. 유효한 옵션은 text 또는 json 입니다.
  • < env> - 서버 워크로드에 설정할 환경입니다.

SSO

SSO(Single Sign-On) 옵션.

<Object>

  • &lt ; image> - Keycloak의 컨테이너 이미지입니다. 이렇게 하면 ARGOCD_KEYCLOAK_IMAGE 환경 변수가 재정의됩니다.
  • <Keycloak > - Keycloak SSO 공급자에 대한 구성 옵션
  • <DEX& gt; - Dex SSO 공급자의 설정 옵션
  • <provider> - Single Sign-on을 구성하는 데 사용되는 공급자의 이름입니다. 현재 지원되는 옵션은 Dex 및 Keycloak입니다.
  • < resources > - 컨테이너 컴퓨팅 리소스입니다.
  • <VerifyTLS > - Keycloak 서비스와 통신할 때 엄격한 TLS 검사를 실행할지 여부입니다.
  • &lt ; version> - Keycloak 컨테이너 이미지에 사용할 태그입니다.

StatusBadgeEnabled

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

true

 

TLS

TLS 구성 옵션.

<Object>

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

UserAnonyousEnabled

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

true

 

버전

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

최신 Argo CD 버전

 

Banner

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

<Object>

  • <banner .Content> - 배너 메시지 콘텐츠(Banner 가 표시되는 경우 필수)입니다.
  • <banner.URL.SecretName& gt; - 배너 메시지 링크 URL(선택 사항)

5.7.3. 리포지토리 서버 속성

Repo 서버 구성 요소를 구성하는 데 사용할 수 있는 속성은 다음과 같습니다.

이름

기본값

설명

리소스

<empty>

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

MountSAToken

false

ServiceAccount 토큰이 repo-server Pod에 마운트되어야 하는지의 여부입니다.

ServiceAccount

""

repo-server Pod에 사용할 ServiceAccount 의 이름입니다.

VerifyTLS

false

repo 서버와 통신할 때 모든 구성 요소에서 엄격한 TLS 검사를 적용할지 여부입니다.

AutoTLS

""

TLS를 설정하는 데 사용하는 공급자는 repo-server의 gRPC TLS 인증서( openshift 중 하나)를 설정합니다. 현재 OpenShift에서만 사용할 수 있습니다.

Image

argoproj/argocd

Argo CD Repo 서버의 컨테이너 이미지입니다. 이렇게 하면 ARGOCD_REPOSERVER_IMAGE 환경 변수가 재정의됩니다.

버전

same as .spec.Version

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

LogLevel

info

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

LogFormat

text

Argo CD Repo 서버에서 사용할 로그 형식입니다. 유효한 옵션은 text 또는 json입니다.

ExecTimeout

180

렌더링 툴(예: Helm, Kustomize)의 실행 제한 시간(초)입니다.

env

<empty>

리포지토리 서버 워크로드에 설정할 환경입니다.

replicas

<empty>

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

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

Argo CD 알림 컨트롤러를 활성화하거나 비활성화하려면 Argo CD 사용자 정의 리소스에서 매개변수를 설정합니다. 기본적으로 알림은 비활성화되어 있습니다. 알림을 활성화하려면 .yaml 파일에서 enabled 매개변수를 true 로 설정합니다.

프로세스

  1. enabled 매개변수를 true 로 설정합니다.
apiVersion: argoproj.io/v1alpha1
kind: ArgoCD
metadata:
  name: example-argocd
spec:
  notifications:
    enabled: true