티스토리 뷰
테스트 구조
아래 테스트는, dev, mgmt, prd cluster를 만들고, 해당 cluster에 App of Apps Pattern을 테스트 해본다.
ApplicationSet
ApplicationSet을 이용하면 여러 Application을 하나의 App에서 관리할 수 있다.
(실제 Kubernetes에 연동돼서 동작하는 것이 아닌, ArgoCD의 App을 관리하기 위한 App으로 생각하면 된다.)
Application List Generator
Application List Generator는 내가 지정한 값들을 list형태로 나열해서 그냥 Application을 만드는 역할을 한다.
그래서 아래처럼 적용을 하면, dev와 k8s에 app이 생긴 것을 확인할 수 있다.
(정리하면, Application Set은 App들을 동적으로 배포하기 위한 템플릿 엔진 정도로 생각하면 된다.)
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
...
spec:
...
generators:
- list:
elements:
- cluster: dev-k8s
url: https://$DEVK8SIP:6443
- cluster: prd-k8s
url: https://$PRDK8SIP:6443
...

실제로, ArgoCD에는 Git에서 target한 곳에 manfiest 들을 배포한 것을 확인할 수 있다.


Application Cluster Generator
List나, Cluster나 딱히 특별한 건 없다. 전체 list를 가지고하냐, Cluster를 가지고 하냐라는 차이라서
실제로 아래처럼 구성해서 Cluster전체에 배포할 수 있는 것이다.
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
...
generators:
- clusters: {}
...
그럼 아까와 마찬가지로 배포가 잘 된다.

그럼 여기사 달라지는 것은 Git에 있는 Dir구조가 달라지게 되는데,
List Generator에서는 Cluster의 이름을 Dir명으로 사용하여 이용한다.

반면 Cluster Generator에서는 해당 값을 인자로 받기 때문에 Git에서 관리할 필요가 없다.

이 외에도 다양한 Generator가 존재하며, 운영 환경에 맞춰 원하는 형태로 활용하면 되는 듯 하다
OpenLDAP + KeyCloak + Argo CD + Jenkins
아래 실습은 LDAP에 KeyCloak을 연동해서 LDAP에서 User관리를 하고, KeyCloak에서 인증/인가를 수행한다.
+ Argo CD와 Jenkins는 SSO를 지원해주는 KeyClak을 통해 접속한다.
OpenLDAP에서는 KeyClak과 Federation할 수 있으며, Federation이 완료되면 아래 처럼 KEYCLOAK에 있는 User 정보를 가져올 수 있다.


ArgoCD와 Jenkins를 KeyCloak에서 확인해보면, KeyClak에서 세션이 유지되어있는 것도 확인할 수 있다.

LDAP에서 Group을 설정하면 알아서 KeyCloak에 적용될 줄 알았지만, 실제로는 KeyCloak에서 Maaping해줘야한다.
Mapping설정해주고 Sync를 하면 Group 이 들어온 것을 확인할 수 있따.


아래처럼 Client Scope에 추가해주면, Group이 ArgoCD를 사용할 수 있게 해준다.
Keycloak에서는 ArgoCD에 ClientScope를 설정해주고, ArgoCD에서는 requestedScopes에 Group을 같이 받는다.


그래서 auth에서 groups를 같이 보내는 것을 확인할 수 있다.

'스터디 > CICD' 카테고리의 다른 글
| 8주차 - Vault Deep Dive (0) | 2025.12.13 |
|---|---|
| 7주차 - HashiCorp Vault (0) | 2025.11.29 |
| 5주차 - Argo CD 2/3 (0) | 2025.11.14 |
| 4주차 - Argo CD 1/3 (1) | 2025.11.08 |
| 3주차 - Jenkins + ArgoCD (0) | 2025.11.02 |
