6.8.3.3. ワークロードリソースマッピング


注記
  • ワークロードリソースマッピングは、両方の API グループ (binding.operators.coreos.com および servicebinding.io) の ServiceBinding カスタムリソース (CR) のセカンダリーワークロードで使用できます。
  • servicebinding.io API グループの下でのみ、ClusterWorkloadResourceMapping リソースを定義する必要があります。ただし、ClusterWorkloadResourceMapping リソースは、binding.operators.coreos.com および servicebinding.io の両方の API グループで ServiceBinding リソースと対話します。

コンテナーパスの設定方法を使用してカスタムパスの場所を設定できない場合は、バインディングデータを投影する必要がある場所を正確に定義できます。servicebinding.io API グループで ClusterWorkloadResourceMapping リソースを定義して、特定のワークロードの種類のバインディングデータを投影する場所を指定します。

次の例は、CronJob.batch/v1 リソースのマッピングを定義する方法を示しています。

例: CronJob.batch/v1 リソースのマッピング

apiVersion: servicebinding.io/v1beta1
kind: ClusterWorkloadResourceMapping
metadata:
 name: cronjobs.batch 
1

spec:
  versions:
  - version: "v1" 
2

    annotations: .spec.jobTemplate.spec.template.metadata.annotations 
3

    containers:
    - path: .spec.jobTemplate.spec.template.spec.containers[*] 
4

    - path: .spec.jobTemplate.spec.template.spec.initContainers[*]
      name: .name 
5

      env: .env 
6

      volumeMounts: .volumeMounts 
7

    volumes: .spec.jobTemplate.spec.template.spec.volumes 
8

1
ClusterWorkloadResourceMapping リソースの名前。マップされたワークロードリソースの plural.group として修飾する必要があります。
2
マップされているリソースのバージョン。指定されていないバージョンは、*ワイルドカードと一致させることができます。
3
オプション: Pod 内の .annotations フィールドの識別子。固定 JSONPath で指定されます。デフォルト値は .spec.template.spec.annotations です。
4
JSONPath で指定された、Pod 内の .containers および .initContainers フィールドの識別子。containers フィールドの下にエントリーが定義されていない場合、Service Binding Operator のデフォルトは .spec.template.spec.containers[*] および .spec.template.spec.initContainers[\*] の 2 つのパスになり、他のすべてのフィールドはデフォルトとして次のように設定されます。ただし、エントリーを指定する場合は、.path フィールドを定義する必要があります。
5
オプション: コンテナー内の .name フィールドの識別子。固定 JSONPath で指定されます。デフォルト値は .name です。
6
オプション: コンテナー内の .env フィールドの識別子。固定 JSONPath で指定されます。デフォルト値は .env です。
7
オプション: コンテナー内の .volumeMounts フィールドの識別子。固定 JSONPath で指定されます。デフォルト値は .volumeMounts です。
8
オプション: Pod 内の .volumes フィールドの識別子。固定 JSONPath で指定されます。デフォルト値は .spec.template.spec.volumes です。
重要
  • このコンテキストでは、固定 JSONPath は、次の操作のみを受け入れる JSONPath 文法のサブセットです。

    • フィールド検索: .spec.template
    • 配列のインデックス: .spec['template']

    その他の操作は受け付けません。

  • これらのフィールドのほとんどはオプションです。指定されていない場合、Service Binding Operator は PodSpec リソースと互換性のあるデフォルトを想定します。
  • Service Binding Operator では、これらの各フィールドが Pod デプロイメントの対応するフィールドと構造的に同等である必要があります。たとえば、ワークロードリソースの .env フィールドの内容は、Pod リソースの .env フィールドが受け入れるのと同じデータ構造を受け入れる必要があります。それができない場合、そのようなワークロードにバインディングデータを投影すると、Service Binding Operator で予期しない動作が発生する可能性があります。

binding.operators.coreos.com API グループに固有の動作

ClusterWorkloadResourceMapping リソースが binding.operators.coreos.com API グループの下の ServiceBinding リソースと対話する場合、次の動作が予想されます。

  • bindAsFiles: false フラグ値を持つ ServiceBinding リソースがこれらのマッピングのいずれかと一緒に作成される場合、環境変数は、対応する ClusterWorkloadResourceMapping リソースで指定された各 path フィールドの下の .envFrom フィールドに投影されます。
  • クラスター管理者は、バインド目的で ServiceBinding.bindings.coreos.com リソースの ClusterWorkloadResourceMapping リソースと .spec.application.bindingPath.containersPath フィールドの両方を指定できます。

    Service Binding Operator は、ClusterWorkloadResourceMapping リソースと .spec.application.bindingPath.containersPath フィールドの両方で指定された場所にバインディングデータを投影しようとします。この動作は、path: $containersPath 属性を持つ対応する ClusterWorkloadResourceMapping リソースにコンテナーエントリーを追加することと同じです。他のすべての値はデフォルト値を取ります。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る