第4章 OpenShift Jenkins イメージに対する重要な変更
OpenShift Container Platform 4.11 は、OpenShift Jenkins および OpenShift Agent Base イメージを registry.redhat.io
の ocp-tools-4
リポジトリーに移動します。また、ペイロードから OpenShift Jenkins Maven および NodeJS Agent イメージを削除します。
-
OpenShift Container Platform 4.11 は、Red Hat が OpenShift Container Platform ライフサイクル外でイメージを生成および更新できるように、OpenShift Jenkins および OpenShift Agent Base イメージを
registry.redhat.io
のocp-tools-4
リポジトリーに移動します。以前のバージョンでは、これらのイメージは OpenShift Container Platform インストールペイロードに使用され、openshift4
リポジトリーはregistry.redhat.io
にありました。 -
OpenShift Container Platform 4.10 は、OpenShift Jenkins Maven および NodeJS Agent イメージを非推奨にしました。OpenShift Container Platform 4.11 は、これらのイメージをペイロードから削除します。Red Hat はこれらのイメージを生成しなくなり、
registry.redhat.io
のocp-tools-4
リポジトリーから入手できなくなりました。Red Hat は、OpenShift Container Platform ライフサイクルポリシー に従って、重要なバグ修正またはセキュリティー CVE のためにこれらのイメージの 4.10 以前のバージョンを維持します。
これらの変更は、Jenkins Kubernetes Plug-in で複数のコンテナー Pod テンプレート を使用するという OpenShift Container Platform 4.10 の推奨事項をサポートします。
4.1. OpenShift Jenkins イメージの再配置
OpenShift Container Platform 4.11 では、特定の OpenShift Jenkins イメージの場所と可用性が大幅に変更されています。さらに、これらのイメージをいつ、どのように更新するかを設定できます。
OpenShift Jenkins イメージの変わらない点
-
Cluster Samples Operator は、OpenShift Jenkins イメージを操作するための
ImageStream
およびTemplate
オブジェクトを管理します。 -
デフォルトでは、Jenkins Pod テンプレートの Jenkins
DeploymentConfig
オブジェクトは、Jenkins イメージが変更になると、再デプロイをトリガーします。デフォルトでは、このイメージは、Samples Operator ペイロードのImageStream
YAML ファイルのopenshift
namespace にある Jenkins イメージストリームのjenkins:2
イメージストリームタグによって参照されます。 -
OpenShift Container Platform 4.10 以前から 4.11 にアップグレードする場合、非推奨の
maven
およびnodejs
Pod テンプレートはデフォルトのイメージ設定のままです。 -
OpenShift Container Platform 4.10 以前から 4.11 にアップグレードする場合、
jenkins-agent-maven
およびjenkins-agent-nodejs
イメージストリームは引き続きクラスターに存在します。これらのイメージストリームを維持するには、次のセクション「openshift
namespace のjenkins-agent-maven
およびjenkins-agent-nodejs
イメージストリームはどうなりますか?」を参照してください。
OpenShift Jenkins イメージのサポートマトリックスの変更点は何ですか?
registry.redhat.io
レジストリーの ocp-tools-4
リポジトリーにある新しい各イメージは、OpenShift Container Platform の複数のバージョンをサポートします。Red Hat がこれらの新しいイメージの 1 つを更新すると、すべてのバージョンで同時に利用できるようになります。この可用性は、セキュリティーアドバイザリーに応じて Red Hat がイメージを更新する場合に理想的です。最初は、この変更は OpenShift Container Platform 4.11 以降に適用されます。この変更は、最終的に OpenShift Container Platform 4.9 以降に適用される予定です。
以前は、各 Jenkins イメージは OpenShift Container Platform の 1 つのバージョンのみをサポートしており、Red Hat はこれらのイメージを時間の経過とともに順次更新する可能性がありました。
OpenShift Jenkins および Jenkins Agent Base ImageStream および ImageStreamTag オブジェクトにはどのような追加機能がありますか?
ペイロード内のイメージストリームから非ペイロードイメージを参照するイメージストリームに移動することで、OpenShift Container Platform は追加のイメージストリームタグを定義できます。Red Hat は、既存の "value": "jenkins:2"
および "value": "image-registry.openshift-image-registry.svc:5000/openshift/jenkins-agent-base-rhel8:latest"
イメージストリームタグは、OpenShift Container Platform 4.10 以前に存在します。これらの新規イメージストリームタグは、Jenkins 関連のイメージストリームのメンテナンス方法を改善するための要求の一部に対応します。
新規イメージストリームタグについて以下を実行します。
ocp-upgrade-redeploy
-
OpenShift Container Platform のアップグレード時に Jenkins イメージを更新するには、Jenkins デプロイメント設定でこのイメージストリームタグを使用します。このイメージストリームタグは、
jenkins
イメージストリームの既存の2
のイメージストリームタグとjenkins-agent-base-rhel8
イメージストリームのlatest
イメージストリームタグに対応します。これは 1 つの SHA またはイメージダイジェストのみに固有のイメージタグを使用します。Jenkins セキュリティーアドバイザリーなどのocp-tools-4
イメージが変更になると、Red Hat エンジニアリングは Cluster Samples Operator ペイロードを更新します。 user-maintained-upgrade-redeploy
-
OpenShift Container Platform をアップグレードした後に Jenkins を手動で再デプロイするには、Jenkins デプロイメント設定でこのイメージストリームタグを使用します。このイメージストリームタグは、利用可能な最も具体的なイメージバージョンインジケーターを使用します。Jenkins を再デプロイするときは、
$ oc import-image jenkins:user-maintained-upgrade-redeploy -n openshift
コマンドを実行します。このコマンドを発行すると、OpenShift Container PlatformImageStream
コントローラーはregistry.redhat.io
イメージレジストリーにアクセスし、その JenkinsImageStreamTag
オブジェクトの OpenShift イメージレジストリーのスロットに更新されたイメージを保存します。それ以外の場合は、このコマンドを実行しないと、Jenkins デプロイ設定によって再デプロイがトリガーされません。 scheduled-upgrade-redeploy
- Jenkins イメージの最新バージョンがリリースされたときに自動的に再デプロイするには、Jenkins デプロイ設定でこのイメージストリームタグを使用します。このイメージストリームタグは、バッキングイメージの変更をチェックする OpenShift Container Platform イメージストリームコントローラーのイメージストリームタグ機能の定期的なインポートを使用します。たとえば、最近の Jenkins セキュリティーアドバイザリーが原因でイメージが変更になると、OpenShift Container Platform は Jenkins デプロイメント設定の再デプロイメントをトリガーします。次の「関連情報」の「イメージストリームタグの定期的なインポートの設定」を参照してください。
openshift
namespace の jenkins-agent-maven
および jenkins-agent-nodejs
イメージストリームはどうなりますか?
OpenShift Container Platform の OpenShift Jenkins Maven および NodeJS エージェントイメージは、4.10 で非推奨になり、4.11 で OpenShift Container Platform インストールペイロードから削除されました。それらには、ocp-tools-4
リポジトリーで定義された代替手段がありません。ただし、次の関連情報セクションで言及されている "Jenkins エージェント" トピックで説明されているサイドカーパターンを使用することで、これを回避できます。
ただし、Cluster Samples Operator は、以前のリリースで作成された jenkins-agent-maven
および jenkins-agent-nodejs
イメージストリームを削除しません。これらは、registry.redhat.io
上のそれぞれの OpenShift Container Platform ペイロードイメージのタグを指しています。したがって、次のコマンドを実行して、これらのイメージの更新をプルできます。
$ oc import-image jenkins-agent-nodejs -n openshift
$ oc import-image jenkins-agent-maven -n openshift