1.5. カスタマイズ


利用可能なすべてのカスタマイズオプションは、OpenShift 設定オプション で使用できます。

いくつかの例は、以下のセクションで提供されています。

1.5.1. Route の公開

Quarkus アプリケーションの Route を公開するには次のようにします。

quarkus.openshift.route.expose=true
Copy to Clipboard Toggle word wrap
ヒント

このプロパティーを application.properties ファイルに追加する必要はありません。代わりに、コマンドライン引数として渡すこともできます。

./mvnw clean package -Dquarkus.openshift.route.expose=true
Copy to Clipboard Toggle word wrap

以下にリストされているすべてのプロパティも同様です。

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
Copy to Clipboard Toggle word wrap

1.5.2. ラベル

生成されたリソースにラベルを追加するには次のようにします。

quarkus.openshift.labels.foo=bar
Copy to Clipboard Toggle word wrap

1.5.3. アノテーション

生成されたリソースにアノテーションを追加するには次のようにします。

quarkus.openshift.annotations.foo=bar
Copy to Clipboard Toggle word wrap

1.5.4. 環境変数

OpenShift Container Platform では、環境変数を定義する方法が複数提供されています。

  • キーと値のペア。
  • Secret または ConfigMap からすべての値をインポート
  • Secret または ConfigMap の指定されたフィールドで識別される単一の値を補間
  • 同じリソース内のフィールドから値を補間

1.5.4.1. キー/値のペアからの環境変数

生成されたリソースに環境変数としてキーとバリューのペアを追加する場合:

quarkus.openshift.env.vars.my-env-var=foobar
Copy to Clipboard Toggle word wrap

上記のコマンドは、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
Copy to Clipboard Toggle word wrap

これにより、コンテナー定義に以下が生成されます。

envFrom:
  - secretRef:
      name: my-secret
      optional: false
  - secretRef:
      name: my-other-secret
      optional: false
Copy to Clipboard Toggle word wrap

以下は、my-secret Secret から keyName フィールドで識別される値を foo 環境変数に抽出します。

quarkus.openshift.env.mapping.foo.from-secret=my-secret
quarkus.openshift.env.mapping.foo.with-key=keyName
Copy to Clipboard Toggle word wrap

これにより、コンテナーの env セクションに以下が生成されます。

- env:
  - name: FOO
    valueFrom:
      secretKeyRef:
        key: keyName
        name: my-secret
        optional: false
Copy to Clipboard Toggle word wrap

1.5.4.3. ConfigMap から環境変数を取得

ConfigMap からのすべてのキーと値のペアを環境変数として追加するには、以下の設定を適用し、ソースとして使用する各 ConfigMap をカンマ (,) で区切ります。

quarkus.openshift.env.configmaps=my-config-map,another-config-map
Copy to Clipboard Toggle word wrap

これにより、コンテナー定義に以下が生成されます。

envFrom:
  - configMapRef:
      name: my-config-map
      optional: false
  - configMapRef:
      name: another-config-map
      optional: false
Copy to Clipboard Toggle word wrap

以下は、my-config-map ConfigMap から keyName フィールドで識別される値を foo 環境変数に抽出したものです。

quarkus.openshift.env.mapping.foo.from-configmap=my-configmap
quarkus.openshift.env.mapping.foo.with-key=keyName
Copy to Clipboard Toggle word wrap

これにより、コンテナーの env セクションに以下が生成されます。

- env:
  - name: FOO
    valueFrom:
      configMapKeyRef:
        key: keyName
        name: my-configmap
        optional: false
Copy to Clipboard Toggle word wrap

1.5.4.4. フィールドからの環境変数

ソースとして使用するフィールドのパスを指定することにより、別のフィールドの値を使用して新しい環境変数を追加することもできます。以下に例を示します。

quarkus.openshift.env.fields.foo=metadata.name
Copy to Clipboard Toggle word wrap

1.5.4.5. 生成されるデプロイメントリソースの変更

Deployment リソースを生成するだけでなく、application.properties を使用して、代わりに DeploymentConfigStatefulSetJob、または CronJob リソースを取得するよう選択することもできます。

quarkus.openshift.deployment-kind=StatefulSet
Copy to Clipboard Toggle word wrap
1.5.4.5.1. Job リソースの生成

Job リソースを生成する場合は、application.properties を使用して以下のプロパティーを追加する必要があります。

quarkus.openshift.deployment-kind=Job
Copy to Clipboard Toggle word wrap
重要

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 * * * *
Copy to Clipboard Toggle word wrap
重要

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 エクステンションの以前のバージョンでは、環境変数を追加するための異なる構文がサポートされていました。古い構文は引き続きサポートされていますが、非推奨となっているため、新しい構文に移行することを推奨します。

Expand
表1.1 古い構文と新しい構文
 

Old

New

 

素の変数

quarkus.openshift.env-vars.my-env-var.value=foobar

quarkus.openshift.env.vars.my-env-var=foobar

 

フィールドから

quarkus.openshift.env-vars.my-env-var.field=foobar

quarkus.openshift.env.fields.my-env-var=foobar

 

すべて ConfigMap から

quarkus.openshift.env-vars.xxx.configmap=foobar

quarkus.openshift.env.configmaps=foobar

 

すべて Secret から

quarkus.openshift.env-vars.xxx.secret=foobar

quarkus.openshift.env.secrets=foobar

 

ある Secret フィールドから

quarkus.openshift.env-vars.foo.secret=foobar

quarkus.openshift.env.mapping.foo.from-secret=foobar

 
 

quarkus.openshift.env-vars.foo.value=field

quarkus.openshift.env.mapping.foo.with-key=field

 

ある ConfigMap フィールドから

quarkus.openshift.env-vars.foo.configmap=foobar

quarkus.openshift.env.mapping.foo.from-configmap=foobar

 
 

quarkus.openshift.env-vars.foo.value=field

quarkus.openshift.env.mapping.foo.with-key=field

 
注記
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.
Copy to Clipboard Toggle word wrap

1.5.5. ボリュームのマウント

OpenShift エクステンションを使用すると、アプリケーションのボリュームとマウントの両方を設定できます。簡単な設定で任意のボリュームをマウントできます。

quarkus.openshift.mounts.my-volume.path=/where/to/mount
Copy to Clipboard Toggle word wrap

これにより、ボリューム my-volume が Pod のパス /where/to/mount にマウントされます。以下のセクションに示すように、ボリューム自体を設定できます。

1.5.5.1. シークレットのボリューム

quarkus.openshift.secret-volumes.my-volume.secret-name=my-secret
Copy to Clipboard Toggle word wrap

1.5.5.2. ConfigMap ボリューム

quarkus.openshift.config-map-volumes.my-volume.config-map-name=my-config-map
Copy to Clipboard Toggle word wrap

1.5.5.3. 永続ボリューム要求

quarkus.openshift.pvc-volumes.my-pvc.claim-name=my-pvc
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat