System Architecture Design
ArgoCD 설치

ArgoCD

설치

microk8s enable argocd

Repository 추가

아래같이 처리하는 방법은 8시간 일시적인 방법입니다. 주기적으로 업데이트 처리를 해줘야합니다.

argocd repo add xxxx.dkr.ecr.ap-northeast-2.amazonaws.com --type helm --name helm-ecr --enable-oci --username AWS --password $(aws ecr get-login-password --region ap-northeast-2)

argocd-ecr-updater를 설치 준비 & 인증서 처리 업데이트가 필요합니다.

microk8s helm repo add argocd-ecr-updater https://karlderkaefer.github.io/argocd-ecr-updater
microk8s helm search repo argocd-ecr-updater
microk8s helm upgrade --install argocd-ecr-updater -n argocd argocd-ecr-updater/argocd-ecr-updater
 
 
# ECR Credential secret등록
kubectl create secret generic aws-credentials \
  --from-literal=AWS_ACCESS_KEY_ID=your_access_key_id \
  --from-literal=AWS_SECRET_ACCESS_KEY=your_secret_access_key \
  -n argocd
 
 
# 위에서 설최한 argocd-ecr-updater 들어가서 env 환경설정을 추가한다.
kubectl edit deployment argocd-ecr-updater  -n argocd
 
 
# 아래와 같이 spec아래 부분에 AWS ECR권한이 있는 accessKey정보를 등록처리한다.
spec:
  containers:
  - env:
    - name: AWS_ACCESS_KEY_ID
      valueFrom:
        secretKeyRef:
          key: AWS_ACCESS_KEY_ID
          name: aws-credentials
    - name: AWS_SECRET_ACCESS_KEY
      valueFrom:
        secretKeyRef:
          key: AWS_SECRET_ACCESS_KEY
          name: aws-credentials

아래 파일을 ecr_update_secret.yaml저장후 아래와 같이 실행해주세요.

k apply -f ecr_update_secret.yaml -n argocd
apiVersion: v1
kind: Secret
stringData:
  enableOCI: "true"
  name: helm-ecr # can be anything
  type: helm
  url: 012634413971.dkr.ecr.ap-northeast-2.amazonaws.com
  username: AWS
  password: ""
metadata:
  labels:
    argocd-ecr-updater: enabled
    argocd.argoproj.io/secret-type: repository
  name: helm-ecr

ArgoCD 로그인 & Cluster추가

# argocd server를 port-forward 핸다.
k port-forward -n argocd svc/argo-cd-argocd-server 9999:80
# 다른탭에서 host에서 해당 서비스 접근해서 로그인한댜.
argocd login localhost:9999
# 클러스터 추가 적용
argocd cluster add microk8s --kubeconfig ~/.kube/config
> FATA[0000] Context microk8s does not exist in kubeconfig
# 아래와 같이 kubernetes config 설정후 적용해준다.
microk8s config > ~/.kube/config
argocd cluster add microk8s --kubeconfig ~/.kube/config

Update Token