Kubernetes配置编辑

时间:2018-05-22 05:36:55

标签: kubernetes yaml

是否有任何CLI工具或库允许更新K8S YAML / JSON配置文件中的容器图像(和其他参数)?

例如,我有这个YAML:

apiVersion: apps/v1
kind: Deployment
<...>
spec:
  template:
    spec:
      containers:
        - name: dmp-reports
          image: example.com/my-image:v1
<...>

我想在此文件中自动更新此部署的映像(基本上,这对于CI / CD系统是必需的。)

2 个答案:

答案 0 :(得分:2)

我们在Jenkins X项目中遇到了同样的问题,我们有很多git存储库,当我们更改库或基础docker图像之类的东西时,我们需要更改Calendar now = Calendar.getInstance(); now.set(Calendar.HOUR, 0); now.set(Calendar.MINUTE, 0); now.set(Calendar.SECOND, 0); now.set(Calendar.HOUR_OF_DAY, 0); String date=new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.mss").format(now.getTime()); 等许多版本。

我们使用一个名为UpdateBot的简单CLI工具,可以自动在所有下游存储库上生成Pull请求。我们倾向于将此视为库和基本图像的持续交付;)。例如这里是current Pull Requests that UpdateBot has generated on the Jenkins X organisation repositories

然后我们在发布新的基本映像时,如何更新Dockerfiles / helm图表: https://github.com/jenkins-x/builder-base/blob/master/jx/scripts/release.sh#L28-L29

答案 1 :(得分:0)

您可以在CI / CD管道中使用sed来更新文件并进行部署。在jenkins中sh sed .....

您还可以使用Helm - 创建模板,并在部署版本时指定新的图像名称(等)。