4.2.4.2. Jenkins Kubernetes プラグインの使用
新規 Jenkins サービスの作成
以下の例では、openshift-jee-sample BuildConfig により、Jenkins Maven エージェント Pod が動的にプロビジョニングされます。Pod は Java ソースのクローンを作成し、WAR ファイルをビルドしてから、次に 2 番目の BuildConfig (openshift-jee-sample-docker) を実行して、新規作成した WAR ファイルをコンテナーイメージに階層化します。
同様のゴールを達成するより完全なサンプルは、こちら から入手できます。
例4.1 Jenkins Kubernetes プラグインを使用した BuildConfig の例
動的に作成された Jenkins エージェント Pod の仕様を上書きすることも可能です。以下は、コンテナーメモリーを上書きして、環境変数を指定する上記の例を変更したものです。
例4.2 Jenkins Kubernetes プラグインを使用した BuildConfig の例 (メモリー制限および環境変数の指定)
- 1
- "mypod" と呼ばれる新規の Pod テンプレートがオンザフライで定義されます。新しい Pod テンプレート名は、以下のノードのスタンザで参照されます。
- 2
- "cloud" 値は "openshift" に設定する必要があります。
- 3
- 新しい Pod テンプレートは、既存の Pod テンプレートから設定を継承できます。この場合、OpenShift Container Platform で事前定義されている "maven" Pod テンプレートから継承します。
- 4
- 既存のコンテナーの値を上書きするので、名前で指定する必要があります。OpenShift Container Platform に同梱される Jenkins エージェントイメージはすべて、コンテナー名として jnlp を使用します。
- 5
- コンテナーイメージは、再度指定する必要があります。これは既知の問題です。
- 6
- 512Mi のメモリー要求を指定します。
- 7
- 512Mi のメモリー制限を指定します。
- 8
- 環境変数 CONTAINER_HEAP_PERCENT に値 "0.25" を指定します。
- 9
- ノードスタンザは、上記で新たに定義された Pod テンプレート名を参照します。
デフォルトで、Pod はビルドの完了時に削除されます。この動作は、プラグインを使用するか、またはパイプライン Jenkinsfile 内で変更できます。詳細は、Agent Pod Retention を参照してください。
Kubernetes プラグインの設定に関する詳細は、Kubernetes プラグインドキュメント を参照してください。