$ oc import-image jenkins-agent-nodejs -n openshift
Red Hat OpenShift Service on AWS 4.11 将 OpenShift Jenkins 和 OpenShift Agent Base 镜像迁移到registry.redhat.io
上的ocp-tools-4
存储库。它还从其有效负载中删除了 OpenShift Jenkins Maven 和 NodeJS Agent 镜像。
Red Hat OpenShift Service on AWS 4.11 将 OpenShift Jenkins 和 OpenShift Agent Base 镜像迁移到registry.redhat.io
上的ocp-tools-4
存储库,以便 Red Hat 可以在 Red Hat OpenShift Service on AWS 生命周期之外生成和更新这些镜像。以前,这些镜像位于 Red Hat OpenShift Service on AWS 安装有效负载和registry.redhat.io
上的openshift4
存储库中。
Red Hat OpenShift Service on AWS 4.10 已弃用 OpenShift Jenkins Maven 和 NodeJS Agent 镜像。Red Hat OpenShift Service on AWS 4.11 从其有效负载中删除了这些镜像。Red Hat 不再生成这些镜像,并且无法从registry.redhat.io
上的ocp-tools-4
存储库中获取它们。Red Hat 按照Red Hat OpenShift Service on AWS 生命周期策略维护这些镜像的 4.10 和早期版本,以修复任何重大错误或安全 CVE。
这些更改支持 Red Hat OpenShift Service on AWS 4.10 建议使用Jenkins Kubernetes 插件中的多个容器 Pod 模板。
Red Hat OpenShift Service on AWS 4.11 对特定 OpenShift Jenkins 镜像的位置和可用性进行了重大更改。此外,您还可以配置何时以及如何更新这些镜像。
集群示例操作符管理用于操作 OpenShift Jenkins 镜像的ImageStream
和Template
对象。
默认情况下,Jenkins Pod 模板中的 Jenkins DeploymentConfig
对象会在 Jenkins 镜像更改时触发重新部署。默认情况下,此镜像由样本操作符有效负载中openshift
命名空间中 Jenkins 镜像流的jenkins:2
镜像流标签引用。
如果您从 Red Hat OpenShift Service on AWS 4.10 和更早版本升级到 4.11,则已弃用的maven
和nodejs
Pod 模板仍然存在于默认镜像配置中。
如果您从 Red Hat OpenShift Service on AWS 4.10 和更早版本升级到 4.11,则jenkins-agent-maven
和jenkins-agent-nodejs
镜像流仍然存在于您的集群中。要维护这些镜像流,请参阅以下部分:“openshift
命名空间中的jenkins-agent-maven
和jenkins-agent-nodejs
镜像流会发生什么?”
registry.redhat.io
注册表中ocp-tools-4
存储库中的每个新镜像都支持多个版本的 Red Hat OpenShift Service on AWS。当 Red Hat 更新这些新镜像之一时,它会同时对所有版本可用。当 Red Hat 响应安全公告更新镜像时,此可用性非常理想。最初,此更改适用于 Red Hat OpenShift Service on AWS 4.11 及更高版本。计划此更改最终将适用于 Red Hat OpenShift Service on AWS 4.9 及更高版本。
以前,每个 Jenkins 镜像仅支持一个版本的 Red Hat OpenShift Service on AWS,Red Hat 可能会随着时间的推移按顺序更新这些镜像。
通过从有效负载内镜像流迁移到引用非有效负载镜像的镜像流,Red Hat OpenShift Service on AWS 可以定义其他镜像流标签。Red Hat 创建了一系列新的镜像流标签,以配合 Red Hat OpenShift Service on AWS 4.10 和更早版本中存在的"value": "jenkins:2"
和"value": "image-registry.openshift-image-registry.svc:5000/openshift/jenkins-agent-base-rhel8:latest"
镜像流标签。这些新的镜像流标签解决了改进 Jenkins 相关镜像流维护方式的一些请求。
关于新的镜像流标签
ocp-upgrade-redeploy
要在升级 Red Hat OpenShift Service on AWS 时更新您的 Jenkins 镜像,请在您的 Jenkins 部署配置中使用此镜像流标签。此镜像流标签对应于jenkins
镜像流的现有2
镜像流标签和jenkins-agent-base-rhel8
镜像流的latest
镜像流标签。它采用仅针对一个 SHA 或镜像摘要的特定镜像标签。当ocp-tools-4
镜像发生更改时(例如,对于 Jenkins 安全公告),Red Hat 工程团队会更新集群示例操作符有效负载。
user-maintained-upgrade-redeploy
要在升级 Red Hat OpenShift Service on AWS 后手动重新部署 Jenkins,请在您的 Jenkins 部署配置中使用此镜像流标签。此镜像流标签使用可用的最不具体的镜像版本指示符。重新部署 Jenkins 时,运行以下命令:$ oc import-image jenkins:user-maintained-upgrade-redeploy -n openshift
。发出此命令时,Red Hat OpenShift Service on AWS ImageStream
控制器将访问registry.redhat.io
镜像注册表,并将任何更新的镜像存储在 OpenShift 镜像注册表中该 Jenkins ImageStreamTag
对象的槽中。否则,如果您不运行此命令,则您的 Jenkins 部署配置不会触发重新部署。
scheduled-upgrade-redeploy
要自动重新部署 Jenkins 镜像的最新版本,请在 Jenkins 部署配置中使用此镜像流标签。此镜像流标签使用 Red Hat OpenShift Service on AWS 镜像流控制器提供的定期导入镜像流标签功能,该功能会检查后端镜像的变化。如果镜像发生变化(例如,由于最近的 Jenkins 安全公告),Red Hat OpenShift Service on AWS 将触发您的 Jenkins 部署配置的重新部署。请参阅以下“附加资源”中的“配置镜像流标签的定期导入”。
openshift
命名空间中的jenkins-agent-maven
和jenkins-agent-nodejs
镜像流会发生什么情况?Red Hat OpenShift Service on AWS 的 OpenShift Jenkins Maven 和 NodeJS Agent 镜像在 4.10 版本中已弃用,并在 4.11 版本中从 Red Hat OpenShift Service on AWS 安装包中移除。它们在ocp-tools-4
存储库中没有定义替代方案。但是,您可以使用以下“附加资源”部分中提到的“Jenkins 代理”主题中描述的 sidecar 模式来解决此问题。
但是,集群示例操作符不会删除先前版本创建的jenkins-agent-maven
和jenkins-agent-nodejs
镜像流,这些镜像流指向registry.redhat.io
上相应 Red Hat OpenShift Service on AWS 安装包镜像的标签。因此,您可以通过运行以下命令来拉取这些镜像的更新
$ oc import-image jenkins-agent-nodejs -n openshift
$ oc import-image jenkins-agent-maven -n openshift
要覆盖默认升级行为并控制 Jenkins 镜像的升级方式,您可以设置 Jenkins 部署配置使用的镜像流标签值。
默认升级行为是在 Jenkins 镜像作为安装包一部分时存在的行为。jenkins-rhel.json
镜像流文件中的镜像流标签名称2
和ocp-upgrade-redeploy
使用 SHA 特定的镜像引用。因此,当这些标签使用新的 SHA 更新时,Red Hat OpenShift Service on AWS 镜像更改控制器会自动从关联的模板(例如jenkins-ephemeral.json
或jenkins-persistent.json
)重新部署 Jenkins 部署配置。
对于新部署,要覆盖该默认值,请更改jenkins-ephemeral.json
Jenkins 模板中JENKINS_IMAGE_STREAM_TAG
的值。例如,将"value": "jenkins:2"
中的2
替换为以下镜像流标签之一
ocp-upgrade-redeploy
,默认值,在您升级 Red Hat OpenShift Service on AWS 时更新您的 Jenkins 镜像。
user-maintained-upgrade-redeploy
要求您在升级 Red Hat OpenShift Service on AWS 后,手动运行$ oc import-image jenkins:user-maintained-upgrade-redeploy -n openshift
重新部署 Jenkins。
scheduled-upgrade-redeploy
定期检查给定的<image>:<tag>
组合是否有更改,并在更改时升级镜像。镜像更改控制器会拉取更改后的镜像并重新部署模板提供的 Jenkins 部署配置。有关此计划导入策略的更多信息,请参阅以下“附加资源”中的“向镜像流添加标签”。
要覆盖现有部署的当前升级值,请更改与这些模板参数对应的环境变量的值。 |
您正在 Red Hat OpenShift Service on AWS 上运行 OpenShift Jenkins。
您知道部署 OpenShift Jenkins 的命名空间。
设置镜像流标签值,将<namespace>
替换为部署 OpenShift Jenkins 的命名空间,将<image_stream_tag>
替换为镜像流标签
$ 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,请输入 |