使用 Jenkins 将图像标签添加到 kubernetes 清单
Add image tag to kubernetes manifest with Jenkins
目前,我选择要推送到注册表的图像,并且在将文件推送到 Git 存储库之前,我使用“复杂”方法将图像标签设置为清单。
这是我的代码
stage("Push to Repo "){
steps {
script {
def filename = 'Path/to/file/deploy.yaml'
def data = readYaml file: filename
data.spec[0].template.spec.containers[0].image = "XXXXXXXXXXXXXXXXXXXXX:${PROJECT_VERSION}"
sh "rm $filename"
writeYaml file: filename, data: data
sh "sed -ie 's/- apiVersion/ apiVersion/g' Path/to/file/deploy.yaml "
sh "sed -i '/^ - c.*/a ---' Path/to/file/deploy.yaml "
sh ''' cd Path/to/file/
git add .
git commit -m "[0000] [update] update manifest to version: ${PROJECT_VERSION} "
git push -u origin HEAD:branche_name '''
}}}
我正在寻找另一种方法来直接解析图片标签以显示清单。
是否有 Jenkins 插件可以做到这一点?
我用的是YQ工具,是用来编辑yaml文件的镜像。
示例(仅 docker run
):
docker run --rm --user="root"
-e TAG=dev-123456
-v "${PWD}":/workspace
-w /workspace mikefarah/yq
eval '.spec.spec.containers.image.tag = strenv(TAG)'
-i values.yaml
这将替换部署中当前标签的标签 dev-123456。
我写多行是为了方便看,喜欢的可以写一行
Link 详情:
https://hub.docker.com/r/mikefarah/yq
目前,我选择要推送到注册表的图像,并且在将文件推送到 Git 存储库之前,我使用“复杂”方法将图像标签设置为清单。
这是我的代码
stage("Push to Repo "){
steps {
script {
def filename = 'Path/to/file/deploy.yaml'
def data = readYaml file: filename
data.spec[0].template.spec.containers[0].image = "XXXXXXXXXXXXXXXXXXXXX:${PROJECT_VERSION}"
sh "rm $filename"
writeYaml file: filename, data: data
sh "sed -ie 's/- apiVersion/ apiVersion/g' Path/to/file/deploy.yaml "
sh "sed -i '/^ - c.*/a ---' Path/to/file/deploy.yaml "
sh ''' cd Path/to/file/
git add .
git commit -m "[0000] [update] update manifest to version: ${PROJECT_VERSION} "
git push -u origin HEAD:branche_name '''
}}}
我正在寻找另一种方法来直接解析图片标签以显示清单。
是否有 Jenkins 插件可以做到这一点?
我用的是YQ工具,是用来编辑yaml文件的镜像。
示例(仅 docker run
):
docker run --rm --user="root"
-e TAG=dev-123456
-v "${PWD}":/workspace
-w /workspace mikefarah/yq
eval '.spec.spec.containers.image.tag = strenv(TAG)'
-i values.yaml
这将替换部署中当前标签的标签 dev-123456。
我写多行是为了方便看,喜欢的可以写一行
Link 详情:
https://hub.docker.com/r/mikefarah/yq