클러스터 생성기를 사용하는 ArgoCD ApplicationSets의 클러스터별 템플릿 재정의
6620 단어 kubernetestutorialargocdops
소개
만들기
ApplicationSets
는 ArgoCD에서 응용 프로그램 템플릿을 건조시키는 훌륭한 도구입니다. 유일한 차이점이 staging
및 production
에 대한 네임스페이스이거나 canary
및 stable
와 같은 트랙에 대한 레이블 지정인 유사한 애플리케이션을 생성할 수 있습니다. 따라서 다음 사용 사례를 고려하십시오.apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: example-application
namespace: argocd
spec:
syncPolicy:
preserveResourcesOnDeletion: true
generators:
- clusters:
selector:
matchLabels: #...
values:
env: staging
track: stable
- clusters:
selector:
matchLabels: #...
values:
env: production
track: stable
- clusters:
selector:
matchLabels: #...
values:
env: production
track: canary
template:
#...
이러한 값은 단순한 문자열이므로 설정하기 쉽습니다. 간단한 보간을 사용하여 이를 사용할 수 있습니다. 우리의 경우 템플릿 사양에서 이러한 값을 기반으로 여러 가지 값 파일을 사용합니다.
valueFiles:
- values.yaml
- 'values.{{values.env}}.yaml'
- 'values.{{values.track}}.yaml'
- 'secrets.{{values.env}}.yaml'
문제
더 복잡한 것이 필요할 때까지 이것은 모두 훌륭하고 멋집니다. 이러한 클러스터 중 하나만 자동 동기화를 수행하도록 설정하려는 경우를 상상해 보십시오. 우리의 경우 helm 차트에서 버전을 변경할 때마다 스테이징이 즉시 동기화되기를 원합니다.
syncPolicy
를 설정할 수 있지만 해당 인터페이스는 개체이므로 클러스터 특정 방식으로 보간할 수 없습니다. 이를 활성화하려면 다음을 사용해야 합니다.syncPolicy:
automated: {}
예를 들어 스테이징을 위해서만 병합하려는 경우 이러한 재정의를 어디에서 설정합니까?
해결책
cluster
개체에서 템플릿 재정의를 설정할 수 있습니다. 이것은 이 차트에 정의된 템플릿과 병합됩니다.- clusters:
selector:
matchLabels: #...
values:
env: staging
track: stable
template:
spec:
syncPolicy:
automated: {}
그러나 단순히 템플릿 재정의를 설정하는 것이 아닙니다. 어떤 이유로 필수 키가 자리 표시자인 경우에도 설정해야 합니다. 이는 손에 들고 있는 클러스터에 대해 무엇이든 설정하기 위해 설정해야 하는 최소한의 모양이 있음을 의미합니다. 다음과 같습니다.
template:
+ metadata: {}
spec:
+ project: app
+ destination: {}
+ source:
+ repoURL: http://github.com/example/helm-charts
syncPolicy:
automated: {}
따라서 스테이징 클러스터는 다음과 같아야 유효합니다.
- clusters:
selector:
matchLabels: #...
values:
env: staging
track: stable
template:
metadata: {}
spec:
project: web
destination: {}
source:
repoURL: http://github.com/example/helm-charts
syncPolicy:
automated: {}
이제 클러스터 생성기를 사용 중이고 동기화 정책의 클러스터별 재정의를 원하는 경우 이제 그 방법을 알 수 있습니다.
Reference
이 문제에 관하여(클러스터 생성기를 사용하는 ArgoCD ApplicationSets의 클러스터별 템플릿 재정의), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rangeoshun/cluster-specific-template-overrides-in-argocd-applicationsets-using-cluster-generators-4e1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)