Keycloak을 활용하여 ArgoCD로그인을 손쉽게 하고 관리가 편하게 하기 위함
- 참고 URL
https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/keycloak/#troubleshoot
Keycloak ArgoCD 연동
- Keycloak에서 새 클라이언트 만들기

- 클라이언트 ID 설정

- 클라이언트 인증 처리 설정

- Root URL : Argocd URL
- Home URL : Argocd 기본 URL
- Vaild redirect URIs : 로그인 후 토큰을 전달해줄 수 있는 유효한(허용된) URL

- ArgoCD OIDC 구성

- Client Secret 값을 ArgoCD 적용
kubectl -n argocd patch secret argocd-secret --patch='{"stringData": { "oidc.keycloak.clientSecret": "8YUOoqjhq3tO1p7Yoc7zThh9wHkgFKmW" }}'

- Config 설정하기
- clientID : Keycloak에서 구성한 클라이언트 ID로 설정됩니다.
- clientSecret : argocd-secret Secret 에서 생성한 올바른 키를 가리킵니다.
- requestedScopes 에는 기본 범위에 추가하지 않은 경우 그룹 클레임이 포함됩니다 .
kubectl edit configmap argocd-cm -n argocd
data:
oidc.config: |
name: Keycloak
issuer: http://192.168.0.104/realms/master ##Keycloak 정보
clientID: argocd ##Keycloak Cilent
clientSecret: $oidc.keycloak.clientSecret
requestedScopes: ["openid", "profile", "email", "groups"]

- Keycloak 그룹 클레임 구성
- Client Scops -> Create client Scope






- 계정 생성


- 그룹 생성



- Group에 사용자 추가
- 적용할 그룹 클릭(ArgoCDAdmins)

- Member 추가(Add member)

- Member 선택

- 등록 완료

- ArgoCD에 Keycloak Group 권한 부여
kubectl edit configmap argocd-rbac-cm -n argocd
data:
policy.csv: |
g:argocd, role:admin
- ArgoCD 재배포하여 적용하기
kubectl rollout restart deployment argocd-server -n argocd
- 로그인

