2022-03-03 15:50:45 +00:00
---
apiVersion : v1
kind : ServiceAccount
metadata :
name : post-delete
labels :
app.kubernetes.io/part-of : nginx-service-mesh
annotations :
"helm.sh/hook": post-delete
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed
"helm.sh/hook-weight": "-5"
imagePullSecrets :
- name : {{ include "registry-key-name" . }}
---
apiVersion : rbac.authorization.k8s.io/v1
kind : ClusterRole
metadata :
name : post-delete.builtin.nsm.nginx
labels :
app.kubernetes.io/part-of : nginx-service-mesh
annotations :
"helm.sh/hook": post-delete
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed
"helm.sh/hook-weight": "-5"
rules :
2023-02-16 16:33:45 +00:00
- apiGroups : [ "" ]
resources : [ "secrets" ]
verbs : [ "delete" ]
- apiGroups : [ "" ]
resources : [ "namespaces" ]
verbs : [ "list" ]
- apiGroups : [ "spiffeid.spiffe.io" ]
resources : [ "spiffeids" ]
verbs : [ "get" , "list" , "patch" , "update" ]
2022-03-03 15:50:45 +00:00
{{- if eq .Values.environment "openshift" }}
2023-02-16 16:33:45 +00:00
- apiGroups : [ "security.openshift.io" ]
resources : [ "securitycontextconstraints" ]
resourceNames : [ "post-delete-permissions.builtin.nsm.nginx" ]
verbs : [ "use" ]
2022-03-03 15:50:45 +00:00
{{- end }}
---
apiVersion : rbac.authorization.k8s.io/v1
kind : ClusterRoleBinding
metadata :
name : post-delete.builtin.nsm.nginx
labels :
app.kubernetes.io/part-of : nginx-service-mesh
annotations :
"helm.sh/hook": post-delete
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed
"helm.sh/hook-weight": "-5"
roleRef :
apiGroup : rbac.authorization.k8s.io
kind : ClusterRole
name : post-delete.builtin.nsm.nginx
subjects :
- kind : ServiceAccount
name : post-delete
namespace : {{ .Release.Namespace }}
{{- if (include "docker-config-json" .) }}
---
apiVersion : v1
kind : Secret
metadata :
name : {{ include "registry-key-name" . }}
labels :
app.kubernetes.io/part-of : nginx-service-mesh
annotations :
"helm.sh/hook": post-delete
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed
"helm.sh/hook-weight": "-5"
data :
.dockerconfigjson : {{ include "docker-config-json" . | b64enc }}
type : kubernetes.io/dockerconfigjson
{{- end }}
---
apiVersion : batch/v1
kind : Job
metadata :
name : remove-spiffeids
labels :
app.kubernetes.io/part-of : nginx-service-mesh
annotations :
"helm.sh/hook": post-delete
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed
"helm.sh/hook-weight": "0"
spec :
template :
metadata :
name : remove-spiffeids
spec :
restartPolicy : Never
serviceAccountName : post-delete
containers :
- name : remove-spiffeids
image : {{ include "hook.image-server" . }}/kubectl
imagePullPolicy : {{ .Values.registry.imagePullPolicy }}
securityContext :
2023-02-16 16:33:45 +00:00
allowPrivilegeEscalation : false
privileged : false
runAsUser : 101 #nginx
2022-03-03 15:50:45 +00:00
command :
- /bin/sh
- -c
- |
2023-02-16 16:33:45 +00:00
for ns in $(kubectl get ns --no-headers -o custom-columns=":metadata.name"); do
2022-03-03 15:50:45 +00:00
if [ $(kubectl get spiffeids -n $ns 2>/dev/null | wc -l) -ne 0 ]; then
kubectl patch spiffeid $(kubectl get spiffeids -n $ns | awk '{print $1}' | tail -n +2) --type='merge' -p '{"metadata":{"finalizers":null}}' -n $ns
fi
done
2023-02-16 16:33:45 +00:00
{{- if (include "docker-config-json" .) }}
2022-03-03 15:50:45 +00:00
---
apiVersion : batch/v1
kind : Job
metadata :
2023-02-16 16:33:45 +00:00
name : remove-registry-secrets
2022-03-03 15:50:45 +00:00
labels :
app.kubernetes.io/part-of : nginx-service-mesh
annotations :
"helm.sh/hook": post-delete
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed
"helm.sh/hook-weight": "0"
spec :
template :
metadata :
2023-02-16 16:33:45 +00:00
name : remove-registry-secrets
2022-03-03 15:50:45 +00:00
spec :
restartPolicy : Never
serviceAccountName : post-delete
containers :
2023-02-16 16:33:45 +00:00
- name : remove-registry-secrets
2022-03-03 15:50:45 +00:00
image : {{ include "hook.image-server" . }}/kubectl
imagePullPolicy : {{ .Values.registry.imagePullPolicy }}
securityContext :
2023-02-16 16:33:45 +00:00
allowPrivilegeEscalation : false
privileged : false
runAsUser : 101 #nginx
2022-03-03 15:50:45 +00:00
command :
- /bin/sh
- -c
- |
2023-02-16 16:33:45 +00:00
for ns in $(kubectl get ns --no-headers -o custom-columns=":metadata.name" | grep -v {{ .Release.Namespace }}); do
kubectl -n $ns delete secret {{ include "registry-key-name" . }} --ignore-not-found
2022-03-03 15:50:45 +00:00
done
2023-02-16 16:33:45 +00:00
{{- end }}
2022-03-03 15:50:45 +00:00
{{- if eq .Values.environment "openshift" }}
---
apiVersion : v1
kind : ServiceAccount
metadata :
name : post-delete-csi
labels :
app.kubernetes.io/part-of : nginx-service-mesh
annotations :
"helm.sh/hook": post-delete
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed
"helm.sh/hook-weight": "-5"
imagePullSecrets :
- name : {{ include "registry-key-name" . }}
---
apiVersion : security.openshift.io/v1
kind : SecurityContextConstraints
metadata :
name : post-delete-permissions.builtin.nsm.nginx
labels :
app.kubernetes.io/part-of : nginx-service-mesh
annotations :
"helm.sh/hook": post-delete
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed
"helm.sh/hook-weight": "-5"
allowHostDirVolumePlugin : false
allowHostIPC : false
allowHostNetwork : false
allowHostPID : false
allowHostPorts : false
allowPrivilegedContainer : false
seLinuxContext :
type : MustRunAs
runAsUser :
type : RunAsAny
readOnlyRootFilesystem : false
---
apiVersion : rbac.authorization.k8s.io/v1
kind : ClusterRoleBinding
metadata :
name : post-delete-csi.builtin.nsm.nginx
labels :
app.kubernetes.io/part-of : nginx-service-mesh
annotations :
"helm.sh/hook": post-delete
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed
"helm.sh/hook-weight": "-5"
roleRef :
apiGroup : rbac.authorization.k8s.io
kind : ClusterRole
name : cluster-admin
subjects :
- kind : ServiceAccount
name : post-delete-csi
namespace : {{ .Release.Namespace }}
---
apiVersion : v1
kind : ConfigMap
metadata :
name : csi-driver-cleanup
labels :
app.kubernetes.io/part-of : nginx-service-mesh
annotations :
"helm.sh/hook": post-delete
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed
"helm.sh/hook-weight": "-5"
data :
sentinel.yaml : |
---
apiVersion : v1
kind : ServiceAccount
metadata :
name : csi-driver-sentinel
labels :
app.kubernetes.io/part-of : nginx-service-mesh
imagePullSecrets :
- name : {{ include "registry-key-name" . }}
---
apiVersion : rbac.authorization.k8s.io/v1
kind : ClusterRoleBinding
metadata :
name : csi-driver-sentinel.builtin.nsm.nginx
labels :
app.kubernetes.io/part-of : nginx-service-mesh
roleRef :
apiGroup : rbac.authorization.k8s.io
kind : ClusterRole
name : cluster-admin
subjects :
- kind : ServiceAccount
name : csi-driver-sentinel
namespace : {{ .Release.Namespace }}
---
apiVersion : batch/v1
kind : Job
metadata :
name : csi-driver-sentinel
labels :
app.kubernetes.io/part-of : nginx-service-mesh
spec :
ttlSecondsAfterFinished : 0
template :
spec :
restartPolicy : Never
serviceAccountName : csi-driver-sentinel
containers :
- name : csi-driver-sentinel
image : {{ include "hook.image-server" . }}/kubectl
imagePullPolicy : {{ .Values.registry.imagePullPolicy }}
command :
- /bin/sh
- -c
- |
while [ $(kubectl get pods -A -o=jsonpath='{.items[?(@.metadata.annotations.injector\.nsm\.nginx\.com/status=="injected")].metadata.name}' | wc -w) -gt 0 ]; do
sleep 5
done
2023-02-16 16:33:45 +00:00
kubectl delete daemonset spiffe-csi-driver --ignore-not-found
kubectl delete serviceaccount spiffe-csi-driver --ignore-not-found
kubectl delete clusterrole system:openshift:scc:nginx-mesh-spiffe-csi-driver-permissions --ignore-not-found
kubectl delete rolebinding system:openshift:scc:nginx-mesh-spiffe-csi-driver-permissions --ignore-not-found
kubectl delete scc nginx-mesh-spiffe-csi-driver-permissions --ignore-not-found
2023-04-26 12:46:19 +00:00
kubectl delete scc nginx-mesh-sidecar-permissions --ignore-not-found
2023-02-16 16:33:45 +00:00
kubectl delete secret {{ include "registry-key-name" . }} --ignore-not-found
kubectl delete serviceaccount csi-driver-sentinel --ignore-not-found
kubectl delete clusterrolebinding csi-driver-sentinel.builtin.nsm.nginx --ignore-not-found
2022-03-03 15:50:45 +00:00
{{- if (include "docker-config-json" .) }}
secret.yaml : |
---
apiVersion : v1
kind : Secret
metadata :
name : {{ include "registry-key-name" . }}
labels :
app.kubernetes.io/part-of : nginx-service-mesh
data :
.dockerconfigjson : {{ include "docker-config-json" . | b64enc }}
type : kubernetes.io/dockerconfigjson
{{- end }}
---
apiVersion : batch/v1
kind : Job
metadata :
name : csi-driver-cleanup
labels :
app.kubernetes.io/part-of : nginx-service-mesh
annotations :
"helm.sh/hook": post-delete
"helm.sh/hook-delete-policy": hook-succeeded,hook-failed
"helm.sh/hook-weight": "5"
spec :
template :
metadata :
name : csi-driver-cleanup
spec :
restartPolicy : Never
serviceAccountName : post-delete-csi
containers :
- name : csi-driver-cleanup
image : {{ include "hook.image-server" . }}/kubectl
imagePullPolicy : {{ .Values.registry.imagePullPolicy }}
securityContext :
2023-02-16 16:33:45 +00:00
allowPrivilegeEscalation : false
privileged : false
runAsUser : 101 #nginx
2022-03-03 15:50:45 +00:00
command :
- /bin/sh
- -c
- |
res=$(kubectl get pods -o=jsonpath='{.items[?(@.metadata.annotations.injector\.nsm\.nginx\.com/status=="injected")].metadata.name}' -A | wc -w)
if [ $res -eq 0 ]; then
2023-02-16 16:33:45 +00:00
kubectl delete daemonset spiffe-csi-driver --ignore-not-found
kubectl delete serviceaccount spiffe-csi-driver --ignore-not-found
kubectl delete clusterrole system:openshift:scc:nginx-mesh-spiffe-csi-driver-permissions --ignore-not-found
kubectl delete rolebinding system:openshift:scc:nginx-mesh-spiffe-csi-driver-permissions --ignore-not-found
kubectl delete scc nginx-mesh-spiffe-csi-driver-permissions --ignore-not-found
2023-04-26 12:46:19 +00:00
kubectl delete scc nginx-mesh-sidecar-permissions --ignore-not-found
2022-03-03 15:50:45 +00:00
else
{{- if (include "docker-config-json" .) }}
kubectl get secret {{ include "registry-key-name" . }}
if [ $? != 0 ]; then
kubectl create -f /tmp/config/secret.yaml
fi
{{- end }}
kubectl create -f /tmp/config/sentinel.yaml
fi
volumeMounts :
- name : sentinel
mountPath : /tmp/config
volumes :
- name : sentinel
configMap :
name : csi-driver-cleanup
{{- end }}