restartPolicy: Unsupported value: "Never": supported values: "Always"

3/14/2019

I have the following configuration for my pod:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: my-app
  labels:
    app: my-app
spec:
  serviceName: my-app
  replicas: 1
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      restartPolicy: Never
      containers:
      - name: my-app
        image: myregistry:443/mydomain/my-app
        imagePullPolicy: Always

And it deploys fine without the restartPolicy. However, I do not want the process to be run again once finished, hence I added the 'restartPolicy: Never'. Unfortunately I get the following error when I attempt to deploy:

Error from server (Invalid): error when creating "stack.yaml": StatefulSet.apps "my-app" is invalid: spec.template.spec.restartPolicy: Unsupported value: "Never": supported values: "Always"

What am I missing?

Thanks

-- João Matos
kubernetes

2 Answers

3/14/2019

Please see https://github.com/kubernetes/kubernetes/issues/24725

It appears that only "Always" is supported.

-- snowdesert
Source: StackOverflow

3/14/2019

You should use a Job controller instead of a StatefulSet:

A Job creates one or more Pods and ensures that a specified number of them successfully terminate. As pods successfully complete, the Job tracks the successful completions.

Take a look at Handling Pod and Container Failures section, which explains the effects of using restartPolicy with values OnFailure or Never, combined with another configs such as parallelism, completions and backoffLimit.

-- Eduardo Baitello
Source: StackOverflow