helm repo 등록
$ helm repo add argo https://argoproj.github.io/argo-helm
등록된 repo 확인
$ helm repo list
NAME URL
argo https://argoproj.github.io/argo-helm
values.yaml 파일 수정을 위한 clone
$ git clone https://github.com/argoproj/argo-helm
values.yaml 파일 수정
$ vi ./argo-helm/charts/argo-cd
helm install
$ helm install argocd argo/argo-cd -f values.yaml -n argo
ingress 생성 (AWS Load Balancer Controller 설치 방법 참고)
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: argo
name: ingress-argocd
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/subnets: <SBN1_ID>,<SBN2_ID>
alb.ingress.kubernetes.io/backend-protocol: HTTPS
# SSL Settings
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/ssl-redirect: '443'
alb.ingress.kubernetes.io/certificate-arn: <ACM_ARN>
alb.ingress.kubernetes.io/manage-backend-security-group-rules: "true"
alb.ingress.kubernetes.io/security-groups: <SG_ID>
alb.ingress.kubernetes.io/load-balancer-name: <ALB_NAME>
alb.ingress.kubernetes.io/group.name: <GROUP_NAME>
spec:
rules:
- host: argocd.mydomain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: argocd-server
port:
number: 80
리소스 생성 확인
$ kubectl get all -n argo
NAME READY STATUS RESTARTS AGE
pod/argocd-application-controller-0 1/1 Running 0 11m
pod/argocd-applicationset-controller-bbc9cd874-hv5kn 1/1 Running 0 11m
pod/argocd-notifications-controller-cd685d646-ctr5m 1/1 Running 0 11m
pod/argocd-redis-746bfcfcd7-wjjwt 1/1 Running 0 11m
pod/argocd-repo-server-58ff56f45-gdxpp 1/1 Running 0 11m
pod/argocd-server-5549fd6b76-htwlr 1/1 Running 0 11m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/argocd-applicationset-controller ClusterIP 172.20.63.39 <none> 7000/TCP 11m
service/argocd-redis ClusterIP 172.20.10.26 <none> 6379/TCP 11m
service/argocd-repo-server ClusterIP 172.20.184.124 <none> 8081/TCP 11m
service/argocd-server ClusterIP 172.20.242.65 <none> 80/TCP,443/TCP 11m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/argocd-applicationset-controller 1/1 1 1 11m
deployment.apps/argocd-notifications-controller 1/1 1 1 11m
deployment.apps/argocd-redis 1/1 1 1 11m
deployment.apps/argocd-repo-server 1/1 1 1 11m
deployment.apps/argocd-server 1/1 1 1 11m
NAME DESIRED CURRENT READY AGE
replicaset.apps/argocd-applicationset-controller-bbc9cd874 1 1 1 11m
replicaset.apps/argocd-notifications-controller-cd685d646 1 1 1 11m
replicaset.apps/argocd-redis-746bfcfcd7 1 1 1 11m
replicaset.apps/argocd-repo-server-58ff56f45 1 1 1 11m
replicaset.apps/argocd-server-5549fd6b76 1 1 1 11m
NAME READY AGE
statefulset.apps/argocd-application-controller 1/1 11m
admin 비밀번호 확인
$ kubectl -n argo get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
개인적으로 공부하며 작성한 글로, 내용에 오류가 있을 수 있습니다.