第4章 OpenShift Jenkins イメージに対する重要な変更
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 のライフサイクルポリシー に従って、重要なバグ修正やセキュリティー CVE に備えて、これらのイメージの 4.10 以前のバージョンを維持しています。
これらの変更は、Jenkins Kubernetes プラグインで複数のコンテナー Pod テンプレート を使用するという Red Hat OpenShift Service on AWS 4.10 の推奨事項に対応したものです。
4.1. OpenShift Jenkins イメージの再配置
Red Hat OpenShift Service on AWS 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
イメージストリームタグによって参照されます。 -
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
namespace のjenkins-agent-maven
およびjenkins-agent-nodejs
イメージストリームの変更点」を参照してください。
OpenShift Jenkins イメージのサポートマトリックスの変更点
registry.redhat.io
レジストリーの ocp-tools-4
リポジトリーにある新しい各イメージは、Red Hat OpenShift Service on AWS の複数のバージョンをサポートします。Red Hat がこれらの新しいイメージの 1 つを更新すると、すべてのバージョンで同時に利用できるようになります。この可用性は、セキュリティーアドバイザリーに応じて 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 の 1 つのバージョンだけでした。Red Hat は時間の経過とともに各イメージを順次更新する可能性がありました。
OpenShift Jenkins および Jenkins Agent Base ImageStream および ImageStreamTag オブジェクトに追加された点
ペイロード内のイメージストリームからペイロード以外のイメージを参照するイメージストリームに移行することで、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
イメージストリームタグに対応します。これは 1 つの SHA またはイメージダイジェストのみに固有のイメージタグを使用します。Jenkins セキュリティーアドバイザリーなどのocp-tools-4
イメージが変更になると、Red Hat エンジニアリングは Cluster Samples Operator ペイロードを更新します。 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
イメージレジストリーにアクセスし、更新されたイメージをその JenkinsImageStreamTag
オブジェクトの OpenShift イメージレジストリーのスロットに保存します。それ以外の場合は、このコマンドを実行しないと、Jenkins デプロイ設定によって再デプロイがトリガーされません。 scheduled-upgrade-redeploy
- Jenkins イメージの最新バージョンがリリースされたときに自動的に再デプロイするには、Jenkins デプロイ設定でこのイメージストリームタグを使用します。このイメージストリームタグは、バッキングイメージの変更をチェックする Red Hat OpenShift Service on AWS イメージストリームコントローラーのイメージストリームタグの定期的なインポート機能を使用します。たとえば、最近の Jenkins セキュリティーアドバイザリーによりイメージが変更になると、Red Hat OpenShift Service on AWS は Jenkins デプロイメント設定の再デプロイをトリガーします。次の「関連情報」の「イメージストリームタグの定期的なインポートの設定」を参照してください。
openshift
namespace の 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 エージェント」トピックで説明されているサイドカーパターンを使用することで回避できます。
ただし、Cluster Samples Operator は、以前のリリースで作成された 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