4.2. 自定义 Jenkins 镜像流标签
要覆盖默认的升级行为,并控制 Jenkins 镜像的升级方式,您可以设置 Jenkins 部署配置使用的镜像流标签值。
默认升级行为是在 Jenkins 镜像是安装有效负载的一部分时存在的行为。jenkins-rhel.json
镜像流文件中的镜像流标签名称 2
和 ocp-upgrade-redeploy
使用 SHA 特定镜像引用。因此,当这些标签使用新的 SHA 更新时,OpenShift Container Platform 镜像更改控制器会自动从关联的模板重新部署 Jenkins 部署配置,如 jenkins-ephemeral.json
或 jenkins-persistent.json
。
对于新部署,要覆盖该默认值,您可以在 jenkins-ephemeral.json
Jenkins 模板中更改 JENKINS_IMAGE_STREAM_TAG
的值。例如,将 "value": "jenkins:2"
中的 2
替换为以下镜像流标签之一:
-
升级 OpenShift Container Platform 时,OCP
-upgrade-redeploy
(默认值)会更新 Jenkins 镜像。 -
user-maintained-upgrade-redeploy
要求您在升级 OpenShift Container Platform 后运行$ oc import-image jenkins:user-maintained-upgrade-redeploy -n openshift
来手动重新部署 Jenkins。 -
scheduled-upgrade-redeploy
会定期检查给定的<image>:<tag>
组合,以便在镜像更改时进行更改和升级。镜像更改控制器拉取更改的镜像,并重新部署由模板置备的 Jenkins 部署配置。有关此调度导入策略的更多信息,请参阅以下"Additional resources"中的"将标签添加到镜像流"。
要覆盖现有部署的当前升级值,请更改与这些模板参数对应的环境变量值。
先决条件
- 您已在 OpenShift Container Platform 4.15 上运行了 OpenShift Jenkins。
- 您知道部署 OpenShift Jenkins 的命名空间。
流程
设置镜像流标签值,将
<namespace>
替换为部署 OpenShift Jenkins 的命名空间,并将<image_stream_tag>
替换为镜像流标签:Example
$ oc patch dc jenkins -p '{"spec":{"triggers":[{"type":"ImageChange","imageChangeParams":{"automatic":true,"containerNames":["jenkins"],"from":{"kind":"ImageStreamTag","namespace":"<namespace>","name":"jenkins:<image_stream_tag>"}}}]}}'
提示另外,要编辑 Jenkins 部署配置 YAML,请输入
$ oc edit dc/jenkins -n <namespace>
并更新value: 'jenkins:<image_stream_tag>'
行。