第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 プラグインで複数のコンテナー 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 は、OpenShift Container Platform 4.10 以前に存在する既存の "value": "jenkins:2"
および "value": "image-registry.openshift-image-registry.svc:5000/openshift/jenkins-agent-base-rhel8:latest"
イメージストリームタグに合わせて、一連の新しいイメージストリームタグを作成しました。これらの新規イメージストリームタグは、Jenkins 関連のイメージストリームのメンテナンス方法を改善するための要求の一部に対応します。
新規イメージストリームタグについて以下を実行します。
ocp-upgrade-redeploy
-
OpenShift Container Platform のアップグレード時に Jenkins イメージを更新するには、Jenkins デプロイメント設定でこのイメージストリームタグを使用します。このイメージストリームタグは、
jenkins
イメージストリームの既存の2
のイメージストリームタグとjenkins-agent-base-rhel8
イメージストリームのlatest
イメージストリームタグに対応します。これは 1 つの SHA またはイメージダイジェストのみに固有のイメージタグを使用します。Jenkins のセキュリティーアドバイザリーなどに応じてocp-tools-4
イメージを変更する際に、Red Hat Engineering チームが 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-nodejs -n openshift
oc import-image jenkins-agent-maven -n openshift
$ oc import-image jenkins-agent-maven -n openshift
OpenShift Jenkins はどの OpenShift Container Platform アーキテクチャーとバージョンをサポートしていますか?
Jenkins は、すべての OpenShift Container Platform リリースで次のアーキテクチャーをサポートしています。
-
amd64
-
arm64
-
ppc64le
-
s390x
ただし、OpenShift Container Platform の Extended Update Support (EUS) リリースでは、amd64
アーキテクチャーのみが正式にサポートされています。そのため、EUS リリースでは OpenShift Jenkins イメージは amd64
専用として提供されます。これは、EUS リリースの場合、OpenShift Container Platform プラットフォーム自体がサポートしているアーキテクチャーが amd64
だけであるためです。詳細は、Support Matrix for OpenShift Jenkins releases を参照してください。
Red Hat が Jenkins コンテナーイメージを更新したときに、すべての OpenShift Container Platform バージョンで同時にイメージを利用できるようになりますか?
はい、Jenkins コンテナーイメージは四半期ごとに更新され、サポートされているすべての OpenShift Container Platform リリースのすべての Jenkins イメージで更新が利用できるようになります。
リリースされた Jenkins イメージはどのくらいの期間サポートされますか?
Red Hat は、最新のコンテナーイメージで提供される Jenkins コアの最新の長期サポート (LTS) バージョンのみをサポートします。複数のコアバージョンはサポートしていません。当社では、アップストリームコミュニティーによってリリースされた最新の Jenkins LTS バージョンに合わせることを方針としています。
Jenkins のリリースは OpenShift Container Platform のバージョンと対応していますか?
はい。当社はプラットフォームとの対応関係を維持することを目標としています。そのため、Jenkins コントローラーエージェントのイメージは、サポート対象の OpenShift Container Platform リリースごとにビルドおよびテストされます。
Jenkins のリリース予定は OpenShift Container Platform のリリースサイクルと同じですか?
Jenkins は OpenShift Container Platform のコアペイロードの一部ではなくなりました。リリースは別途管理されています。ただし、当社では、OpenShift Container Platform GA リリースから数週間以内に、新しくリリースされた OpenShift Container Platform 用の新しい OpenShift Jenkins イメージを公開することを目指しています。
Red Hat はアップストリームの Jenkins のライフサイクルと LTS バージョンに準拠していますか?
はい。当社はアップストリームの Jenkins のライフサイクルと LTS バージョンに準拠しています。Red Hat は、重要な修正のためにサイクル外のリリースが必要な場合を除き、通常、OpenShift Jenkins イメージの更新を四半期ごとに提供します。
現在の Jenkins LTS バージョンを確認するには、Jenkins Catalog
サポートされていないものは何ですか?
- 現在の OpenShift Jenkins LTS よりも古いバージョンの Jenkins はサポートされていません。
- OpenShift Container Platform 外部での Jenkins の実行はサポートされていません。
- Jenkins の複数のコアバージョンはサポートされていません。OpenShift Jenkins イメージにバンドルされているプラグインには、サポート対象のすべての OpenShift Container Platform リリースで、同じバージョン管理が適用されます。