この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

これは未公開の文書です Admission Controller 1.34-dev.

PolicyServersをプライベートレジストリで使用するように設定する

PolicyServersをプライベートOCIレジストリの資格情報を使用するように構成することが可能です。これにより、これらのPolicyServersはパブリックおよびプライベートレジストリからポリシーをダウンロードできます。

PolicyServerをプライベートレジストリにアクセスするように構成すると、その上で実行されるポリシーもこれらのレジストリにアクセスできます。これは、ポリシーが提供されたSDKまたはホスト機能APIを使用する場合に機能します。これは、PolicyServersが定義されたポリシーSDKおよび低レベルのホスト機能APIを通じてその機能を公開するためです。これは、コンテナイメージの署名を検証するポリシーにおいても同様です。

これを達成するためには、プライベートレジストリの資格情報を含むシークレットを作成する必要があります。次に、PolicyServersのリソースとHelmチャートをそれを使用するように構成します。

シークレットの作成

PolicyServersは通常のhttps://kubernetes.io/docs/concepts/configuration/secret/#docker-config-secrets[Docker設定シークレット]をサポートしており、タイプ`kubernetes.io/dockercfg`またはタイプ`kubernetes.io/dockerconfigjson`のいずれかです。これらのシークレットは`kubectl create secret docker-registry`を使用して作成できます。

シークレットはPolicyServerを実行しているネームスペースで作成します。 これは最小特権の原則に従い、異なるPolicyServersが異なるレジストリからOCIアーティファクトを独立して検証できるようにします。

このシークレットは次のコマンドでPolicyServerのために作成します:

kubectl --namespace kubewarden create secret docker-registry secret-ghcr-docker \
  --docker-username=myuser \
  --docker-password=mypass123 \
  --docker-server=myregistry.io

シークレットにユーザーシークレットで指定されたラベルを付けて、Rancher Backup Operatorによって行われるバックアップの一部にします。

Dockerシークレットの作成方法についての詳細は、https://kubernetes.io/docs/concepts/configuration/secret/#docker-config-secrets[Kubernetesドキュメント]を参照してください。

PolicyServersでのシークレットの使用

シークレットを作成したら、PolicyServerインスタンスを設定する必要があります。spec.imagePullSecret フィールドに資格情報を含むシークレットの名前を設定してください:

# Example of a PolicyServer using a private registry
apiVersion: policies.kubewarden.io/v1
kind: PolicyServer
metadata:
  name: default
spec:
  image: ghcr.io/kubewarden/policy-server:v1.1.1
  serviceAccountName: policy-server
  replicas: 1
  annotations:
  imagePullSecret: "secret-ghcr-docker"

Helm チャートでのシークレットの使用

kubewarden-defaults Helm チャートからデプロイされると、policyServer.imagePullSecret 値をシークレット名に設定できます。その後、作成されたデフォルトのPolicyServerは、あなたのプライベートレジストリからポリシーをダウンロードできるようになります:

# values file example
policyServer:
  telemetry:
    enabled: False
  imagePullSecret: secret-ghcr-docker