feat(infra): replace Temporal dev server with production deployment

- Replace temporalio/temporal (SQLite dev server) with temporalio/server
  backed by CNPG PostgreSQL (hightower-temporal-db)
- Add schema init Job using temporalio/admin-tools
- Add separate temporalio/ui deployment for the web dashboard
- Remove namespace.yaml — namespace is managed by the cluster repo
- Remove ensureNamespace() from K8s orchestrator

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-21 06:36:40 -04:00
parent 60ba428d2b
commit ffd7e116d4
4 changed files with 237 additions and 62 deletions
+1 -19
View File
@@ -60,10 +60,7 @@ export class K8sOrchestrator implements Orchestrator {
// === Infrastructure ===
async ensureInfra(useRouter: boolean): Promise<void> {
// 1. Create namespace if it doesn't exist
await this.ensureNamespace();
// 2. Create or update credentials secret
// 1. Create or update credentials secret
await this.ensureCredentialsSecret();
// 3. Apply Temporal manifests
@@ -369,21 +366,6 @@ export class K8sOrchestrator implements Orchestrator {
// === Private Helpers ===
private async ensureNamespace(): Promise<void> {
try {
await this.coreApi.readNamespace({ name: NAMESPACE });
} catch {
console.log(`Creating namespace ${NAMESPACE}...`);
await this.coreApi.createNamespace({
body: {
apiVersion: 'v1',
kind: 'Namespace',
metadata: { name: NAMESPACE, labels: { 'app.kubernetes.io/part-of': 'hightower' } },
},
});
}
}
private async ensureCredentialsSecret(): Promise<void> {
const envRecord = buildEnvRecord();
const stringData: Record<string, string> = {};