1. Helm Repo 추가 및 업데이트

helm repo add argo <https://argoproj.github.io/argo-helm>
helm repo update

<aside> 💡

중간에 누군가 설치 시도를 했는지 crd가 남아있어서 제거 후, 설치했다.

kubectl delete crd applicationsets.argoproj.io

</aside>

2. argocd-ingress.yaml 파일 작성

Ingress를 통해 외부 경로에서 보여주기 위해

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: argocd-ingress
  namespace: observability
  annotations:
    networking.knative.dev/ingress-provider: kourier
spec:
  ingressClassName: kourier.ingress.networking.knative.dev
  rules:
    - host: argocd.haifu.cloud
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: argocd-server
                port:
                  number: 443

kubectl apply -f argocd-ingress.yaml

3. ArgoCD Helm 설치 (ops 노드 전용)

helm install argocd argo/argo-cd \
  --namespace observability \
  --set server.nodeSelector.group=ops \
  --set controller.nodeSelector.group=ops \
  --set repoServer.nodeSelector.group=ops \
  --set applicationSet.nodeSelector.group=ops

4. 설치 확인

kubectl get pods -n observability
kubectl get svc -n observability

5. DNS 설정