개요
ArgoCD은 application 단위로 배포가 가능합니다.
ArgoCD 웹페이지에서 application이 지원하지 않는 옵션은 ArgoCD CLI 명령어를 통해서 설정가능합니다.
ArgoCD 웹페이지에서 application를 생성 및 수정하려면 마우스 클릭으로 해야하지만
ArgoCD CLI을 이용하면 간단하게 수정 및 생성할 수 있습니다.
ex) ReleaseName
ArgoCD Login
argocd login argocd.xxxx "ArgoCD 주소"
ID : admin
PW : 1Password 참조
ArgoCD CLI Application 생성
- CLI 명령어로 Application 생성
# GitHub Repository
argocd app create xxxx-airflow --repo git@github.com:xxxx/xxx.git --path airflow --dest-namespace infra --dest-server https://xxxxx.gr7.ap-southeast-1.eks.amazonaws.com --release-name airflow
# HELM Repository
argocd app create xxx-keycloak-test --repo http://xxxxxxx:9090 --helm-chart keycloak --revision 15.1.0 --dest-namespace infra --dest-server https://xxxxxx.yl4.ap-southeast-1.eks.amazonaws.com --release-name keycloak
- yaml 파일로 application 생성
- application.yaml 생성
vi keycloak-app.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: test-dw1 # application Name
namespace: argocd # Argocd namespace 지정
spec:
project: default
source:
chart: keycloak-dev # Chart Name
repoURL: http://xxxx:9090 # ChartMuseum Repository URL
targetRevision: 16.1.1 # Chart Version
helm:
releaseName: keyclaok # ReleaseName
destination:
name: "xxx-dev-eks" # 배포할 EKS
namespace: infra
ArgoCD app Set 설정
argoCD Application 생성 후 명령어로 수정(edit) 방법
- application HELM Chart version 변경
argocd app set test-dw1 --revision 15.1.0
argocd app set test-dw1 --revision 16.1.1
[ chart version 확인 ]
argocd app get test-dw1
argocd URL
Jenkins JOB - ArgoCD CLI
node{
stage('Check') {
echo "${chart_name}"
echo "${ENV}"
echo "${helm_version}"
sh "cat ${helm_version}"
sh "argocd login argocd.xxx.com --grpc-web --username admin --password xxxx"
}
stage('HELM Version Change') {
sh "argocd app set ${ENV}-${chart_name} --revision `cat ${helm_version}`"
sh "argocd app get ${ENV}-${chart_name} --hard-refresh"
}
stage('ArgoCD SYNC') {
sh "argocd app sync ${ENV}-${chart_name}"
}
stage('Result') {
//sh "argocd app get ${chart_name}"
sh "argocd app get ${ENV}-${chart_name} --hard-refresh"
}
}
argoCD Helm 옵션 정보
Helm - Argo CD - Declarative GitOps CD for Kubernetes
Argocd app set - Argo CD - Declarative GitOps CD for Kubernetes