생성기

생성기 (Generators)

Generator는 파라미터(parameters) 를 생성하고, 그 파라미터가 ApplicationSet 리소스의 template: 필드에 렌더링되는 구조예요. 사용하는 데이터 원본에 따라 List, Cluster, Git 생성기 등 여러 종류가 있으며, 두 개의 생성기를 조합하는 Matrix/Merge 생성기도 있어요.

출처: 문서

본문

Generator는 파라미터(parameters) 를 생성하며, 이 파라미터는 ApplicationSet 리소스의 template: 필드에 렌더링돼요. generator가 template과 함께 동작해 Argo CD Application을 만드는 예시는 소개를 참고하세요.

Generator는 기본적으로 템플릿 파라미터를 생성할 때 사용하는 데이터 원본(data source)에 따라 달라져요. 예를 들어 List generator는 리터럴 목록 에서 파라미터 묶음을 제공하고, Cluster generator는 Argo CD 클러스터 목록 을 원본으로 사용하며, Git generator는 Git 저장소 의 파일/디렉토리를 사용해요.

현재(이 문서 작성 시점) 기준으로 아홉 가지 generator가 있어요.

  • List generator: 임의의 key/value 요소 쌍으로 이루어진 고정 목록을 기반으로 Argo CD Application을 클러스터에 배포 대상으로 지정할 수 있어요.
  • Cluster generator: Argo CD 안에 정의되고 관리되는 클러스터 목록을 기반으로 Application을 클러스터에 배포 대상으로 지정할 수 있어요(Argo CD의 클러스터 추가/제거 이벤트에 자동으로 반응함).
  • Git generator: Git 저장소 안의 파일, 또는 Git 저장소의 디렉토리 구조를 기반으로 Application을 만들 수 있어요.
  • Matrix generator: 두 개의 개별 generator가 생성한 파라미터를 조합할 때 사용해요.
  • Merge generator: 두 개 이상의 generator가 생성한 파라미터를 병합할 때 사용해요. 추가 generator가 기본 generator의 값을 덮어쓸 수 있어요.
  • SCM Provider generator: SCM 제공자(예: GitHub)의 API를 사용해 조직(organization) 안의 저장소를 자동으로 발견해요.
  • Pull Request generator: SCMaaS 제공자(예: GitHub)의 API를 사용해 저장소 안의 열린 pull request를 자동으로 발견해요.
  • Cluster Decision Resource generator: 커스텀 리소스 특유의 로직으로 어느 Argo CD 클러스터 집합에 배포할지 결정하는 Kubernetes 커스텀 리소스와 연동할 때 사용해요.
  • Plugin generator: RPC HTTP 요청을 보내 파라미터를 제공해요.

모든 generator는 Post Selector로 필터링할 수 있어요.

generator가 처음이라면 ListCluster generator부터 시작하세요. 더 고급 사용 사례는 위의 나머지 generator 문서를 참고하면 돼요.

더 알아보기 (Learn more)

  • Post Selector — 생성 결과를 라벨 셀렉터로 필터링하는 방법.
  • Template — 생성된 파라미터를 Application 템플릿에 렌더링하는 규칙.