- VoiceRegistry for trained voices from Kubeflow pipeline - Custom voice routing in synthesize() - NATS subjects for listing/refreshing voices - pyproject.toml with ruff/pytest config - Full test suite (26 tests) - Gitea Actions CI (lint, test, docker, notify) - Renovate config for automated dependency updates Ref: ADR-0056, ADR-0057
30 lines
647 B
Python
30 lines
647 B
Python
#!/usr/bin/env python3
|
|
"""
|
|
Health check script for Kubernetes probes
|
|
Verifies NATS connectivity
|
|
"""
|
|
|
|
import asyncio
|
|
import os
|
|
import sys
|
|
|
|
import nats
|
|
|
|
NATS_URL = os.environ.get("NATS_URL", "nats://nats.ai-ml.svc.cluster.local:4222")
|
|
|
|
|
|
async def check_health():
|
|
"""Check if service can connect to NATS."""
|
|
try:
|
|
nc = await asyncio.wait_for(nats.connect(NATS_URL), timeout=5.0)
|
|
await nc.close()
|
|
return True
|
|
except Exception as e:
|
|
print(f"Health check failed: {e}", file=sys.stderr)
|
|
return False
|
|
|
|
|
|
if __name__ == "__main__":
|
|
result = asyncio.run(check_health())
|
|
sys.exit(0 if result else 1)
|