Skip to content

Not possible to define livenessProbes or readinessProbes on multi-container #12615

@IBMRob

Description

@IBMRob

What version of Knative?

0.9.x
0.10.x
0.11.x
Output of git describe --dirty
Red Hat OpenShift Serverless 1.20

Expected Behavior

Be able to create a multi-container service which has probes on both the containers such.
Being unable to specify probes on the additional containers could result in the container returning ready when some of the containers are not fully started meaning requests would fail

Actual Behavior

Unable to define service as it returns
admission webhook "validation.webhook.serving.knative.dev" denied the request: validation failed: must not set the field(s): spec.template.spec.containers[1].livenessProbe, spec.template.spec.containers[1].livenessProbe.failureThreshold, spec.template.spec.containers[1].livenessProbe.initialDelaySeconds, spec.template.spec.containers[1].livenessProbe.periodSeconds, spec.template.spec.containers[1].livenessProbe.successThreshold, spec.template.spec.containers[1].livenessProbe.timeoutSeconds, spec.template.spec.containers[1].readinessProbe, spec.template.spec.containers[1].readinessProbe.failureThreshold, spec.template.spec.containers[1].readinessProbe.initialDelaySeconds, spec.template.spec.containers[1].readinessProbe.periodSeconds, spec.template.spec.containers[1].readinessProbe.successThreshold,

Steps to Reproduce the Problem

Attempt to deploy the following service

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go-2
spec:
  template:
    metadata:
      creationTimestamp: null
    spec:
      containerConcurrency: 0
      containers:
        - image: 'jimmysong/knative-samples-helloworld-go:latest'
          livenessProbe:
            initialDelaySeconds: 20
            periodSeconds: 10
            timeoutSeconds: 5
            failureThreshold: 1
            successThreshold: 1
            tcpSocket:
              port: 0
          name: user-container
          ports:
            - containerPort: 8080
              name: http1
              protocol: TCP
          readinessProbe:
            initialDelaySeconds: 2
            periodSeconds: 10
            timeoutSeconds: 5
            failureThreshold: 1
            successThreshold: 1
            tcpSocket:
              port: 0
          resources: {}
        - image: 'jimmysong/knative-samples-helloworld-go:latest'
          livenessProbe:
            initialDelaySeconds: 20
            periodSeconds: 10
            timeoutSeconds: 5
            failureThreshold: 1
            successThreshold: 1
            tcpSocket:
              port: 0
          name: user-container
          readinessProbe:
            initialDelaySeconds: 2
            periodSeconds: 10
            timeoutSeconds: 5
            failureThreshold: 1
            successThreshold: 1
            tcpSocket:
              port: 0
          resources: {}
      enableServiceLinks: false
      timeoutSeconds: 300
  traffic:
    - latestRevision: true
      percent: 100

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugCategorizes issue or PR as related to a bug.lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions