* fix(spire-server): preserve webhook order in patch hooks Signed-off-by: Christoph Manns <[email protected]> * test(spire): cover webhook patch order Signed-off-by: Christoph Manns <[email protected]> * fix(spire-server): honor effective hook setting Signed-off-by: Christoph Manns <[email protected]> * Apply suggestion from @kfox1111 Signed-off-by: kfox1111 <[email protected]> --------- Signed-off-by: Christoph Manns <[email protected]> Signed-off-by: kfox1111 <[email protected]> Signed-off-by: kfox1111 <[email protected]> Co-authored-by: kfox1111 <[email protected]> Co-authored-by: kfox1111 <[email protected]>
106 lines
3.9 KiB
YAML
106 lines
3.9 KiB
YAML
{{- if not .Values.externalServer }}
|
|
{{- if eq ((dig "installAndUpgradeHooks" "enabled" .Values.controllerManager.installAndUpgradeHook.enabled .Values.global) | toString) "true" }}
|
|
{{- if eq .Values.controllerManager.staticManifestMode "off" }}
|
|
{{- if and (eq (.Values.controllerManager.enabled | toString) "true") .Values.controllerManager.validatingWebhookConfiguration.enabled }}
|
|
{{- if eq .Values.controllerManager.validatingWebhookConfiguration.failurePolicy "Fail" }}
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: {{ include "spire-server.serviceAccountName" . }}-pre-upgrade
|
|
namespace: {{ include "spire-server.namespace" . }}
|
|
labels:
|
|
{{- include "spire-server.labels" . | nindent 4 }}
|
|
annotations:
|
|
"helm.sh/hook": pre-upgrade
|
|
"helm.sh/hook-delete-policy": before-hook-creation, hook-succeeded, hook-failed
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: {{ include "spire-server.fullname" . }}-pre-upgrade
|
|
annotations:
|
|
"helm.sh/hook": pre-upgrade
|
|
"helm.sh/hook-delete-policy": before-hook-creation, hook-succeeded, hook-failed
|
|
rules:
|
|
- apiGroups: ["admissionregistration.k8s.io"]
|
|
resources: ["validatingwebhookconfigurations"]
|
|
resourceNames: [{{ printf "%s-%s-webhook" .Release.Namespace (include "spire-controller-manager.fullname" .) | quote }}]
|
|
verbs: ["get", "patch"]
|
|
---
|
|
kind: ClusterRoleBinding
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
metadata:
|
|
name: {{ include "spire-server.fullname" . }}-pre-upgrade
|
|
annotations:
|
|
"helm.sh/hook": pre-upgrade
|
|
"helm.sh/hook-delete-policy": before-hook-creation, hook-succeeded, hook-failed
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: {{ include "spire-server.serviceAccountName" . }}-pre-upgrade
|
|
namespace: {{ include "spire-server.namespace" . }}
|
|
roleRef:
|
|
kind: ClusterRole
|
|
name: {{ include "spire-server.fullname" . }}-pre-upgrade
|
|
apiGroup: rbac.authorization.k8s.io
|
|
---
|
|
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: {{ include "spire-server.fullname" . }}-pre-upgrade
|
|
namespace: {{ include "spire-server.namespace" . }}
|
|
labels:
|
|
{{- include "spire-server.labels" . | nindent 4 }}
|
|
annotations:
|
|
"helm.sh/hook": pre-upgrade
|
|
"helm.sh/hook-delete-policy": before-hook-creation, hook-succeeded, hook-failed
|
|
spec:
|
|
template:
|
|
metadata:
|
|
name: {{ include "spire-server.fullname" . }}-pre-upgrade
|
|
spec:
|
|
{{- with .Values.tolerations }}
|
|
tolerations:
|
|
{{- toYaml . | nindent 8 }}
|
|
{{- end }}
|
|
restartPolicy: Never
|
|
{{- with (coalesce .Values.imagePullSecrets .Values.global.imagePullSecrets) }}
|
|
imagePullSecrets:
|
|
{{- toYaml . | nindent 8 }}
|
|
{{- end }}
|
|
serviceAccountName: {{ include "spire-server.serviceAccountName" . }}-pre-upgrade
|
|
securityContext:
|
|
{{- include "spire-lib.podsecuritycontext" . | nindent 8 }}
|
|
containers:
|
|
- name: post-install-job
|
|
securityContext:
|
|
{{- include "spire-lib.securitycontext" . | nindent 10 }}
|
|
image: {{ template "spire-lib.kubectl-image" (dict "appVersion" $.Chart.AppVersion "image" .Values.tools.kubectl.image "global" .Values.global "KubeVersion" .Capabilities.KubeVersion.Version) }}
|
|
args:
|
|
- patch
|
|
- validatingwebhookconfiguration
|
|
- {{ printf "%s-%s-webhook" .Release.Namespace (include "spire-controller-manager.fullname" .) }}
|
|
- --type=strategic
|
|
- -p
|
|
- |
|
|
{
|
|
"webhooks":[
|
|
{
|
|
"name":"vclusterfederatedtrustdomain.kb.io",
|
|
"failurePolicy":"Ignore"
|
|
},
|
|
{
|
|
"name":"vclusterspiffeid.kb.io",
|
|
"failurePolicy":"Ignore"
|
|
}
|
|
]
|
|
}
|
|
{{- with (((.Values).global).installAndUpgradeHooks).resources }}
|
|
resources:
|
|
{{- toYaml . | nindent 10 }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|