멀티 클러스터를 관리하는 ArgoCD를 마이그레이션하는 방법을 정리
2. AS-IS kind클러스터와 ArgoCD 생성
AS-IS kind클러스터와 A,B,C kind클러스터 3대가 생성
AS-IS kind 클러스터에는 ArgoCD helm chart가 릴리즈 되어 있음
1. cd terraform
2. terrafprm apply
3. ArgoCD에 A,B,C kind 클러스터 등록
2번과정에서 terraform으로 kind cluster가 생성되어야 있어야 합니다.
1. cd argocd_clusters
2. pip install chevron
3. python create_kubernetes_secrets
# helm values 생성하는 스크립트(전제조건, A,B,C kind kubeconfig가 생성되어 있어야 함)
4. kubernetes secrest를 apply
KUBECONFIG=../terraform/as-is-config kubectl apply -f kind-cluster-a-secrets.yaml
KUBECONFIG=../terraform/as-is-config kubectl apply -f kind-cluster-b-secrets.yaml
KUBECONFIG=../terraform/as-is-config kubectl apply -f kind-cluster-c-secrets.yaml
1. cd argocd_projects
2. kubernetes apply
KUBECONFIG=../terraform/as-is-config kubectl apply -f ./cluster_A/
KUBECONFIG=../terraform/as-is-config kubectl apply -f ./cluster_B/
KUBECONFIG=../terraform/as-is-config kubectl apply -f ./cluster_C/
1. cd argocd_applications
2. kubernetes apply
KUBECONFIG=../terraform/as-is-config kubectl apply -f ./cluster_A/
KUBECONFIG=../terraform/as-is-config kubectl apply -f ./cluster_B/
KUBECONFIG=../terraform/as-is-config kubectl apply -f ./cluster_C/
AS-IS와 같은 설정으로 TO-BE ArgoCD 생성
AS-IS ArgoCD Cluster를 그대로 TO-BE ArgoCD에 생성
AS-IS ArgoCD Project를 그대로 TO-BE ArgoCD에 생성
AS-IS ArgoCD Application을 그대로 TO-BE ArgoCD에 생성
AS-IS ArgoCD Default project를 제외하고 ArgoCD application 추출
KUBECONFIG=./as-is-config kubectl get applications -n argocd -o yaml | yq e ' del(.items[].metadata.resourceVersion, .items[].metadata.uid, .items[].metadata.creationTimestamp, .items[].metadata.annotations, .items[].metadata.generation, .items[].status) | .items |= map(select(.spec.project != "default"))' > as-is-application.yaml
KUBECONFIG=./to-be-config kubectl apply -f as-is-application.yaml
(옵션2) ArgoCD export, import기능 사용
argocd admin export > export.yaml
argocd admin import ...