Я развертываю OPA на кластере AKS, используя официальный рулевой график. Чтобы получить сертификат и ключ, я добавил aad-pod-identity, а также keyvault flexvol для извлечения секрета из Azure KV в том Kubernetes в качестве секрета. Я могу использовать сертификат и ключ отдельно, но не могу сослаться на смонтированный сертификат в разделе «Проверка веб-конфигурации» >> caBundle. Я довольно новичок в kubernetes, поэтому мне нужна помощь, как я могу ссылаться на секрет тома в caBundle, чтобы он считывал значение Dynami c, а не на то, чтобы я выдал сертификат в виде строки, закодированной в base64. Прочитал про CAInjector, но нужно знать более чистый способ. Было бы полезно, если бы кто-то мог помочь мне в реализации примера. deploy.yaml
- "--config-file=/config/config.yaml"
{{- end }}
- "--tls-cert-file=/certs/tls-crt"
- "--tls-private-key-file=/certs/tls-key"
- "--addr=0.0.0.0:{{ .Values.port }}"
- "--log-level={{ .Values.logLevel }}"
- "--log-format={{ .Values.logFormat }}"
{{- if .Values.authz.enabled }}
- "--authentication=token"
- "--authorization=basic"
- "--ignore=.*"
---
volumes:
- name: certs
flexVolume:
driver: "azure/kv"
options:
usepodidentity: "true"
keyvaultname: {{ .Values.azure.stratusKeyVault }}
keyvaultobjectnames: tls-crt;tls-key
keyvaultobjecttypes: secret;secret
tenantid: {{ .Values.azure.tenantId }}
webhookconfiguration.yaml
apiVersion: admissionregistration.k8s.io/v1beta1
metadata:
name: {{ template "opa.fullname" . }}
annotations:
{{- if .Values.certManager.enabled }}
certmanager.k8s.io/inject-ca-from: {{ printf "%s/%s" .Release.Namespace (include "opa.rootCACertificate" .) | quote }}
{{- end }}
labels:
{{ include "opa.labels.standard" . | indent 4 }}
webhooks:
- name: webhook.openpolicyagent.org
{{- with .Values.admissionControllerNamespaceSelector }}
namespaceSelector:
{{ toYaml . | indent 6 }}
{{ end }}
failurePolicy: {{ .Values.admissionControllerFailurePolicy }}
rules:
{{ toYaml .Values.admissionControllerRules | indent 6 }}
clientConfig:
{{ if not .Values.certManager.enabled }}
{{ if .Values.generateAdmissionControllerCerts }}
caBundle: {{ b64enc $ca.Cert }}
{{ else }}
caBundle: ""
{{ end }}
{{ end }}
service:
name: {{ template "opa.fullname" . }}
namespace: {{ .Release.Namespace }}
sideEffects: {{ .Values.admissionControllerSideEffect }}