仅在配置映射更改 argocd 的情况下,在 K8s 中部署 Container

问题描述

我想在 k8s 中使用 GitOps(ArgoCD) 重新部署一个应用程序,以防只有配置映射发生变化,ArgoCD 将如何理解重启容器,因为我们都知道不重启容器新配置映射不会生效.

场景 - 如果一个容器从 ArgoCD 运行,我必须修改 GitHub 中的 configmap yaml 文件,ArgoCD 将自动理解并同步更新的值,但容器不会重新启动,因为我们没有在部署 Yaml 文件中进行修改,那么如何配置地图将在容器中生效

解决方法

找到了解决上述问题的方法,我们可以在部署配置中包含一个参数(Jenkins Build Number)作为 env 变量,它将在每次从 CI Pipeline 构建时更新,因此在 Git 存储库中仅更改配置的情况下,部署也将推出,因为构建号参数将在运行管道后更改,众所周知,一旦在连接到 ArgoCD 的 Git 存储库中完成任何更改,ArgoCD 将自动触发

,

ArgoCD 本身无法处理此问题,但其他工具可以。使用 Helm,这通常在图表内通过将配置内容散列到 pod 模板中的注释中来处理。 Kustomize 提供了 configmap 和秘密生成器,它们在对象名称中放置一个哈希值并重写 pod 模板以包含它。还有像 Reloader 这样的操作符解决方案,它与 Helm 有类似的技巧,但通过操作符。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...