Skip to content

Instantly share code, notes, and snippets.

@k0uki
Created November 27, 2019 10:00
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 k0uki/6de288450db8ade3ca476087beb0639e to your computer and use it in GitHub Desktop.
Save k0uki/6de288450db8ade3ca476087beb0639e to your computer and use it in GitHub Desktop.
Delete complete k8s jobs everyday
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
name: job-cleaner
name: job-cleaner
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
labels:
name: job-admin
name: job-admin
rules:
- apiGroups: ['*']
resources: ['cronjob', 'cronjobs']
verbs: ['*']
- nonResourceURLs: ['*']
verbs: ['*']
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
labels:
name: job-cleaner
name: job-cleaner
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: job-admin
subjects:
- kind: ServiceAccount
name: job-cleaner
namespace: default
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: cleanup-completed-jobs
spec:
schedule: "0 20 * * *" # 04:00 at JST
concurrencyPolicy: Forbid
startingDeadlineSeconds: 60
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 3
suspend: false
jobTemplate:
spec:
parallelism: 1
backoffLimit: 1
template:
spec:
serviceAccountName: job-cleaner
restartPolicy: Never
containers:
- image: bitnami/kubectl:1.14
name: job-cleaner
command: ["/bin/sh"]
args: ["-c", "kubectl delete jobs --field-selector status.successful=1"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment