Skip to content

Instantly share code, notes, and snippets.

@Maurifc
Last active September 6, 2022 18:12
Show Gist options
  • Save Maurifc/c788bf1710e9a3195dd9355e8cc0bd1e to your computer and use it in GitHub Desktop.
Save Maurifc/c788bf1710e9a3195dd9355e8cc0bd1e to your computer and use it in GitHub Desktop.
K8s - Boilerplate for a Helm hook job
# Annotation Value Description
#
# pre-install Executes after templates are rendered, but before any resources are created in Kubernetes
# post-install Executes after all resources are loaded into Kubernetes
# pre-delete Executes on a deletion request before any resources are deleted from Kubernetes
# post-delete Executes on a deletion request after all of the release's resources have been deleted
# pre-upgrade Executes on an upgrade request after templates are rendered, but before any resources are updated
# post-upgrade Executes on an upgrade request after all resources have been upgraded
# pre-rollback Executes on a rollback request after templates are rendered, but before any resources are rolled back
# post-rollback Executes on a rollback request after all resources have been modified
# test Executes when the Helm test subcommand is invoked ( view test docs)
#
apiVersion: batch/v1
kind: Job
metadata:
name: "{{ .Release.Name }}"
labels:
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io/instance: {{ .Release.Name | quote }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
annotations:
# This is what defines this resource as a hook. Without this line, the
# job is considered part of the release.
"helm.sh/hook": post-install
"helm.sh/hook-weight": "-5"
"helm.sh/hook-delete-policy": hook-succeeded
spec:
template:
metadata:
name: "{{ .Release.Name }}"
labels:
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io/instance: {{ .Release.Name | quote }}
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
spec:
restartPolicy: Never
containers:
- name: post-install-job
image: "alpine:3.3"
command: ["/bin/sleep","{{ default "10" .Values.sleepyTime }}"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment