diff --git a/packages/system/seaweedfs/templates/hook.yaml b/packages/system/seaweedfs/templates/hook.yaml new file mode 100644 index 00000000..133357ab --- /dev/null +++ b/packages/system/seaweedfs/templates/hook.yaml @@ -0,0 +1,84 @@ +{{- $shouldRunUpdateHook := true }} +{{- $configMap := lookup "v1" "ConfigMap" .Release.Namespace "seaweedfs-deployed-version" }} +{{- if $configMap }} + {{- $deployedVersion := dig "data" "version" "0" $configMap }} + {{- if ge $deployedVersion "1" }} + {{- $shouldRunUpdateHook = false }} + {{- end }} +{{- end }} + +{{- if $shouldRunUpdateHook }} +--- +apiVersion: batch/v1 +kind: Job +metadata: + name: seaweedfs-hook + annotations: + helm.sh/hook: pre-upgrade + helm.sh/hook-weight: "1" + helm.sh/hook-delete-policy: hook-succeeded,before-hook-creation +spec: + template: + metadata: + labels: + policy.cozystack.io/allow-to-apiserver: "true" + spec: + serviceAccountName: seaweedfs-hook + containers: + - name: kubectl + image: bitnami/kubectl:latest + command: + - sh + args: + - -exc + - |- + kubectl --namespace={{ .Release.Namespace }} delete --cascade=orphan --ignore-not-found \ + sts/seaweedfs-filer sts/seaweedfs-master sts/seaweedfs-volume deploy/seaweedfs-objectstorage-provisioner + restartPolicy: Never +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + annotations: + helm.sh/hook: pre-upgrade + helm.sh/hook-weight: "1" + helm.sh/hook-delete-policy: hook-succeeded,before-hook-creation + name: seaweedfs-hook +rules: +- apiGroups: + - "apps" + resources: + - statefulsets + - deployments + verbs: + - get + - list + - watch + - delete +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: seaweedfs-hook + annotations: + helm.sh/hook: pre-upgrade + helm.sh/hook-weight: "1" + helm.sh/hook-delete-policy: hook-succeeded,before-hook-creation +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: seaweedfs-hook +subjects: + - kind: ServiceAccount + name: seaweedfs-hook + namespace: {{ .Release.Namespace | quote }} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: seaweedfs-hook + annotations: + helm.sh/hook: pre-upgrade + helm.sh/hook-weight: "1" + helm.sh/hook-delete-policy: hook-succeeded,before-hook-creation +{{- end }} diff --git a/packages/system/seaweedfs/templates/version.yaml b/packages/system/seaweedfs/templates/version.yaml new file mode 100644 index 00000000..f80f13b6 --- /dev/null +++ b/packages/system/seaweedfs/templates/version.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: seaweedfs-deployed-version +data: + version: "1"