我有一个用于多个管道的共享 yaml 文件,我想参数化 yaml 文件中其中一个图像的标签。
最简单的方法是什么?目前我正在维护多个KubernetesPods.yaml
,例如KubernetesPods-1.5.0.yaml
并将参数插入名称(yamlFile "KubernetesPods-${params.AGENT_POD_SPEC}.yaml"
),但这不能很好地扩展。
我可以在不必在每个管道中写出 yaml 的情况下将参数放入 yaml 吗?
示例管道:
pipeline {
agent {
kubernetes {
yamlFile 'KubernetesPods.yaml'
}
}
parameters {
choice(
name: 'AGENT_POD_SPEC',
choices: ['1.5.0','1.3.0','1.2.0','1.4.0'],
description: 'Agent pod configuration'
)
}
}
KubernetesPods.yaml 示例:
kind: Pod
spec:
containers:
- name: example-image
image: example/image:<IMAGE-TAG-I-WANT-TO-PARAMETERIZE>
imagePullPolicy: Always
command:
- cat