diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..32312a0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Exuberant Ctags +**/tags diff --git a/helm-chart/kubemod/Chart.yaml b/helm-chart/kubemod/Chart.yaml index 641ecdd..0bd4f65 100644 --- a/helm-chart/kubemod/Chart.yaml +++ b/helm-chart/kubemod/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 name: kubemod description: KubeMod is a universal Kubernetes mutating operator. -version: 0.1.9 +version: 0.2.0 appVersion: "0.13.0" home: https://github.com/kubemod/kubemod sources: diff --git a/helm-chart/kubemod/templates/mutatingwebhookconfiguration.yaml b/helm-chart/kubemod/templates/mutatingwebhookconfiguration.yaml index 8a60982..46347e8 100644 --- a/helm-chart/kubemod/templates/mutatingwebhookconfiguration.yaml +++ b/helm-chart/kubemod/templates/mutatingwebhookconfiguration.yaml @@ -36,15 +36,11 @@ webhooks: name: {{ include "kubemod.fullname" . }}-webhook-service namespace: {{ .Release.Namespace }} path: /dragnet-webhook - failurePolicy: Ignore + failurePolicy: {{ .Values.webhook.failurePolicy }} matchPolicy: Equivalent name: dragnet.kubemod.io namespaceSelector: - matchExpressions: - - key: admission.kubemod.io/ignore - operator: NotIn - values: - - "true" + {{- toYaml .Values.webhook.namespaceSelector | nindent 4 }} reinvocationPolicy: IfNeeded rules: - apiGroups: @@ -55,27 +51,7 @@ webhooks: - CREATE - UPDATE resources: - - namespaces - - nodes - - configmaps - - persistentvolumeclaims - - persistentvolumes - - secrets - - services - - daemonsets - - deployments - - replicasets - - statefulsets - - horizontalpodautoscalers - - ingresses - - pods - - cronjobs - - jobs - - serviceaccounts - - clusterrolebindings - - clusterroles - - rolebindings - - roles + {{- toYaml .Values.webhook.resources | nindent 4 }} scope: '*' sideEffects: None - timeoutSeconds: 3 \ No newline at end of file + timeoutSeconds: 3 diff --git a/helm-chart/kubemod/values.schema.json b/helm-chart/kubemod/values.schema.json index 68929c2..05534cd 100644 --- a/helm-chart/kubemod/values.schema.json +++ b/helm-chart/kubemod/values.schema.json @@ -95,6 +95,20 @@ }, "tolerations": { "type": "array" + }, + "webhook": { + "type": "object", + "properties": { + "failurePolicy": { + "type": "string" + }, + "namespaceSelector": { + "type": "object" + }, + "resources": { + "type": "array" + } + } } } } diff --git a/helm-chart/kubemod/values.yaml b/helm-chart/kubemod/values.yaml index 6061494..f13ae93 100644 --- a/helm-chart/kubemod/values.yaml +++ b/helm-chart/kubemod/values.yaml @@ -66,6 +66,41 @@ tolerations: [] affinity: {} +# MutatingWebhookConfiguration +webhook: + # See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#mutatingwebhook-v1-admissionregistration-k8s-io + failurePolicy: Ignore + # See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#labelselector-v1-meta + namespaceSelector: + matchExpressions: + - key: admission.kubemod.io/ignore + operator: NotIn + values: + - "true" + # See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#rulewithoperations-v1-admissionregistration-k8s-io + resources: + - namespaces + - nodes + - configmaps + - persistentvolumeclaims + - persistentvolumes + - secrets + - services + - daemonsets + - deployments + - replicasets + - statefulsets + - horizontalpodautoscalers + - ingresses + - pods + - cronjobs + - jobs + - serviceaccounts + - clusterrolebindings + - clusterroles + - rolebindings + - roles + modrules: [] # Example: # - name: pause-everything