3.3.5. サービス CA バンドルのカスタムリソース定義への追加

CustomResourceDefinition (CRD) オブジェクトに service.beta.openshift.io/inject-cabundle=true のアノテーションを付け、その spec.conversion.webhook.clientConfig.caBundle フィールドにサービス CA バンドルを設定できます。これにより、Kubernetes API サーバーはターゲットに設定されたエンドポイントのセキュリティーを保護するために使用されるサービス CA 証明書を検証することができます。

注記

サービス CA バンドルは、CRD が変換に Webhook を使用するように設定されている場合にのみ CRD にインジェクトされます。CRD の Webhook がサービス CA 証明書でセキュリティー保護されている場合にのみ、サービス CA バンドルを挿入することは役に立ちます。

手順

  1. CRD に service.beta.openshift.io/inject-cabundle=true のアノテーションを付けます。

    $ oc annotate crd <crd_name> \1
         service.beta.openshift.io/inject-cabundle=true
    1
    <crd_name> をアノテーションを付ける CRD の名前に置き換えます。

    たとえば、以下のコマンドを使用して CRD test1 にアノテーションを付けます。

    $ oc annotate crd test1 service.beta.openshift.io/inject-cabundle=true
  2. CRD を表示して、サービス CA バンドルが挿入されていることを確認します。

    $ oc get crd <crd_name> -o yaml

    CA バンドルは、YAML 出力の spec.conversion.webhook.clientConfig.caBundle フィールドに表示されます。

    apiVersion: apiextensions.k8s.io/v1
    kind: CustomResourceDefinition
    metadata:
      annotations:
        service.beta.openshift.io/inject-cabundle: "true"
    ...
    spec:
      conversion:
        strategy: Webhook
        webhook:
          clientConfig:
            caBundle: <CA_BUNDLE>
    ...