Repository navigation
fix(watcher): Add health probes to the watcher Deployment - #1505
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Supported high-availability installations use a separate watcher StatefulSet that still lacks these probes.
1 open finding
What changed in this PR
Adds Kubernetes health probes to the base Tekton Results watcher Deployment using its existing HTTP endpoints.
Changes:
- Declares health port 8080.
- Adds startup, readiness, and liveness probes.
| File | Description |
|---|---|
| config/base/watcher.yaml | Configures HTTP health probes for the watcher Deployment. |
🧠 Review effort: Balanced
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
| containerPort: 8008 | ||
| - name: health | ||
| containerPort: 8080 | ||
| startupProbe: |
There was a problem hiding this comment.
@krishhlogan can you please address this comment. It is related to #1434 . Other than that the change is good.
0cb8527 to
f7dfe4a
Compare
The watcher Deployment declared no startupProbe, readinessProbe, or livenessProbe, so a wedged watcher pod stayed Ready 1/1 indefinitely and Kubernetes never restarted it, silently halting reconciliation. The binary already serves /health and /readiness on port 8080 via Knative's sharedmain; only the manifest was missing. Adds all three probes mirroring config/base/api.yaml. Plain HTTP, since the Knative health server is not TLS. Fixes tektoncd#1466
f7dfe4a to
d81b7be
Compare
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: enarha The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Also manually tested both deployment with single pod as well as scaled deployment (using statefulset) with 3 pods. In both cases the probes were properly set on the watcher pods. |

Changes
The watcher Deployment declared no startupProbe, readinessProbe, or livenessProbe, so a wedged watcher pod stayed Ready 1/1 indefinitely and Kubernetes never restarted it, silently halting reconciliation.
The binary already serves /health and /readiness on port 8080 via Knative's sharedmain; only the manifest was missing.
Declare port 8080 and add all three probes, mirroring config/base/api.yaml. Plain HTTP, since the Knative health server is not TLS.
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you review them:
/kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tepRelease Notes