2.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 バンドルを挿入することは役に立ちます。
手順
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
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> ...