1.5. カスタマイズ
利用可能なすべてのカスタマイズオプションは、OpenShift 設定オプション で使用できます。
いくつかの例は、以下のセクションで提供されています。
1.5.1. Route の公開 リンクのコピーリンクがクリップボードにコピーされました!
Quarkus アプリケーションの Route を公開するには次のようにします。
quarkus.openshift.route.expose=true
quarkus.openshift.route.expose=true
このプロパティーを application.properties ファイルに追加する必要はありません。代わりに、コマンドライン引数として渡すこともできます。
./mvnw clean package -Dquarkus.openshift.route.expose=true
./mvnw clean package -Dquarkus.openshift.route.expose=true
以下にリストされているすべてのプロパティも同様です。
1.5.1.1. Route リソースの保護 リンクのコピーリンクがクリップボードにコピーされました!
着信接続を保護するために、OpenShift は証明書を提供するためにいくつかのタイプの TLS 終了を提供します。
ルートを保護する方法の詳細は、OpenShift Container Platform のドキュメントを参照してください。
次の例は、"quarkus.openshift.route.tls" プロパティーを追加し、パススルー終了を使用して保護されたルートを設定する方法を示しています。
quarkus.openshift.route.expose=true quarkus.openshift.route.target-port=https ## Route TLS configuration: quarkus.openshift.route.tls.termination=passthrough quarkus.openshift.route.tls.insecure-edge-termination-policy=None
quarkus.openshift.route.expose=true
quarkus.openshift.route.target-port=https
## Route TLS configuration:
quarkus.openshift.route.tls.termination=passthrough
quarkus.openshift.route.tls.insecure-edge-termination-policy=None
1.5.2. ラベル リンクのコピーリンクがクリップボードにコピーされました!
生成されたリソースにラベルを追加するには次のようにします。
quarkus.openshift.labels.foo=bar
quarkus.openshift.labels.foo=bar
1.5.3. アノテーション リンクのコピーリンクがクリップボードにコピーされました!
生成されたリソースにアノテーションを追加するには次のようにします。
quarkus.openshift.annotations.foo=bar
quarkus.openshift.annotations.foo=bar
1.5.4. 環境変数 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform では、環境変数を定義する方法が複数提供されています。
- キーと値のペア。
- Secret または ConfigMap からすべての値をインポート
- Secret または ConfigMap の指定されたフィールドで識別される単一の値を補間
- 同じリソース内のフィールドから値を補間
1.5.4.1. キー/値のペアからの環境変数 リンクのコピーリンクがクリップボードにコピーされました!
生成されたリソースに環境変数としてキーとバリューのペアを追加する場合:
quarkus.openshift.env.vars.my-env-var=foobar
quarkus.openshift.env.vars.my-env-var=foobar
上記のコマンドは、MY_ENV_VAR=foobar を環境変数として追加します。my-env-var キーは大文字に変換され、ダッシュはアンダースコアに置き換えられるため、MY_ENV_VAR となります。
1.5.4.2. シークレットからの環境変数 リンクのコピーリンクがクリップボードにコピーされました!
Secret のすべてのキーと値のペアを環境変数として追加するには、以下の設定を適用し、ソースとして使用する各 Secret をカンマ (,) で区切ります。
quarkus.openshift.env.secrets=my-secret,my-other-secret
quarkus.openshift.env.secrets=my-secret,my-other-secret
これにより、コンテナー定義に以下が生成されます。
以下は、my-secret Secret から keyName フィールドで識別される値を foo 環境変数に抽出します。
quarkus.openshift.env.mapping.foo.from-secret=my-secret quarkus.openshift.env.mapping.foo.with-key=keyName
quarkus.openshift.env.mapping.foo.from-secret=my-secret
quarkus.openshift.env.mapping.foo.with-key=keyName
これにより、コンテナーの env セクションに以下が生成されます。
1.5.4.3. ConfigMap から環境変数を取得 リンクのコピーリンクがクリップボードにコピーされました!
ConfigMap からのすべてのキーと値のペアを環境変数として追加するには、以下の設定を適用し、ソースとして使用する各 ConfigMap をカンマ (,) で区切ります。
quarkus.openshift.env.configmaps=my-config-map,another-config-map
quarkus.openshift.env.configmaps=my-config-map,another-config-map
これにより、コンテナー定義に以下が生成されます。
以下は、my-config-map ConfigMap から keyName フィールドで識別される値を foo 環境変数に抽出したものです。
quarkus.openshift.env.mapping.foo.from-configmap=my-configmap quarkus.openshift.env.mapping.foo.with-key=keyName
quarkus.openshift.env.mapping.foo.from-configmap=my-configmap
quarkus.openshift.env.mapping.foo.with-key=keyName
これにより、コンテナーの env セクションに以下が生成されます。
1.5.4.4. フィールドからの環境変数 リンクのコピーリンクがクリップボードにコピーされました!
ソースとして使用するフィールドのパスを指定することにより、別のフィールドの値を使用して新しい環境変数を追加することもできます。以下に例を示します。
quarkus.openshift.env.fields.foo=metadata.name
quarkus.openshift.env.fields.foo=metadata.name
1.5.4.5. 生成されるデプロイメントリソースの変更 リンクのコピーリンクがクリップボードにコピーされました!
Deployment リソースを生成するだけでなく、application.properties を使用して、代わりに DeploymentConfig、StatefulSet、Job、または CronJob リソースを取得するよう選択することもできます。
quarkus.openshift.deployment-kind=StatefulSet
quarkus.openshift.deployment-kind=StatefulSet
1.5.4.5.1. Job リソースの生成 リンクのコピーリンクがクリップボードにコピーされました!
Job リソースを生成する場合は、application.properties を使用して以下のプロパティーを追加する必要があります。
quarkus.openshift.deployment-kind=Job
quarkus.openshift.deployment-kind=Job
Picocli エクステンションを使用している場合、デフォルトで Job リソースが生成されます。
quarkus.openshift.arguments プロパティーを通じて、Kubernetes ジョブが使用する引数を提供できます。たとえば、プロパティー quarkus.openshift.arguments=A,B を追加します。
最後に、Kubernetes ジョブは OpenShift にインストールされるたびに起動されます。Kubernetes ジョブの実行方法の詳細は、Running an example job を参照してください。
quarkus.openshift.job.xxx の下のプロパティーを使用して、Kubernetes ジョブ設定の残りを設定できます。詳細は、quarkus.openshift.job.parallelism を参照してください。
1.5.4.5.2. CronJob リソースの生成 リンクのコピーリンクがクリップボードにコピーされました!
CronJob リソースを生成する場合は、application.properties ファイルを使用して、次のプロパティーを追加する必要があります。
quarkus.openshift.deployment-kind=CronJob # Cron expression to run the job every hour quarkus.openshift.cron-job.schedule=0 * * * *
quarkus.openshift.deployment-kind=CronJob
# Cron expression to run the job every hour
quarkus.openshift.cron-job.schedule=0 * * * *
CronJob リソースでは、quarkus.openshift.cron-job.schedule プロパティーを通じてジョブをいつ起動するかを指定するために Cron 式が必要です。これらが提供されない場合、ビルドは失敗します。
quarkus.openshift.cron-job.xxx の下のプロパティーを使用して、Kubernetes CronJob 設定の残りを設定できます (詳細は、quarkus.openshift.cron-job.parallelism を参照してください)。
1.5.4.6. 検証 リンクのコピーリンクがクリップボードにコピーされました!
2 つの定義間の競合 (たとえば、誤って両方に値を割り当て、変数がフィールドから派生していることを指定するなど) が発生すると、ビルド時にエラーがスローされます。アプリケーションをクラスターにデプロイする前にこの問題を修正できますが、クラスターにデプロイすると、問題の原因を診断することがより困難になる可能性があります。
同様に、同じシークレットからのインジェクションを 2 回定義するなど、2 つの冗長な定義では問題は発生しませんが、その定義を重複させる意図がなかった可能性があることを通知する警告が報告されます。
1.5.4.6.1. Backwards compatibility リンクのコピーリンクがクリップボードにコピーされました!
OpenShift エクステンションの以前のバージョンでは、環境変数を追加するための異なる構文がサポートされていました。古い構文は引き続きサポートされていますが、非推奨となっているため、新しい構文に移行することを推奨します。
| Old | New | ||
| 素の変数 |
|
| |
| フィールドから |
|
| |
|
すべて |
|
| |
|
すべて |
|
| |
|
ある |
|
| |
|
|
| ||
|
ある |
|
| |
|
|
|
If you redefine the same variable by using the new syntax while keeping the old syntax, only the new version is kept, and a warning will be issued to alert you of the problem. For example, if you define both `quarkus.openshift.env-vars.my-env-var.value=foobar` and `quarkus.openshift.env.vars.my-env-var=newValue`, the extension generates an environment variable `MY_ENV_VAR=newValue` and issues a warning.
If you redefine the same variable by using the new syntax while keeping the old syntax, only the new version is kept, and a warning will be issued to alert you of the problem.
For example, if you define both `quarkus.openshift.env-vars.my-env-var.value=foobar` and `quarkus.openshift.env.vars.my-env-var=newValue`, the extension generates an environment variable `MY_ENV_VAR=newValue` and issues a warning.
1.5.5. ボリュームのマウント リンクのコピーリンクがクリップボードにコピーされました!
OpenShift エクステンションを使用すると、アプリケーションのボリュームとマウントの両方を設定できます。簡単な設定で任意のボリュームをマウントできます。
quarkus.openshift.mounts.my-volume.path=/where/to/mount
quarkus.openshift.mounts.my-volume.path=/where/to/mount
これにより、ボリューム my-volume が Pod のパス /where/to/mount にマウントされます。以下のセクションに示すように、ボリューム自体を設定できます。
1.5.5.1. シークレットのボリューム リンクのコピーリンクがクリップボードにコピーされました!
quarkus.openshift.secret-volumes.my-volume.secret-name=my-secret
quarkus.openshift.secret-volumes.my-volume.secret-name=my-secret
1.5.5.2. ConfigMap ボリューム リンクのコピーリンクがクリップボードにコピーされました!
quarkus.openshift.config-map-volumes.my-volume.config-map-name=my-config-map
quarkus.openshift.config-map-volumes.my-volume.config-map-name=my-config-map
1.5.5.3. 永続ボリューム要求 リンクのコピーリンクがクリップボードにコピーされました!
quarkus.openshift.pvc-volumes.my-pvc.claim-name=my-pvc
quarkus.openshift.pvc-volumes.my-pvc.claim-name=my-pvc