CICD 배포/CICD 배포

[ ArgoCD ] application 생성

김붕어87 2023. 2. 8. 15:42
반응형
개요
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



 
 
반응형

'CICD 배포 > CICD 배포' 카테고리의 다른 글

[ ArgoCD ] Notification 구성  (0) 2023.02.08
[ ArgoCD ] Deploy  (0) 2023.02.08
[ ArgoCD ] 구성  (0) 2023.02.08
helm, chartmuseum  (0) 2022.05.16
CI - Jenkins  (0) 2022.05.16