Build
Enhancements
-
Add health endpoint with readiness and liveness probes (#416)
-
New /healthz Endpoint: A new HTTP endpoint is available on port 8080 (configurable via the HEALTH_PORT environment variable)
-
Readiness Probe:
- The sidecar now reports as "ready" (HTTP 200) only after the initial synchronization of all configured resources is complete
- This prevents the main application container from starting or receiving traffic prematurely, ensuring all configuration files are present at startup
-
Liveness Probe:
- The probe continuously monitors the sidecar's health by checking two critical conditions:
- Kubernetes API Contact: Verifies that the sidecar has had successful contact with the Kubernetes API within the last 60 seconds
- Watcher Process Health: Ensures that all internal watcher subprocesses are running correctly
- If any check fails, the probe fails, signaling Kubernetes to restart the container
- The probe continuously monitors the sidecar's health by checking two critical conditions:
-
-
Reduced Log Noise: Access logs for frequent /healthz requests are automatically filtered out to keep application logs clean and focused
-
Fail-Fast on Process Death: The main process now exits immediately if a critical watcher subprocess dies, ensuring a prompt restart by Kubernetes
Testing
- The CI pipeline has been enhanced with new tests to validate this functionality:
- A test to confirm the Uvicorn health server starts successfully
- A liveness test that simulates a watcher process failure and asserts that Kubernetes restarts the pod as expected
- A Kubernetes Config load test for Sleep and Watch based sidecar