Argo CD 第一個 Application 示範:建立 ingress

microk8s 安裝 Argo CD 示範 這篇文章中有使用到 ingress 來將 Argo CD 的流量導到外部,我們就可以使用 argo-cd.local 這個網址(需要自定 hosts) 來存取 Argo CD 的網頁。

但是都使用 Argo CD 來自動部署了,那 Argo CD 本身的 ingress 是不是也可以使用 Argo CD 自己來部署呢?使用上一篇文章中的 port-forward 指令暫時的暴露 port 讓我們可以暫時存取網頁後就可以開始來設定了。

首先要先在 GitHub 上面建立一個新的 repository ,裡面有兩個檔案,檔案內容如下:

ingress.yaml ,平時在使用 k8s 時就會使用 ingress 來將內部服務暴露出去,這是上一篇文章中的範例,這裡綁定的網域是 argo-cd.local ,如有需要請自行替換:
    
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: argocd-server-ingress
  namespace: argocd
  annotations:
    nginx.io/tls-acme: "true"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
spec:
  ingressClassName: nginx
  rules:
    - host: argo-cd.local
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: argocd-server
                port:
                  name: https
  tls:
    - hosts:
      - argo-cd.local
      secretName: argocd-secret
    

kustomization.yaml :用來定義在 Kubernetes(k8s)中有哪些資源檔案清單,這裡非常簡單,就只有一個剛剛定義的 ingress.yaml 檔案。
    
resources:
  - ingress.yaml
    

開啟 Argo CD 網頁,點選「NEW APP」,點選「EDIT AS YAML」,使用 YAML 格是來定義 Appication ,唯一要修改的就是將 repoURL 替換為自己在 GitHub 上面的 repository 即可
    
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: argocd-ingress
spec:
  destination:
    name: ''
    namespace: argocd
    server: https://kubernetes.default.svc
  source:
    path: .
    repoURL: https://github.com/ruyut/argocd-ingress-deploy.git
    targetRevision: master
  sources: []
  project: default
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    

看到部署成功後就可以使用自訂的連結存取 Argo CD 網頁了。

留言