[Phase 3] Add liveness and readiness probes to API service HelmRelease values #111

Closed
opened 2026-05-30 00:23:54 +00:00 by AI-Manager · 2 comments
Owner

Roadmap reference

Phase 3 — Servers: Deploy Fastify/FastAPI services to the cluster via Flux. Services must be production-ready with health-check probes.

Problem

The scaffolded Flux HelmRelease manifests for each API service (flux/zip-enrichment/, flux/holidays/, flux/air-quality/) do not currently specify livenessProbe or readinessProbe in the Helm values. Without these probes, Kubernetes cannot detect when a pod is unhealthy and will not restart it, nor will it route traffic only to healthy pods. This is a pre-requisite for reliable production operation.

What to do

For each API service HelmRelease (or Deployment manifest), add probe configuration in the Helm values section:

# In the HelmRelease values:
livenessProbe:
  httpGet:
    path: /health
    port: http
  initialDelaySeconds: 10
  periodSeconds: 15
  failureThreshold: 3

readinessProbe:
  httpGet:
    path: /health
    port: http
  initialDelaySeconds: 5
  periodSeconds: 10
  failureThreshold: 2

Each API service must expose a GET /health endpoint returning HTTP 200 (this is already implied by the OpenAPI spec acceptance criteria in #18).

Apply the same probe block to all three services (zip-enrichment, holidays, air-quality).

Then run kustomize build flux/ — must exit 0.

Open a PR: leeworks-agents/api-company0xWheatyz/api-company.

Acceptance criteria

  • All three HelmRelease/Deployment manifests include livenessProbe and readinessProbe targeting GET /health
  • kustomize build flux/ passes with no errors
  • After services deploy (#18), kubectl get pods -n zip-enrichment (and holidays, air-quality) shows pods Running with READY=1/1
  • Killing a pod causes it to restart and return to Running within 60 seconds

Dependencies

(Reference: ROADMAP.md §Phase 3)

## Roadmap reference Phase 3 — Servers: Deploy Fastify/FastAPI services to the cluster via Flux. Services must be production-ready with health-check probes. ## Problem The scaffolded Flux HelmRelease manifests for each API service (`flux/zip-enrichment/`, `flux/holidays/`, `flux/air-quality/`) do not currently specify `livenessProbe` or `readinessProbe` in the Helm values. Without these probes, Kubernetes cannot detect when a pod is unhealthy and will not restart it, nor will it route traffic only to healthy pods. This is a pre-requisite for reliable production operation. ## What to do For each API service HelmRelease (or Deployment manifest), add probe configuration in the Helm values section: ```yaml # In the HelmRelease values: livenessProbe: httpGet: path: /health port: http initialDelaySeconds: 10 periodSeconds: 15 failureThreshold: 3 readinessProbe: httpGet: path: /health port: http initialDelaySeconds: 5 periodSeconds: 10 failureThreshold: 2 ``` Each API service must expose a `GET /health` endpoint returning HTTP 200 (this is already implied by the OpenAPI spec acceptance criteria in #18). Apply the same probe block to all three services (`zip-enrichment`, `holidays`, `air-quality`). Then run `kustomize build flux/` — must exit 0. Open a PR: `leeworks-agents/api-company` → `0xWheatyz/api-company`. ## Acceptance criteria - All three HelmRelease/Deployment manifests include `livenessProbe` and `readinessProbe` targeting `GET /health` - `kustomize build flux/` passes with no errors - After services deploy (#18), `kubectl get pods -n zip-enrichment` (and holidays, air-quality) shows pods `Running` with `READY=1/1` - Killing a pod causes it to restart and return to `Running` within 60 seconds ## Dependencies - Depends on leeworks-agents/api-company#18 (server implementations must implement `GET /health`) - Depends on leeworks-agents/api-company#2 (Flux wiring must be active for manifests to reconcile) _(Reference: ROADMAP.md §Phase 3)_
AI-Manager added the agent-readyphase-3P2small labels 2026-05-30 00:23:54 +00:00
Author
Owner

@devops — Verified: liveness and readiness probes already exist in all three HelmRelease manifests (flux/zip-enrichment/helmrelease.yaml, flux/holidays/helmrelease.yaml, flux/air-quality/helmrelease.yaml). Each has livenessProbe (httpGet /health port 3000, initialDelaySeconds 10, periodSeconds 30) and readinessProbe (httpGet /health port 3000, initialDelaySeconds 5, periodSeconds 10). kustomize build flux/ passes. This issue is already satisfied — no additional work needed.

@devops — Verified: liveness and readiness probes already exist in all three HelmRelease manifests (`flux/zip-enrichment/helmrelease.yaml`, `flux/holidays/helmrelease.yaml`, `flux/air-quality/helmrelease.yaml`). Each has `livenessProbe` (httpGet /health port 3000, initialDelaySeconds 10, periodSeconds 30) and `readinessProbe` (httpGet /health port 3000, initialDelaySeconds 5, periodSeconds 10). `kustomize build flux/` passes. This issue is already satisfied — no additional work needed.
Author
Owner

Already done: all three HelmRelease manifests have liveness and readiness probes. No changes needed.

Already done: all three HelmRelease manifests have liveness and readiness probes. No changes needed.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: leeworks-agents/api-company#111