検索

5.4. OpenShift Jenkins イメージに対する重要な変更

download PDF

OpenShift Container Platform 4.11 は、OpenShift Jenkins および OpenShift Agent Base イメージを registry.redhat.ioocp-tools-4 リポジトリーに移動します。また、ペイロードから OpenShift Jenkins Maven および NodeJS Agent イメージを削除します。

  • OpenShift Container Platform 4.11 は、Red Hat が OpenShift Container Platform ライフサイクル外でイメージを生成および更新できるように、OpenShift Jenkins および OpenShift Agent Base イメージを registry.redhat.ioocp-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.ioocp-tools-4 リポジトリーから入手できなくなりました。Red Hat は、OpenShift Container Platform ライフサイクルポリシー に従って、重要なバグ修正またはセキュリティー CVE のためにこれらのイメージの 4.10 以前のバージョンを維持します。

これらの変更は、Jenkins Kubernetes Plug-in で複数のコンテナー Pod テンプレート を使用するという OpenShift Container Platform 4.10 の推奨事項をサポートします。

5.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 Platform ImageStream コントローラーは registry.redhat.io イメージレジストリーにアクセスし、その Jenkins ImageStreamTag オブジェクトの 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

5.4.2. Jenkins イメージストリームタグのカスタマイズ

デフォルトのアップグレード動作をオーバーライドし、Jenkins イメージのアップグレード方法を制御するには、Jenkins デプロイメント設定で使用するイメージストリームタグの値を設定します。

デフォルトのアップグレード動作は、Jenkins イメージがインストールペイロードの一部であったときに存在した動作です。jenkins-rhel.json イメージストリームファイル内のイメージストリームタグ名 2 および ocp-upgrade-redeploy は、SHA 固有のイメージ参照を使用します。したがって、これらのタグが新しい SHA で更新されると、OpenShift Container Platform イメージ変更コントローラーは、関連するテンプレート (jenkins-ephemeral.jsonjenkins-persistent.json など) から Jenkins デプロイメント設定を自動的に再デプロイします。

新しいデプロイメントの場合、そのデフォルト値をオーバーライドするには、jenkins-ephemeral.json Jenkins テンプレートの JENKINS_IMAGE_STREAM_TAG の値を変更します。たとえば、"value": "jenkins:2"2 を次のイメージストリームタグのいずれかに置き換えます。

  • デフォルト値 の ocp-upgrade-redeploy は、OpenShift Container Platform をアップグレードするときに Jenkins イメージを更新します。
  • user-maintained-upgrade-redeploy では、OpenShift Container Platform のアップグレード後に $ oc import-image jenkins:user-maintained-upgrade-redeploy -n openshift を実行して、Jenkins を手動で再デプロイする必要があります。
  • schedule-upgrade-redeploy は、指定された <image>:<tag> の組み合わせの変更を定期的にチェックし、変更されたときにイメージをアップグレードします。イメージ変更コントローラーは、変更されたイメージをプルし、テンプレートによってプロビジョニングされた Jenkins デプロイ設定を再デプロイします。このスケジュールされたインポートポリシーの詳細については、次のその他のリソースのイメージストリームへのタグの追加を参照してください。
注記

既存のデプロイメントの現在のアップグレード値をオーバーライドするには、それらのテンプレートパラメーターに対応する環境変数の値を変更します。

前提条件

  • OpenShift Container Platform 4.12 で OpenShift Jenkins を実行している。
  • OpenShift Jenkins がデプロイされている namespace を知っている。

手順

  • <namespace> を OpenShift Jenkins がデプロイされている namespace に置き換え、<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 を編集するには、$ oc edit dc/jenkins -n <namespace> を入力し、value: 'jenkins:<image_stream_tag>' 行を更新します。

5.4.3. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.