diff --git a/helm/cert-manager-webhook-ovh/ops/templates/rbac-webhook.yaml b/helm/cert-manager-webhook-ovh/ops/templates/rbac-webhook.yaml new file mode 100644 index 0000000..02c4851 --- /dev/null +++ b/helm/cert-manager-webhook-ovh/ops/templates/rbac-webhook.yaml @@ -0,0 +1,42 @@ +# ClusterRole pour permettre au webhook OVH de lire les secrets OVH +# Le ServiceAccount du webhook doit pouvoir lire le secret cert-manager-webhook-ovh +# dans le namespace cert-manager-ops (où cert-manager est déployé) +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: cert-manager-webhook-ovh:secrets + labels: + app.kubernetes.io/name: cert-manager-webhook-ovh + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} +rules: + - apiGroups: + - "" + resources: + - secrets + # Permissions pour lire les secrets dans le namespace cert-manager-ops + verbs: + - get + - list +--- +# ClusterRoleBinding pour lier le ClusterRole au ServiceAccount du webhook +# Le ServiceAccount est créé par le chart officiel cert-manager-webhook-ovh +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: cert-manager-webhook-ovh:secrets + labels: + app.kubernetes.io/name: cert-manager-webhook-ovh + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cert-manager-webhook-ovh:secrets +subjects: + # Le ServiceAccount du webhook (nom basé sur le release name du chart officiel) + # Le chart officiel crée un ServiceAccount avec le nom du release + - kind: ServiceAccount + name: {{ .Release.Name }} + namespace: {{ .Release.Namespace }} +