kubernetes: Cannot get TTLAfterFinished to work in 1.12.1

What happened: Trying to enable the TTLAfterFinished feature gate to use the Job cleanup feature, and the feature does not work after enabling. What you expected to happen: The Job to be deleted 100s after hitting the Completed state. How to reproduce it (as minimally and precisely as possible): I added the following to the api-server and controller manifests: –feature-gates=“TTLAfterFinished=true” After a restart, both show the item present. Then launched a Job with “ttlSecondsAfterFinished: 100” set under .spec. Anything else we need to know?:

Environment:

  • Kubernetes version (use kubectl version): 1.12.1
  • Cloud provider or hardware configuration: Bare metal
  • OS (e.g. from /etc/os-release): Ubuntu 18.04
  • Kernel (e.g. uname -a): 4.15.0-34-generic
  • Install tools: kubespray
  • Others:

/kind bug

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 17 (5 by maintainers)

Most upvoted comments

TTLAfterFinished not working for me either. Am I doing it right?

$ sudo kubeadm init --pod-network-cidr=10.0.1.0/16 --feature-gates="TTLAfterFinished=true" --v=5
unrecognized feature-gate key: TTLAfterFinished
k8s.io/kubernetes/cmd/kubeadm/app/features.NewFeatureGate
        /workspace/anago-v1.17.0-rc.2.10+70132b0f130acc/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/features/features.go:144
k8s.io/kubernetes/cmd/kubeadm/app/cmd.newInitData
        /workspace/anago-v1.17.0-rc.2.10+70132b0f130acc/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go:316
k8s.io/kubernetes/cmd/kubeadm/app/cmd.NewCmdInit.func3
        /workspace/anago-v1.17.0-rc.2.10+70132b0f130acc/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go:191
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).InitData
        /workspace/anago-v1.17.0-rc.2.10+70132b0f130acc/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:183
k8s.io/kubernetes/cmd/kubeadm/app/cmd.NewCmdInit.func1
        /workspace/anago-v1.17.0-rc.2.10+70132b0f130acc/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go:139
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).execute
        /workspace/anago-v1.17.0-rc.2.10+70132b0f130acc/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:826
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).ExecuteC
        /workspace/anago-v1.17.0-rc.2.10+70132b0f130acc/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:914
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).Execute
        /workspace/anago-v1.17.0-rc.2.10+70132b0f130acc/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:864
k8s.io/kubernetes/cmd/kubeadm/app.Run
        /workspace/anago-v1.17.0-rc.2.10+70132b0f130acc/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/kubeadm.go:50
main.main
        _output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/kubeadm.go:25
runtime.main
        /usr/local/go/src/runtime/proc.go:203
runtime.goexit
        /usr/local/go/src/runtime/asm_amd64.s:1357
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-07T21:20:10Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"linux/amd64"}

Could it be that I have quotes around the feature-gate?

Also: https://github.com/kubernetes/minikube/issues/3805

It does seem to work for me:

$ minikube start --feature-gates="TTLAfterFinished=true"
$ kubectl apply -f my-cron.yml
cronjob.batch/my-cron-1 created

(where my-cron.yml contains ttlSecondsAfterFinished)

$ minikube version
minikube version: v0.34.1