From 6b68363a461d71df768776844c7930063e0d5f8f Mon Sep 17 00:00:00 2001 From: Maksim Fedotov Date: Wed, 22 Sep 2021 12:13:43 +0300 Subject: [PATCH] build(helm): additional webhook configuration in chart --- .../mutatingwebhookconfiguration.yaml | 2 +- .../validatingwebhookconfiguration.yaml | 37 ++++++-------- charts/capsule/values.yaml | 49 ++++++++++++++++++- 3 files changed, 62 insertions(+), 26 deletions(-) diff --git a/charts/capsule/templates/mutatingwebhookconfiguration.yaml b/charts/capsule/templates/mutatingwebhookconfiguration.yaml index 42f4f7bc..365f6c8d 100644 --- a/charts/capsule/templates/mutatingwebhookconfiguration.yaml +++ b/charts/capsule/templates/mutatingwebhookconfiguration.yaml @@ -19,7 +19,7 @@ webhooks: namespace: {{ .Release.Namespace }} path: /namespace-owner-reference port: 443 - failurePolicy: Fail + failurePolicy: {{ .Values.webhooks.namespaceOwnerReference.failurePolicy }} matchPolicy: Equivalent name: owner.namespace.capsule.clastix.io namespaceSelector: {} diff --git a/charts/capsule/templates/validatingwebhookconfiguration.yaml b/charts/capsule/templates/validatingwebhookconfiguration.yaml index ac8109b4..46fbd6b1 100644 --- a/charts/capsule/templates/validatingwebhookconfiguration.yaml +++ b/charts/capsule/templates/validatingwebhookconfiguration.yaml @@ -19,13 +19,11 @@ webhooks: namespace: {{ .Release.Namespace }} path: /cordoning port: 443 - failurePolicy: Fail + failurePolicy: {{ .Values.webhooks.cordoning.failurePolicy }} matchPolicy: Equivalent name: cordoning.tenant.capsule.clastix.io namespaceSelector: - matchExpressions: - - key: capsule.clastix.io/tenant - operator: Exists + {{- toYaml .Values.webhooks.cordoning.namespaceSelector | nindent 4}} objectSelector: {} rules: - apiGroups: @@ -51,10 +49,11 @@ webhooks: namespace: {{ .Release.Namespace }} path: /ingresses port: 443 - failurePolicy: Fail + failurePolicy: {{ .Values.webhooks.ingresses.failurePolicy }} matchPolicy: Equivalent name: ingress.capsule.clastix.io namespaceSelector: + {{- toYaml .Values.webhooks.ingresses.namespaceSelector | nindent 4}} matchExpressions: - key: capsule.clastix.io/tenant operator: Exists @@ -84,7 +83,7 @@ webhooks: namespace: {{ .Release.Namespace }} path: /namespaces port: 443 - failurePolicy: Fail + failurePolicy: {{ .Values.webhooks.namespaces.failurePolicy }} matchPolicy: Equivalent name: namespaces.capsule.clastix.io namespaceSelector: {} @@ -113,13 +112,11 @@ webhooks: namespace: {{ .Release.Namespace }} path: /networkpolicies port: 443 - failurePolicy: Fail + failurePolicy: {{ .Values.webhooks.networkpolicies.failurePolicy }} matchPolicy: Equivalent name: networkpolicies.capsule.clastix.io namespaceSelector: - matchExpressions: - - key: capsule.clastix.io/tenant - operator: Exists + {{- toYaml .Values.webhooks.networkpolicies.namespaceSelector | nindent 4}} objectSelector: {} rules: - apiGroups: @@ -144,13 +141,11 @@ webhooks: namespace: {{ .Release.Namespace }} path: /pods port: 443 - failurePolicy: Fail + failurePolicy: {{ .Values.webhooks.pods.failurePolicy }} matchPolicy: Exact name: pods.capsule.clastix.io namespaceSelector: - matchExpressions: - - key: capsule.clastix.io/tenant - operator: Exists + {{- toYaml .Values.webhooks.pods.namespaceSelector | nindent 4}} objectSelector: {} rules: - apiGroups: @@ -173,12 +168,10 @@ webhooks: name: {{ include "capsule.fullname" . }}-webhook-service namespace: capsule-system path: /persistentvolumeclaims - failurePolicy: Fail + failurePolicy: {{ .Values.webhooks.persistentvolumeclaims.failurePolicy }} name: pvc.capsule.clastix.io namespaceSelector: - matchExpressions: - - key: capsule.clastix.io/tenant - operator: Exists + {{- toYaml .Values.webhooks.persistentvolumeclaims.namespaceSelector | nindent 4}} objectSelector: {} rules: - apiGroups: @@ -202,13 +195,11 @@ webhooks: namespace: {{ .Release.Namespace }} path: /services port: 443 - failurePolicy: Fail + failurePolicy: {{ .Values.webhooks.services.failurePolicy }} matchPolicy: Exact name: services.capsule.clastix.io namespaceSelector: - matchExpressions: - - key: capsule.clastix.io/tenant - operator: Exists + {{- toYaml .Values.webhooks.services.namespaceSelector | nindent 4}} objectSelector: {} rules: - apiGroups: @@ -233,7 +224,7 @@ webhooks: namespace: {{ .Release.Namespace }} path: /tenants port: 443 - failurePolicy: Fail + failurePolicy: {{ .Values.webhooks.tenants.failurePolicy }} matchPolicy: Exact name: tenants.capsule.clastix.io namespaceSelector: {} diff --git a/charts/capsule/values.yaml b/charts/capsule/values.yaml index 7024c7be..a5593801 100644 --- a/charts/capsule/values.yaml +++ b/charts/capsule/values.yaml @@ -42,8 +42,6 @@ jobs: repository: quay.io/clastix/kubectl pullPolicy: IfNotPresent tag: "v1.20.7" -mutatingWebhooksTimeoutSeconds: 30 -validatingWebhooksTimeoutSeconds: 30 imagePullSecrets: [] serviceAccount: create: true @@ -80,3 +78,50 @@ customLabels: {} # Additional annotations customAnnotations: {} + +# Webhooks configurations +webhooks: + namespaceOwnerReference: + failurePolicy: Fail + cordoning: + failurePolicy: Fail + namespaceSelector: + matchExpressions: + - key: capsule.clastix.io/tenant + operator: Exists + ingresses: + failurePolicy: Fail + namespaceSelector: + matchExpressions: + - key: capsule.clastix.io/tenant + operator: Exists + namespaces: + failurePolicy: Fail + networkpolicies: + failurePolicy: Fail + namespaceSelector: + matchExpressions: + - key: capsule.clastix.io/tenant + operator: Exists + pods: + failurePolicy: Fail + namespaceSelector: + matchExpressions: + - key: capsule.clastix.io/tenant + operator: Exists + persistentvolumeclaims: + failurePolicy: Fail + namespaceSelector: + matchExpressions: + - key: capsule.clastix.io/tenant + operator: Exists + tenants: + failurePolicy: Fail + services: + failurePolicy: Fail + namespaceSelector: + matchExpressions: + - key: capsule.clastix.io/tenant + operator: Exists +mutatingWebhooksTimeoutSeconds: 30 +validatingWebhooksTimeoutSeconds: 30