If your K8s cluster support alpha features, you can use TTLAfterFinished option instead this image.
This Docker image built on Python 3.7 Alpine image. The image is designed to run by CronJob, to clear Jobs in the status of "completed" and their pods or only pods in the status of finished, or both of them.
| Option | Describe | Default value | Required |
|---|---|---|---|
| CLEANUP_RESOURCE | Type of resource for cleanup (job|pod|all) | job | No |
| CLEANUP_TIMEOUT | The time in seconds after completion of a job before deleted | 60 | No |
| KUBERNETES_NAMESPACE | Kubernetes namespace | default | No |
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: kubernetes-cleanup
automountServiceAccountToken: false
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: kubernetes-cleanup
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list", "delete"]
- apiGroups: ["batch", "extensions"]
resources: ["jobs"]
verbs: ["get", "list", "watch", "delete"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: kubernetes-cleanup
subjects:
- kind: ServiceAccount
name: kubernetes-cleanup
namespace: default
roleRef:
kind: ClusterRole
name: kubernetes-cleanup
apiGroup: rbac.authorization.k8s.io
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: kubernetes-cleanup
namespace: default
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: kubernetes-cleanup
image: gatchenko/kubernetes-cleanup:latest
env:
- name: CLEANUP_RESOURCE
value: "job"
- name: CLEANUP_TIMEOUT
value: "60"
- name: KUBERNETES_NAMESPACE
value: "default"
restartPolicy: OnFailure
serviceAccountName: kubernetes-cleanup
automountServiceAccountToken: true
Content type
Image
Digest
Size
35.3 MB
Last updated
over 6 years ago
docker pull gatchenko/kubernetes-cleanup