helm方式安装argocd-image-updater
概述
Argo CD Image Updater能够检查与您的 Kubernetes 工作负载一起部署的容器镜像的新版本,并使用 Argo CD 自动将其更新到允许的最新版本。
它通过为 Argo CD 应用程序设置适当的参数来实现这一功能,即类似于argocd app set --helm-set image.tag=v1.0.1
使用方法很简单:您只需在 Argo CD 的Application资源中添加一个要更新的镜像列表,以及每个镜像的最大允许新版本的版本约束。
然后,Argo CD Image Updater会定期从 Argo CD 中轮询配置的应用程序,并查询相应的镜像仓库以查找可能的新版本。
如果在镜像仓库找到了镜像的新版本,并且满足版本约束条件,Argo CD Image Updater就会指示 Argo CD 使用新镜像更新应用程序。
特点:
- 更新由 Argo CD 管理且通过 Helm 或 Kustomize 工具生成的应用程序的镜像。
- 根据不同的更新策略更新应用程序的镜像
- semver: 根据给定的镜像约束条件,更新到允许的最高版本。
- latest: 更新到最新的镜像版本。
- alphabetical: 按字母顺序更新到最新的镜像版本。
- digest: 更新到最近推送的可变标签的版本
- 支持多样的镜像仓库
- 通过配置支持私有镜像仓库
- 可以将更改写回 Git
- 支持自定义的、针对每个镜像的拉取凭证
- 可在 Kubernetes 集群中运行,也可从命令行独立使用
- 应用程序的并行更新能力
安装
建议在 Argo CD 运行的同一个 Kubernetes 命名空间集群中运行 Argo CD Image Updater,但这并非强制要求。
实际上,运行 Argo CD Image Updater甚至无需在 Kubernetes 集群内,也无需访问任何 Kubernetes 集群。
本文将采取将Argo CD Image Updater 与 Argo CD 安装在同一个命名空间中。
安装argocd 2.3.3版本
参考博客文章:helm方式安装argocd2.3.3版本
安装argocd image updater
# 请注意,argocd安装的命名空间为argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj-labs/argocd-image-updater/stable/manifests/install.yaml
文件离线链接:install.yaml
kubectl apply -n argocd -f install.yaml
配置
在刚开始使用 Argo CD Image Updater时,更详细的日志记录对于排查问题会有很大帮助。如果省略log.level
设置,将使用默认的 info 级别。
kubectl -n argocd edit cm argocd-image-updater-config
data:
# log.level can be one of trace, debug, info, warn or error
log.level: debug
配置完成后,需要删除 Argo CD Image Updater的 pod 以使其重新启动并使用新的日志级别。
kubectl -n argocd delete pod $(kubectl get pods -n argocd | grep image-updater | awk '{print $1}')
评论区