Jobs not deleting after completion with ttlSecondsAfterFinished

Viewed 12618

I have a service that deploys thousands of short lived jobs on Kubernetes each day. I am trying to get Kubernetes to delete these jobs after completion using the functionality described here:

https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#clean-up-finished-jobs-automatically

The job completes, but the Job remains in the cluster after the time limit expressed in ttlSecondsAfterFinished.

I'm testing this on GKE and my master node is running 1.12.7-gke.25 I understand this is an alpha feature, but I haven't gotten a single Job to be deleted.

apiVersion: batch/v1 
kind: Job
metadata:
  name: ttl-test
spec:
  ttlSecondsAfterFinished: 100
  template:
    metadata:
      name: ttl-test 
    spec:
      containers:
      - name: test-container
        image: myimage
1 Answers

In Kubernetes v1.21 the TTL Controller is in beta and enabled by default.

Until Kubernetes v1.20 it was an alpha feature. If you want to use it with a Kubernetes version older than v1.21, make sure alpha features are enabled on your GKE cluster. You can check this on the GCP console UI under Clusters / <your_cluster> / Details / Kubernetes alpha features.

Related