argocd login localhost:8080 | 서버 로그인 |
argocd app list | 애플리케이션 목록 |
argocd app get myapp | 앱 상세 정보 |
argocd app sync myapp | 애플리케이션 동기화 |
argocd app diff myapp | 차이점 표시 |
argocd app delete myapp | 애플리케이션 삭제 |
argocd app history myapp | 히스토리 표시 |
argocd app rollback myapp 1 | 버전으로 롤백 |
argocd cluster add my-context | 클러스터 추가 |
argocd cluster list | 클러스터 목록 |
argocd repo add https://github.com/user/repo | 저장소 추가 |
argocd repo list | 저장소 목록 |
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: myapp
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/user/repo
targetRevision: HEAD
path: k8s
destination:
server: https://kubernetes.default.svc
namespace: default
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: myapp
namespace: argocd
spec:
project: default
source:
repoURL: https://charts.helm.sh/stable
chart: nginx
targetRevision: 1.0.0
helm:
values: |
replicaCount: 2
resources:
limits:
cpu: 100m
parameters:
- name: image.tag
value: "latest"
destination:
server: https://kubernetes.default.svc
namespace: default apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: myapps
namespace: argocd
spec:
generators:
- list:
elements:
- cluster: dev
url: https://dev.example.com
- cluster: prod
url: https://prod.example.com
template:
metadata:
name: "myapp-{{cluster}}"
spec:
project: default
source:
repoURL: https://github.com/user/repo
targetRevision: HEAD
path: "envs/{{cluster}}"
destination:
server: "{{url}}
namespace: default apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: myapps
spec:
generators:
- git:
repoURL: https://github.com/user/repo
revision: HEAD
directories:
- path: apps/*
template:
metadata:
name: "{{path.basename}}"
spec:
project: default
source:
repoURL: https://github.com/user/repo
targetRevision: HEAD
path: "{{path}}"
destination:
server: https://kubernetes.default.svc
namespace: "{{path.basename}}" apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: myproject
namespace: argocd
spec:
description: My project
# Source repositories
sourceRepos:
- https://github.com/myorg/*
# Destination clusters/namespaces
destinations:
- namespace: "*"
server: https://kubernetes.default.svc
# Allowed resources
clusterResourceWhitelist:
- group: "*"
kind: "*"
# RBAC
roles:
- name: developer
policies:
- p, proj:myproject:developer, applications, get, myproject/*, allow
- p, proj:myproject:developer, applications, sync, myproject/*, allow kubectl create namespace argocd | 네임스페이스 생성 |
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml | Argo CD 설치 |
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d | 관리자 비밀번호 가져오기 |
kubectl port-forward svc/argocd-server -n argocd 8080:443 | 포트 포워딩 |