部署argocd

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

配置argocd

brew install argocd
argocd admin initial-password -n argocd

把serviceargocd-server改成lb类型,通过该service访问

demo仓库

lwabish/gitops: e2e: git-tencentcloud-argocd-kubernetes (github.com)

在通过argocd将代码部署到集群前,必须解决镜像构建和推送的问题

准备helm chart

核心:将镜像的tag作为参数,每次构建镜像后修改之

镜像准备

  1. 通过github action,设置每次push,构建docker镜像,推送到腾讯云镜像仓库。
  2. 同时将镜像id持久化到chart中,使chart可以直接部署,无需镜像参数

这样就实现仓库里每个commit ID都对应一个镜像,一些非应用代码文件的修改例外,这些修改不需要构建镜像

argo sync

进入argo页面,创建项目,同步上面的仓库。

path指定helm chart的目录

demo阶段禁用了自动sync(因为我们排除了一些文件的镜像构建,如果一个commit没有触发镜像构建,那么sync后image会拉不到)

参考

Getting Started - Argo CD - Declarative GitOps CD for Kubernetes (argo-cd.readthedocs.io)

文章目录