13.5. External Secrets Operator for Red Hat OpenShift の Egress プロキシーについて
OpenShift Container Platform でクラスター全体の Egress プロキシーが設定されている場合は、Operator Lifecycle Manager (OLM) が、自身が管理する Operator に、そのクラスター全体のプロキシーを自動的に設定します。OLM は、Operator のすべてのデプロイメントを HTTP_PROXY、HTTPS_PROXY、および NO_PROXY 環境変数で自動的に更新します。
13.5.1. External Secrets Operator for Red Hat OpenShift の Egress プロキシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
Egress プロキシーは、ExternalSecretsConfig または ExternalSecretsManager カスタムリソース (CR) で設定できます。Operator とオペランドは、プロキシー検証のために、OpenShift Container Platform でサポートされている認証局 (CA) バンドルを使用します。
Operator は、すべての external-secrets Pod がプロキシーサーバーに到達できるようにする eso-sys-allow-proxy-egress などの NetworkPolicy を自動的に作成および管理できます。この動作は、networkPolicyProvisioning フィールドを使用して制御します。このフィールドは、ExternalSecretsConfig CR または ExternalSecretsManager CR のいずれかで設定でき、プロキシー URL のフィールドとは別に設定できます。たとえば、プロキシーが Operator Lifecycle Manager (OLM) 環境変数によってクラスターレベルで指定されている場合、プロキシー URL を指定せずに、CR で networkPolicyProvisioning のみを設定できます。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 -
ExternalSecretsConfigカスタム CR を作成した。
手順
ExternalSecretsConfigリソースでプロキシーを設定するには、次の手順を実行します。次のコマンドを実行して、
ExternalSecretsConfigリソースを編集します。$ oc edit externalsecretsconfigs.operator.openshift.io clusterspec.appConfig.proxyセクションを編集して、プロキシー値を次のように設定します。apiVersion: operator.openshift.io/v1alpha1 kind: ExternalSecretsConfig ... spec: appConfig: proxy: httpProxy: <http_proxy> httpsProxy: <https_proxy> noProxy: <no_proxy> networkPolicyProvisioning: Managed各項目の説明:
spec.appConfig.proxy.httpProxy- HTTP リクエストのプロキシー URL を指定します。
spec.appConfig.proxy.httpsProxy- HTTPS リクエストのプロキシー URL を指定します。
spec.appConfig.proxy.noProxy- プロキシーを使用してはならないホスト名、CIDR、IP、またはこれらを組み合わせたもののコンマ区切りリストを指定します。
spec.appConfig.proxy.networkPolicyProvisioning-
Operator が
eso-sys-allow-proxy-egressNetworkPolicyを自動的に作成および管理するかどうかを指定します。設定できる値は、Managed(デフォルト) とUnmanagedです。Managedに設定されている場合、Operator はプロキシーの URL ポートに基づいてポリシーを作成し、プロキシーが削除されるとポリシーを削除します。Unmanagedに設定されている場合、Operator はポリシーを作成または削除せず、プロキシーの Egress トラフィックの管理はユーザーの責任となります。
ExternalSecretsManagerCR でプロキシーを設定するには、次の手順を実行します。次のコマンドを実行して、
ExternalSecretsManagerCR を編集します。$ oc edit externalsecretsmanagers.operator.openshift.io clusterspec.globalConfig.proxyセクションを編集して、プロキシー値を次のように設定します。apiVersion: operator.openshift.io/v1alpha1 kind: ExternalSecretsManager ... spec: globalConfig: proxy: httpProxy: <http_proxy> httpsProxy: <https_proxy> noProxy: <no_proxy> networkPolicyProvisioning: Managed各項目の説明:
spec.appConfig.proxy.httpProxy- HTTP リクエストのプロキシー URL を指定します。
spec.appConfig.proxy.httpsProxy- HTTPS リクエストのプロキシー URL を指定します。
spec.appConfig.proxy.noProxy- プロキシーを使用してはならないホスト名、CIDR、IP、またはこれらを組み合わせたもののコンマ区切りリストを指定します。
spec.appConfig.proxy.networkPolicyProvisioningOperator が
eso-sys-allow-proxy-egressNetworkPolicyを自動的に作成および管理するかどうかを指定します。値は `Managed` (デフォルト) とUnmanagedです。注記ExternalSecretsConfigCR とExternalSecretsManagerCR の両方でnetworkPolicyProvisioningが設定されている場合は、ExternalSecretsConfigCR の値が優先されます。
プロキシーが OLM 環境変数によってクラスターレベルで設定されており、CR でプロキシー URL を指定せずに
NetworkPolicyのプロビジョニングのみを制御する場合は、いずれかの CR でnetworkPolicyProvisioningフィールドのみを次のように設定します。apiVersion: operator.openshift.io/v1alpha1 kind: ExternalSecretsConfig ... spec: applicationConfig: proxy: networkPolicyProvisioning: Unmanaged
検証
以下のコマンドを実行して、プロキシーの Egress
NetworkPolicyが作成されたことを確認します。$ oc get networkpolicy eso-sys-allow-proxy-egress -n external-secrets -o yamlポリシーには、設定したプロキシー URL から導出されるポートでの Transmission Control Protocol (TCP) トラフィックを許可する Egress ルールが表示されるはずです。
以下のコマンドを実行して、プロキシー設定が
external-secretsのデプロイメントに適用されていることを確認します。$ oc set env deployment/external-secrets -n external-secrets --list | grep -i proxy