Skip to content

Instantly share code, notes, and snippets.

@magickatt
Last active April 15, 2024 20:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save magickatt/e2778142d832e39f07ed18c13f4e46b5 to your computer and use it in GitHub Desktop.
Save magickatt/e2778142d832e39f07ed18c13f4e46b5 to your computer and use it in GitHub Desktop.
Restart Kubernetes Deployment on a schedule using a CronJob
apiVersion: batch/v1
kind: CronJob
metadata:
name: "restart-{{ $application.name }}"
namespace: "{{ $.Release.Namespace }}"
spec:
concurrencyPolicy: Forbid
schedule: "* * * * *" # crontab.guru
jobTemplate:
spec:
backoffLimit: 3
activeDeadlineSeconds: 600
template:
spec:
serviceAccountName: pod-restarter
restartPolicy: Never
containers:
- name: kubectl
image: bitnami/kubectl:1.28 # bitnami.com/stack/kubectl/containers
command:
- 'kubectl'
- '--namespace'
- '{{ $application.namespace }}'
- 'rollout'
- 'restart'
- 'deployment/{{ $application.name }}'
---
kind: ServiceAccount
apiVersion: v1
metadata:
name: pod-restarter
namespace: {{ .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: pod-restarter
rules:
- apiGroups: ["apps", "extensions"]
resources: ["deployments"]
verbs: ["get", "patch", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: pod-restarter
namespace: {{ $application.namespace }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: pod-restarter
subjects:
- kind: ServiceAccount
name: pod-restarter
namespace: {{ $.Release.Namespace }}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment