From 9f53c16b7dffbde30a6ebda324c40f28c1bf43ac Mon Sep 17 00:00:00 2001 From: HWLAB node GitOps Bot Date: Fri, 12 Jun 2026 22:48:05 +0000 Subject: [PATCH] chore: promote node GitOps source 0042357 --- deploy/artifact-catalog.d601-v03.json | 4 +- .../node/d601/runtime-v03/deepseek-proxy.yaml | 741 ++--- .../d601/runtime-v03/external-postgres.yaml | 88 +- .../node/d601/runtime-v03/kustomization.yaml | 28 +- .../node/d601/runtime-v03/node-frpc.yaml | 174 +- .../node/d601/runtime-v03/observability.yaml | 28 - .../node/d601/runtime-v03/services.yaml | 321 +- .../node/d601/runtime-v03/workloads.yaml | 2690 ++++++----------- 8 files changed, 1506 insertions(+), 2568 deletions(-) delete mode 100644 deploy/gitops/node/d601/runtime-v03/observability.yaml diff --git a/deploy/artifact-catalog.d601-v03.json b/deploy/artifact-catalog.d601-v03.json index f8e2b796..bd0931f1 100644 --- a/deploy/artifact-catalog.d601-v03.json +++ b/deploy/artifact-catalog.d601-v03.json @@ -5,12 +5,12 @@ "profile": "v03", "namespace": "hwlab-v03", "endpoint": "https://v03.hwpod.com", - "commitId": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", + "commitId": "004235736f9168145885f1be57bd3c46fcb6ce6a", "artifactState": "published", "publish": { "ciPublished": true, "registryVerified": true, - "provenance": "node-ci-artifact:hwlab-v03-ci-poll-8969bdd1e4d8-collect", + "provenance": "node-ci-artifact:hwlab-v03-ci-poll-004235736f91-collect", "note": "Digest fields were copied from a successful DEV artifact publish report for this source commit." }, "healthContract": { diff --git a/deploy/gitops/node/d601/runtime-v03/deepseek-proxy.yaml b/deploy/gitops/node/d601/runtime-v03/deepseek-proxy.yaml index 2ebb6572..cfed26c7 100644 --- a/deploy/gitops/node/d601/runtime-v03/deepseek-proxy.yaml +++ b/deploy/gitops/node/d601/runtime-v03/deepseek-proxy.yaml @@ -1,414 +1,327 @@ -{ - "apiVersion": "v1", - "kind": "List", - "items": [ - { - "apiVersion": "v1", - "kind": "ConfigMap", - "metadata": { - "name": "hwlab-deepseek-proxy-config", - "namespace": "hwlab-v03", - "labels": { - "app.kubernetes.io/name": "hwlab-deepseek-proxy", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/service-id": "hwlab-deepseek-proxy", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a", - "hwlab.pikastech.local/monitoring": "enabled" - } - }, - "data": { - "render-config.sh": "#!/bin/sh\nif [ -z \"${DEEPSEEK_API_KEY:-}\" ] && [ -z \"${OPENCODE_API_KEY:-}\" ]; then\n echo \"at least one of DEEPSEEK_API_KEY or OPENCODE_API_KEY is required\" >&2\n exit 1\nfi\ncat > /config/config.yml < + #!/bin/sh + + if [ -z "${DEEPSEEK_API_KEY:-}" ] && [ -z "${OPENCODE_API_KEY:-}" ]; + then + echo "at least one of DEEPSEEK_API_KEY or OPENCODE_API_KEY is required" >&2 + exit 1 + fi + + cat > /config/config.yml < 0;\n if (!configured) return Promise.resolve({ configured: false, success: false, statusCode: 0, durationSeconds: 0 });\n\n let url;\n try {\n url = new URL(targetUrl);\n } catch {\n return Promise.resolve({ configured: true, success: false, statusCode: 0, durationSeconds: 0 });\n }\n\n const requestImpl = url.protocol === \"https:\" ? httpsRequest : url.protocol === \"http:\" ? httpRequest : null;\n if (!requestImpl) return Promise.resolve({ configured: true, success: false, statusCode: 0, durationSeconds: 0 });\n\n const started = Date.now();\n return new Promise((resolve) => {\n const finish = (result) => resolve({\n configured: true,\n success: false,\n statusCode: 0,\n durationSeconds: (Date.now() - started) / 1000,\n ...result\n });\n const request = requestImpl(url, { method: \"GET\", timeout: timeoutMs }, (response) => {\n const chunks = [];\n let bytes = 0;\n if (collectBody) {\n response.on(\"data\", (chunk) => {\n const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);\n bytes += buffer.length;\n if (bytes <= maxBodyBytes) chunks.push(buffer);\n });\n } else {\n response.resume();\n }\n response.on(\"end\", () => finish({\n success: Boolean(response.statusCode && response.statusCode >= 200 && response.statusCode < 300),\n statusCode: response.statusCode || 0,\n body: collectBody ? Buffer.concat(chunks).toString(\"utf8\") : undefined,\n bodyBytes: collectBody ? Math.min(bytes, maxBodyBytes) : 0,\n truncated: collectBody ? bytes > maxBodyBytes : false\n }));\n });\n request.on(\"timeout\", () => request.destroy());\n request.on(\"error\", () => finish({}));\n request.end();\n });\n}\n\nexport async function probeExtraMetrics({ targetUrl, timeoutMs = DEFAULT_TARGET_TIMEOUT_MS, maxBodyBytes = DEFAULT_EXTRA_METRICS_MAX_BYTES, probeImpl = requestTarget } = {}) {\n const configured = typeof targetUrl === \"string\" && targetUrl.trim().length > 0;\n if (!configured || typeof probeImpl !== \"function\") {\n return { configured: false, success: false, statusCode: 0, durationSeconds: 0, text: \"\" };\n }\n try {\n const result = await probeImpl({ targetUrl, timeoutMs, collectBody: true, maxBodyBytes });\n return {\n configured: true,\n success: Boolean(result.success),\n statusCode: result.statusCode || 0,\n durationSeconds: result.durationSeconds || 0,\n text: result.success ? sanitizeExtraMetricsText(result.body || \"\") : \"\"\n };\n } catch {\n return { configured: true, success: false, statusCode: 0, durationSeconds: 0, text: \"\" };\n }\n}\n\nexport function sanitizeExtraMetricsText(text) {\n const lines = String(text ?? \"\").split(/\\r?\\n/gu);\n return lines.filter((line) => {\n if (!line) return true;\n if (/^#\\s+(?:HELP|TYPE)\\s+hwlab_[A-Za-z_:][A-Za-z0-9_:]*\\b/u.test(line)) return true;\n return /^hwlab_[A-Za-z_:][A-Za-z0-9_:]*(?:\\{[^\\n{}]*\\})?\\s+[-+0-9.eE]+$/u.test(line);\n }).join(\"\\n\");\n}\n\nexport async function probeTarget({ targetUrl, timeoutMs = DEFAULT_TARGET_TIMEOUT_MS, probeImpl = requestTarget } = {}) {\n const configured = typeof targetUrl === \"string\" && targetUrl.trim().length > 0;\n if (!configured || typeof probeImpl !== \"function\") {\n return { configured: false, success: false, statusCode: 0, durationSeconds: 0 };\n }\n try {\n return await probeImpl({ targetUrl, timeoutMs });\n } catch {\n const started = Date.now();\n return { configured: true, success: false, statusCode: 0, durationSeconds: (Date.now() - started) / 1000 };\n }\n}\n\nexport function buildMetricsText({ env = process.env, probe = null, extraMetrics = null, now = Date.now() } = {}) {\n const labels = metricLabels(env);\n const uptimeSeconds = Math.max(0, (now - startedAtMs) / 1000);\n const healthProbe = probe ?? { configured: false, success: false, statusCode: 0, durationSeconds: 0 };\n const extraProbe = extraMetrics ?? { configured: false, success: false, statusCode: 0, durationSeconds: 0, text: \"\" };\n const lines = [\n \"# HELP hwlab_service_up HWLAB metrics sidecar availability.\",\n \"# TYPE hwlab_service_up gauge\",\n `hwlab_service_up{${labels}} 1`,\n \"# HELP hwlab_service_info Static HWLAB service metrics identity without high-cardinality request identifiers.\",\n \"# TYPE hwlab_service_info gauge\",\n `hwlab_service_info{${labels}} 1`,\n \"# HELP hwlab_service_process_uptime_seconds Metrics sidecar process uptime in seconds.\",\n \"# TYPE hwlab_service_process_uptime_seconds gauge\",\n `hwlab_service_process_uptime_seconds{${labels}} ${uptimeSeconds.toFixed(3)}`,\n \"# HELP hwlab_service_health_probe_configured Whether the sidecar has a cluster-local health probe target.\",\n \"# TYPE hwlab_service_health_probe_configured gauge\",\n `hwlab_service_health_probe_configured{${labels}} ${healthProbe.configured ? 1 : 0}`,\n \"# HELP hwlab_service_health_probe_success Whether the most recent cluster-local health probe succeeded.\",\n \"# TYPE hwlab_service_health_probe_success gauge\",\n `hwlab_service_health_probe_success{${labels}} ${healthProbe.success ? 1 : 0}`,\n \"# HELP hwlab_service_health_probe_status_code Most recent cluster-local health probe HTTP status code, or 0 when unavailable.\",\n \"# TYPE hwlab_service_health_probe_status_code gauge\",\n `hwlab_service_health_probe_status_code{${labels}} ${Number.isInteger(healthProbe.statusCode) ? healthProbe.statusCode : 0}`,\n \"# HELP hwlab_service_health_probe_duration_seconds Most recent cluster-local health probe duration in seconds.\",\n \"# TYPE hwlab_service_health_probe_duration_seconds gauge\",\n `hwlab_service_health_probe_duration_seconds{${labels}} ${Number(healthProbe.durationSeconds || 0).toFixed(3)}`,\n \"# HELP hwlab_service_extra_metrics_configured Whether the sidecar has an additional cluster-local metrics target.\",\n \"# TYPE hwlab_service_extra_metrics_configured gauge\",\n `hwlab_service_extra_metrics_configured{${labels}} ${extraProbe.configured ? 1 : 0}`,\n \"# HELP hwlab_service_extra_metrics_success Whether the most recent additional metrics fetch succeeded.\",\n \"# TYPE hwlab_service_extra_metrics_success gauge\",\n `hwlab_service_extra_metrics_success{${labels}} ${extraProbe.success ? 1 : 0}`,\n \"# HELP hwlab_service_extra_metrics_status_code Most recent additional metrics HTTP status code, or 0 when unavailable.\",\n \"# TYPE hwlab_service_extra_metrics_status_code gauge\",\n `hwlab_service_extra_metrics_status_code{${labels}} ${Number.isInteger(extraProbe.statusCode) ? extraProbe.statusCode : 0}`,\n \"# HELP hwlab_service_extra_metrics_duration_seconds Most recent additional metrics fetch duration in seconds.\",\n \"# TYPE hwlab_service_extra_metrics_duration_seconds gauge\",\n `hwlab_service_extra_metrics_duration_seconds{${labels}} ${Number(extraProbe.durationSeconds || 0).toFixed(3)}`,\n \"\"\n ];\n if (extraProbe.text) {\n lines.push(extraProbe.text.trimEnd(), \"\");\n }\n return lines.join(\"\\n\");\n}\n\nfunction sendJson(response, statusCode, body) {\n const payload = JSON.stringify(body) + \"\\n\";\n response.writeHead(statusCode, {\n \"content-type\": \"application/json; charset=utf-8\",\n \"content-length\": Buffer.byteLength(payload)\n });\n response.end(payload);\n}\n\nexport function createMetricsSidecarServer({ env = process.env, probeImpl = requestTarget } = {}) {\n return createServer(async (request, response) => {\n const url = new URL(request.url || \"/\", \"http://hwlab-metrics.local\");\n if (request.method === \"GET\" && (url.pathname === \"/health\" || url.pathname === \"/health/live\")) {\n sendJson(response, 200, {\n serviceId: sanitizeLabelValue(env.HWLAB_METRICS_SERVICE_ID || env.HWLAB_SERVICE_ID),\n status: \"ok\",\n metricsPath: \"/metrics\"\n });\n return;\n }\n if (request.method === \"GET\" && url.pathname === \"/metrics\") {\n const timeoutMs = Number.parseInt(env.HWLAB_METRICS_TARGET_TIMEOUT_MS || \"\", 10) || DEFAULT_TARGET_TIMEOUT_MS;\n const probe = await probeTarget({ targetUrl: env.HWLAB_METRICS_TARGET_URL, timeoutMs, probeImpl });\n const extraTimeoutMs = Number.parseInt(env.HWLAB_METRICS_EXTRA_TIMEOUT_MS || \"\", 10) || DEFAULT_TARGET_TIMEOUT_MS;\n const extraMetrics = await probeExtraMetrics({ targetUrl: env.HWLAB_METRICS_EXTRA_URL, timeoutMs: extraTimeoutMs, probeImpl });\n const payload = buildMetricsText({ env, probe, extraMetrics });\n response.writeHead(200, {\n \"content-type\": \"text/plain; version=0.0.4; charset=utf-8\",\n \"content-length\": Buffer.byteLength(payload)\n });\n response.end(payload);\n return;\n }\n sendJson(response, 404, { error: \"not_found\", path: url.pathname });\n });\n}\n\nexport function startMetricsSidecar({ env = process.env } = {}) {\n const port = Number.parseInt(env.HWLAB_METRICS_PORT || env.PORT || \"\", 10) || DEFAULT_PORT;\n const server = createMetricsSidecarServer({ env });\n server.listen(port, \"0.0.0.0\", () => {\n process.stdout.write(JSON.stringify({ serviceId: env.HWLAB_METRICS_SERVICE_ID || \"hwlab-unknown\", status: \"metrics-listening\", port }) + \"\\n\");\n });\n return server;\n}\n\nexport function isMainModule({ moduleUrl = import.meta.url, argvPath = process.argv[1], realpath = realpathSync } = {}) {\n if (!argvPath) return false;\n if (moduleUrl === pathToFileURL(argvPath).href) return true;\n try {\n return moduleUrl === pathToFileURL(realpath(argvPath)).href;\n } catch {\n return false;\n }\n}\n\nif (isMainModule()) {\n startMetricsSidecar();\n}\n" - } - } - ] -} diff --git a/deploy/gitops/node/d601/runtime-v03/services.yaml b/deploy/gitops/node/d601/runtime-v03/services.yaml index 6da4d399..c3281738 100644 --- a/deploy/gitops/node/d601/runtime-v03/services.yaml +++ b/deploy/gitops/node/d601/runtime-v03/services.yaml @@ -1,191 +1,130 @@ -{ - "apiVersion": "v1", - "kind": "List", - "items": [ - { - "apiVersion": "v1", - "kind": "Service", - "metadata": { - "name": "hwlab-cloud-api", - "namespace": "hwlab-v03", - "labels": { - "app.kubernetes.io/name": "hwlab-cloud-api", - "hwlab.pikastech.local/service-id": "hwlab-cloud-api", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/monitoring": "enabled" - }, - "annotations": { - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs" - } - }, - "spec": { - "type": "ClusterIP", - "selector": { - "app.kubernetes.io/name": "hwlab-cloud-api" - }, - "ports": [ - { - "name": "http", - "port": 6667, - "targetPort": "http" - }, - { - "name": "metrics", - "port": 9100, - "targetPort": "metrics" - } - ] - } - }, - { - "apiVersion": "v1", - "kind": "Service", - "metadata": { - "name": "hwlab-cloud-web", - "namespace": "hwlab-v03", - "labels": { - "app.kubernetes.io/name": "hwlab-cloud-web", - "hwlab.pikastech.local/service-id": "hwlab-cloud-web", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/monitoring": "enabled" - }, - "annotations": { - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs" - } - }, - "spec": { - "type": "ClusterIP", - "selector": { - "app.kubernetes.io/name": "hwlab-cloud-web" - }, - "ports": [ - { - "name": "http", - "port": 8080, - "targetPort": "http" - }, - { - "name": "metrics", - "port": 9100, - "targetPort": "metrics" - } - ] - } - }, - { - "apiVersion": "v1", - "kind": "Service", - "metadata": { - "name": "hwlab-gateway", - "namespace": "hwlab-v03", - "labels": { - "app.kubernetes.io/name": "hwlab-gateway", - "hwlab.pikastech.local/service-id": "hwlab-gateway", - "hwlab.pikastech.local/activation": "manual", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03" - }, - "annotations": { - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs" - } - }, - "spec": { - "type": "ClusterIP", - "selector": { - "app.kubernetes.io/name": "hwlab-gateway" - }, - "ports": [ - { - "name": "http", - "port": 7001, - "targetPort": "http" - } - ] - } - }, - { - "apiVersion": "v1", - "kind": "Service", - "metadata": { - "name": "hwlab-agent-skills", - "namespace": "hwlab-v03", - "labels": { - "app.kubernetes.io/name": "hwlab-agent-skills", - "hwlab.pikastech.local/service-id": "hwlab-agent-skills", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/monitoring": "enabled" - }, - "annotations": { - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs" - } - }, - "spec": { - "type": "ClusterIP", - "selector": { - "app.kubernetes.io/name": "hwlab-agent-skills" - }, - "ports": [ - { - "name": "http", - "port": 7430, - "targetPort": "http" - }, - { - "name": "metrics", - "port": 9100, - "targetPort": "metrics" - } - ] - } - }, - { - "apiVersion": "v1", - "kind": "Service", - "metadata": { - "name": "hwlab-edge-proxy", - "namespace": "hwlab-v03", - "labels": { - "app.kubernetes.io/name": "hwlab-edge-proxy", - "hwlab.pikastech.local/service-id": "hwlab-edge-proxy", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/monitoring": "enabled" - }, - "annotations": { - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs" - } - }, - "spec": { - "type": "ClusterIP", - "selector": { - "app.kubernetes.io/name": "hwlab-edge-proxy" - }, - "ports": [ - { - "name": "http", - "port": 6667, - "targetPort": "http" - }, - { - "name": "metrics", - "port": 9100, - "targetPort": "metrics" - } - ] - } - } - ] -} +apiVersion: v1 +kind: List +items: + - apiVersion: v1 + kind: Service + metadata: + name: hwlab-cloud-api + namespace: hwlab-v03 + labels: + app.kubernetes.io/name: hwlab-cloud-api + hwlab.pikastech.local/service-id: hwlab-cloud-api + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/monitoring: disabled + annotations: + hwlab.pikastech.local/rendered-by: scripts/gitops-render.mjs + spec: + type: ClusterIP + selector: + app.kubernetes.io/name: hwlab-cloud-api + ports: + - name: http + port: 6667 + targetPort: http + - name: metrics + port: 9100 + targetPort: metrics + - apiVersion: v1 + kind: Service + metadata: + name: hwlab-cloud-web + namespace: hwlab-v03 + labels: + app.kubernetes.io/name: hwlab-cloud-web + hwlab.pikastech.local/service-id: hwlab-cloud-web + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/monitoring: disabled + annotations: + hwlab.pikastech.local/rendered-by: scripts/gitops-render.mjs + spec: + type: ClusterIP + selector: + app.kubernetes.io/name: hwlab-cloud-web + ports: + - name: http + port: 8080 + targetPort: http + - name: metrics + port: 9100 + targetPort: metrics + - apiVersion: v1 + kind: Service + metadata: + name: hwlab-gateway + namespace: hwlab-v03 + labels: + app.kubernetes.io/name: hwlab-gateway + hwlab.pikastech.local/service-id: hwlab-gateway + hwlab.pikastech.local/activation: manual + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + annotations: + hwlab.pikastech.local/rendered-by: scripts/gitops-render.mjs + spec: + type: ClusterIP + selector: + app.kubernetes.io/name: hwlab-gateway + ports: + - name: http + port: 7001 + targetPort: http + - apiVersion: v1 + kind: Service + metadata: + name: hwlab-agent-skills + namespace: hwlab-v03 + labels: + app.kubernetes.io/name: hwlab-agent-skills + hwlab.pikastech.local/service-id: hwlab-agent-skills + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/monitoring: disabled + annotations: + hwlab.pikastech.local/rendered-by: scripts/gitops-render.mjs + spec: + type: ClusterIP + selector: + app.kubernetes.io/name: hwlab-agent-skills + ports: + - name: http + port: 7430 + targetPort: http + - name: metrics + port: 9100 + targetPort: metrics + - apiVersion: v1 + kind: Service + metadata: + name: hwlab-edge-proxy + namespace: hwlab-v03 + labels: + app.kubernetes.io/name: hwlab-edge-proxy + hwlab.pikastech.local/service-id: hwlab-edge-proxy + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/monitoring: disabled + annotations: + hwlab.pikastech.local/rendered-by: scripts/gitops-render.mjs + spec: + type: ClusterIP + selector: + app.kubernetes.io/name: hwlab-edge-proxy + ports: + - name: http + port: 6667 + targetPort: http + - name: metrics + port: 9100 + targetPort: metrics diff --git a/deploy/gitops/node/d601/runtime-v03/workloads.yaml b/deploy/gitops/node/d601/runtime-v03/workloads.yaml index 12592943..e3ca9416 100644 --- a/deploy/gitops/node/d601/runtime-v03/workloads.yaml +++ b/deploy/gitops/node/d601/runtime-v03/workloads.yaml @@ -1,1786 +1,904 @@ -{ - "apiVersion": "v1", - "kind": "List", - "items": [ - { - "apiVersion": "v1", - "kind": "PersistentVolumeClaim", - "metadata": { - "labels": { - "app.kubernetes.io/name": "hwlab-user-skills", - "hwlab.pikastech.local/service-id": "hwlab-user-skills", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a", - "unidesk.ai/node-staging": "false" - }, - "name": "hwlab-user-skills", - "namespace": "hwlab-v03", - "annotations": { - "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a" - } - }, - "spec": { - "accessModes": [ - "ReadWriteOnce" - ], - "resources": { - "requests": { - "storage": "2Gi" - } - } - } - }, - { - "apiVersion": "apps/v1", - "kind": "Deployment", - "metadata": { - "name": "hwlab-cloud-api", - "namespace": "hwlab-v03", - "labels": { - "app.kubernetes.io/name": "hwlab-cloud-api", - "hwlab.pikastech.local/service-id": "hwlab-cloud-api", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a", - "unidesk.ai/node-staging": "false", - "hwlab.pikastech.local/monitoring": "enabled" - }, - "annotations": { - "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a" - } - }, - "spec": { - "replicas": 1, - "strategy": { - "type": "Recreate" - }, - "selector": { - "matchLabels": { - "app.kubernetes.io/name": "hwlab-cloud-api", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03" - } - }, - "template": { - "metadata": { - "labels": { - "app.kubernetes.io/name": "hwlab-cloud-api", - "hwlab.pikastech.local/service-id": "hwlab-cloud-api", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - "annotations": { - "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", - "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", - "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-cloud-api.sh", - "hwlab.pikastech.local/environment-digest": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb", - "hwlab.pikastech.local/environment-input-hash": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", - "hwlab.pikastech.local/code-input-hash": "e2d48031bdb318a3bf175c7eb33c62963c94aaebe20d15445b3a4690bfb2530e" - } - }, - "spec": { - "initContainers": [], - "containers": [ - { - "name": "hwlab-cloud-api", - "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb", - "ports": [ - { - "name": "http", - "containerPort": 6667 - } - ], - "env": [ - { - "name": "HWLAB_ENVIRONMENT", - "value": "v03" - }, - { - "name": "HWLAB_PUBLIC_ENDPOINT", - "value": "https://v03.hwpod.com" - }, - { - "name": "HWLAB_CLOUD_API_PORT", - "value": "6667" - }, - { - "name": "HWLAB_COMMIT_ID", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" - }, - { - "name": "HWLAB_IMAGE_TAG", - "value": "env-9495896df918" - }, - { - "name": "HWLAB_RUNTIME_SUBSTITUTE_FORBIDDEN", - "value": "unidesk-backend,provider-gateway,microservice-proxy" - }, - { - "name": "HWLAB_CLOUD_DB_URL", - "valueFrom": { - "secretKeyRef": { - "name": "hwlab-cloud-api-v03-db", - "key": "database-url", - "optional": true - } - } - }, - { - "name": "HWLAB_CLOUD_DB_SSL_MODE", - "value": "disable" - }, - { - "name": "HWLAB_CLOUD_DB_CONTRACT", - "value": "v03-redacted-presence-only" - }, - { - "name": "HWLAB_CLOUD_RUNTIME_ADAPTER", - "value": "postgres" - }, - { - "name": "HWLAB_CLOUD_RUNTIME_DURABLE", - "value": "true" - }, - { - "name": "HWLAB_M3_IO_CONTROL_ENABLED", - "value": "false" - }, - { - "name": "HWLAB_CODE_AGENT_TIMEOUT_MS", - "value": "1200000" - }, - { - "name": "NO_PROXY", - "value": "hwlab-v03.svc.cluster.local,.svc,.cluster.local,hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,10.0.0.0/8,10.42.0.0/16,10.43.0.0/16,api.minimaxi.com,.minimaxi.com" - }, - { - "name": "no_proxy", - "value": "hwlab-v03.svc.cluster.local,.svc,.cluster.local,hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,10.0.0.0/8,10.42.0.0/16,10.43.0.0/16,api.minimaxi.com,.minimaxi.com" - }, - { - "name": "HWLAB_CODE_AGENT_SKILLS_DIRS", - "value": "/app/skills:/data/user-skills" - }, - { - "name": "HWLAB_PREINSTALLED_SKILLS_DIR", - "value": "/app/skills" - }, - { - "name": "HWLAB_USER_SKILLS_DIR", - "value": "/data/user-skills" - }, - { - "name": "HWLAB_CODE_AGENT_DEFAULT_PROVIDER_PROFILE", - "value": "deepseek" - }, - { - "name": "HWLAB_CODE_AGENT_DEEPSEEK_MODEL", - "value": "deepseek-chat" - }, - { - "name": "HWLAB_CODE_AGENT_DEEPSEEK_BASE_URL", - "value": "http://hwlab-deepseek-proxy.hwlab-v03.svc.cluster.local:4000/v1/responses" - }, - { - "name": "HWLAB_CODE_AGENT_CODEX_API_MODEL", - "value": "gpt-5.5" - }, - { - "name": "HWLAB_CODE_AGENT_CODEX_API_BASE_URL", - "value": "http://127.0.0.1:49280/responses" - }, - { - "name": "HWLAB_CODE_AGENT_CODEX_API_UPSTREAM_BASE_URL", - "value": "https://hyueapi.com" - }, - { - "name": "HWLAB_CODE_AGENT_CODEX_API_FORWARDER_PORT", - "value": "49280" - }, - { - "name": "HWLAB_ACCESS_CONTROL_REQUIRED", - "value": "1" - }, - { - "name": "HWLAB_BOOTSTRAP_ADMIN_ID", - "value": "usr_v03_admin" - }, - { - "name": "HWLAB_BOOTSTRAP_ADMIN_USERNAME", - "value": "admin" - }, - { - "name": "HWLAB_BOOTSTRAP_ADMIN_DISPLAY_NAME", - "value": "HWLAB v0.3 Admin" - }, - { - "name": "HWLAB_BOOTSTRAP_ADMIN_PASSWORD_HASH", - "valueFrom": { - "secretKeyRef": { - "name": "hwlab-v03-bootstrap-admin", - "key": "password-hash", - "optional": true - } - } - }, - { - "name": "HWLAB_BOOTSTRAP_ADMIN_API_KEY_ID", - "value": "key_master_server_admin" - }, - { - "name": "HWLAB_BOOTSTRAP_ADMIN_API_KEY", - "valueFrom": { - "secretKeyRef": { - "name": "hwlab-v03-master-server-admin-api-key", - "key": "api-key", - "optional": true - } - } - }, - { - "name": "HWLAB_KEYCLOAK_ISSUER", - "value": "https://auth.74-48-78-17.nip.io/realms/hwlab" - }, - { - "name": "HWLAB_KEYCLOAK_CLIENT_ID", - "value": "hwlab-cloud-web" - }, - { - "name": "HWLAB_KEYCLOAK_CLIENT_SECRET", - "valueFrom": { - "secretKeyRef": { - "name": "hwlab-cloud-web-client", - "key": "client-secret", - "optional": true - } - } - }, - { - "name": "HWLAB_CODE_AGENT_ADAPTER", - "value": "agentrun-v01" - }, - { - "name": "AGENTRUN_MGR_URL", - "value": "http://agentrun-mgr.agentrun-v01.svc.cluster.local:8080" - }, - { - "name": "HWLAB_CODE_AGENT_AGENTRUN_RUNNER_NAMESPACE", - "value": "agentrun-v01" - }, - { - "name": "HWLAB_CODE_AGENT_AGENTRUN_SECRET_NAMESPACE", - "value": "agentrun-v01" - }, - { - "name": "HWLAB_CODE_AGENT_AGENTRUN_REPO_URL", - "value": "http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git" - }, - { - "name": "HWLAB_GITOPS_TARGET", - "value": "v03" - }, - { - "name": "HWLAB_GITOPS_PROFILE", - "value": "v03" - }, - { - "name": "HWLAB_GITOPS_SOURCE_COMMIT", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_CODE_AGENT_AGENTRUN_SOURCE_COMMIT", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_RUNTIME_MODE", - "value": "env-reuse-git-mirror-checkout" - }, - { - "name": "HWLAB_BOOT_REPO", - "value": "git@github.com:pikasTech/HWLAB.git" - }, - { - "name": "HWLAB_BOOT_COMMIT", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_BOOT_REF", - "value": "v0.3" - }, - { - "name": "HWLAB_BOOT_SH", - "value": "deploy/runtime/boot/hwlab-cloud-api.sh" - }, - { - "name": "HWLAB_BOOT_READ_URL", - "value": "http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git" - }, - { - "name": "HWLAB_ENVIRONMENT_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env:env-9495896df918" - }, - { - "name": "HWLAB_ENVIRONMENT_DIGEST", - "value": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" - }, - { - "name": "HWLAB_ENVIRONMENT_INPUT_HASH", - "value": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" - }, - { - "name": "HWLAB_CODE_INPUT_HASH", - "value": "e2d48031bdb318a3bf175c7eb33c62963c94aaebe20d15445b3a4690bfb2530e" - }, - { - "name": "HWLAB_IMAGE_DIGEST", - "value": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" - }, - { - "name": "HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID", - "value": "G14" - }, - { - "name": "HWLAB_OPENFGA_MODE", - "value": "enforce" - }, - { - "name": "HWLAB_OPENFGA_API_URL", - "value": "http://hwlab-openfga.hwlab-v03.svc.cluster.local:8080" - }, - { - "name": "HWLAB_OPENFGA_AUTHN_TOKEN", - "valueFrom": { - "secretKeyRef": { - "name": "hwlab-v03-openfga", - "key": "authn-preshared-key", - "optional": true - } - } - }, - { - "name": "UNIDESK_MAIN_SERVER_IP", - "value": "http://74.48.78.17:18081" - } - ], - "readinessProbe": { - "httpGet": { - "path": "/health/live", - "port": "http" - } - }, - "livenessProbe": { - "httpGet": { - "path": "/health/live", - "port": "http" - } - }, - "volumeMounts": [ - { - "name": "hwlab-user-skills", - "mountPath": "/data/user-skills" - } - ], - "imagePullPolicy": "IfNotPresent", - "startupProbe": { - "httpGet": { - "path": "/health/live", - "port": "http" - }, - "periodSeconds": 10, - "timeoutSeconds": 2, - "failureThreshold": 30, - "successThreshold": 1 - } - }, - { - "name": "hwlab-codex-api-forwarder", - "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb", - "ports": [ - { - "name": "codex-api", - "containerPort": 49280 - } - ], - "env": [ - { - "name": "HWLAB_CODE_AGENT_CODEX_API_FORWARDER_HOST", - "value": "127.0.0.1" - }, - { - "name": "HWLAB_CODE_AGENT_CODEX_API_FORWARDER_PORT", - "value": "49280" - }, - { - "name": "HWLAB_CODE_AGENT_CODEX_API_UPSTREAM_BASE_URL", - "value": "https://hyueapi.com" - }, - { - "name": "NO_PROXY", - "value": "hwlab-v03.svc.cluster.local,.svc,.cluster.local,hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,10.0.0.0/8,10.42.0.0/16,10.43.0.0/16,api.minimaxi.com,.minimaxi.com" - }, - { - "name": "no_proxy", - "value": "hwlab-v03.svc.cluster.local,.svc,.cluster.local,hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,10.0.0.0/8,10.42.0.0/16,10.43.0.0/16,api.minimaxi.com,.minimaxi.com" - }, - { - "name": "HWLAB_M3_IO_CONTROL_ENABLED", - "value": "false" - }, - { - "name": "HWLAB_ENVIRONMENT", - "value": "v03" - }, - { - "name": "HWLAB_PUBLIC_ENDPOINT", - "value": "https://v03.hwpod.com" - }, - { - "name": "HWLAB_CLOUD_API_PORT", - "value": "6667" - }, - { - "name": "HWLAB_RUNTIME_SUBSTITUTE_FORBIDDEN", - "value": "unidesk-backend,provider-gateway,microservice-proxy" - }, - { - "name": "HWLAB_CLOUD_DB_URL", - "valueFrom": { - "secretKeyRef": { - "name": "hwlab-cloud-api-v03-db", - "key": "database-url", - "optional": true - } - } - }, - { - "name": "HWLAB_CLOUD_DB_SSL_MODE", - "value": "disable" - }, - { - "name": "HWLAB_CLOUD_DB_CONTRACT", - "value": "v03-redacted-presence-only" - }, - { - "name": "HWLAB_CLOUD_RUNTIME_ADAPTER", - "value": "postgres" - }, - { - "name": "HWLAB_CLOUD_RUNTIME_DURABLE", - "value": "true" - }, - { - "name": "HWLAB_CODE_AGENT_TIMEOUT_MS", - "value": "1200000" - }, - { - "name": "HWLAB_CODE_AGENT_SKILLS_DIRS", - "value": "/app/skills:/data/user-skills" - }, - { - "name": "HWLAB_PREINSTALLED_SKILLS_DIR", - "value": "/app/skills" - }, - { - "name": "HWLAB_USER_SKILLS_DIR", - "value": "/data/user-skills" - }, - { - "name": "HWLAB_CODE_AGENT_DEFAULT_PROVIDER_PROFILE", - "value": "deepseek" - }, - { - "name": "HWLAB_CODE_AGENT_DEEPSEEK_MODEL", - "value": "deepseek-chat" - }, - { - "name": "HWLAB_CODE_AGENT_DEEPSEEK_BASE_URL", - "value": "http://hwlab-deepseek-proxy.hwlab-v03.svc.cluster.local:4000/v1/responses" - }, - { - "name": "HWLAB_CODE_AGENT_CODEX_API_MODEL", - "value": "gpt-5.5" - }, - { - "name": "HWLAB_CODE_AGENT_CODEX_API_BASE_URL", - "value": "http://127.0.0.1:49280/responses" - }, - { - "name": "HWLAB_ACCESS_CONTROL_REQUIRED", - "value": "1" - }, - { - "name": "HWLAB_BOOTSTRAP_ADMIN_ID", - "value": "usr_v03_admin" - }, - { - "name": "HWLAB_BOOTSTRAP_ADMIN_USERNAME", - "value": "admin" - }, - { - "name": "HWLAB_BOOTSTRAP_ADMIN_DISPLAY_NAME", - "value": "HWLAB v0.3 Admin" - }, - { - "name": "HWLAB_BOOTSTRAP_ADMIN_PASSWORD_HASH", - "valueFrom": { - "secretKeyRef": { - "name": "hwlab-v03-bootstrap-admin", - "key": "password-hash", - "optional": true - } - } - }, - { - "name": "HWLAB_BOOTSTRAP_ADMIN_API_KEY_ID", - "value": "key_master_server_admin" - }, - { - "name": "HWLAB_BOOTSTRAP_ADMIN_API_KEY", - "valueFrom": { - "secretKeyRef": { - "name": "hwlab-v03-master-server-admin-api-key", - "key": "api-key", - "optional": true - } - } - }, - { - "name": "HWLAB_KEYCLOAK_ISSUER", - "value": "https://auth.74-48-78-17.nip.io/realms/hwlab" - }, - { - "name": "HWLAB_KEYCLOAK_CLIENT_ID", - "value": "hwlab-cloud-web" - }, - { - "name": "HWLAB_KEYCLOAK_CLIENT_SECRET", - "valueFrom": { - "secretKeyRef": { - "name": "hwlab-cloud-web-client", - "key": "client-secret", - "optional": true - } - } - }, - { - "name": "HWLAB_CODE_AGENT_ADAPTER", - "value": "agentrun-v01" - }, - { - "name": "AGENTRUN_MGR_URL", - "value": "http://agentrun-mgr.agentrun-v01.svc.cluster.local:8080" - }, - { - "name": "HWLAB_CODE_AGENT_AGENTRUN_RUNNER_NAMESPACE", - "value": "agentrun-v01" - }, - { - "name": "HWLAB_CODE_AGENT_AGENTRUN_SECRET_NAMESPACE", - "value": "agentrun-v01" - }, - { - "name": "HWLAB_CODE_AGENT_AGENTRUN_REPO_URL", - "value": "http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git" - }, - { - "name": "HWLAB_COMMIT_ID", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" - }, - { - "name": "HWLAB_IMAGE_TAG", - "value": "env-9495896df918" - }, - { - "name": "HWLAB_GITOPS_TARGET", - "value": "v03" - }, - { - "name": "HWLAB_GITOPS_PROFILE", - "value": "v03" - }, - { - "name": "HWLAB_GITOPS_SOURCE_COMMIT", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_CODE_AGENT_AGENTRUN_SOURCE_COMMIT", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_RUNTIME_MODE", - "value": "env-reuse-git-mirror-checkout" - }, - { - "name": "HWLAB_BOOT_REPO", - "value": "git@github.com:pikasTech/HWLAB.git" - }, - { - "name": "HWLAB_BOOT_COMMIT", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_BOOT_REF", - "value": "v0.3" - }, - { - "name": "HWLAB_BOOT_SH", - "value": "deploy/runtime/boot/hwlab-codex-api-responses-forwarder.sh" - }, - { - "name": "HWLAB_BOOT_READ_URL", - "value": "http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git" - }, - { - "name": "HWLAB_ENVIRONMENT_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env:env-9495896df918" - }, - { - "name": "HWLAB_ENVIRONMENT_DIGEST", - "value": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" - }, - { - "name": "HWLAB_ENVIRONMENT_INPUT_HASH", - "value": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" - }, - { - "name": "HWLAB_CODE_INPUT_HASH", - "value": "e2d48031bdb318a3bf175c7eb33c62963c94aaebe20d15445b3a4690bfb2530e" - }, - { - "name": "HWLAB_IMAGE_DIGEST", - "value": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" - }, - { - "name": "HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID", - "value": "G14" - }, - { - "name": "HWLAB_OPENFGA_MODE", - "value": "enforce" - }, - { - "name": "HWLAB_OPENFGA_API_URL", - "value": "http://hwlab-openfga.hwlab-v03.svc.cluster.local:8080" - }, - { - "name": "HWLAB_OPENFGA_AUTHN_TOKEN", - "valueFrom": { - "secretKeyRef": { - "name": "hwlab-v03-openfga", - "key": "authn-preshared-key", - "optional": true - } - } - }, - { - "name": "UNIDESK_MAIN_SERVER_IP", - "value": "http://74.48.78.17:18081" - } - ], - "readinessProbe": { - "exec": { - "command": [ - "node", - "-e", - "fetch('http://127.0.0.1:49280/health/readiness').then((response) => process.exit(response.ok ? 0 : 1)).catch(() => process.exit(1))" - ] - }, - "timeoutSeconds": 2 - }, - "livenessProbe": { - "exec": { - "command": [ - "node", - "-e", - "fetch('http://127.0.0.1:49280/health/live').then((response) => process.exit(response.ok ? 0 : 1)).catch(() => process.exit(1))" - ] - }, - "timeoutSeconds": 2 - }, - "volumeMounts": [], - "imagePullPolicy": "IfNotPresent", - "startupProbe": { - "exec": { - "command": [ - "node", - "-e", - "fetch('http://127.0.0.1:49280/health/readiness').then((response) => process.exit(response.ok ? 0 : 1)).catch(() => process.exit(1))" - ] - }, - "timeoutSeconds": 2, - "periodSeconds": 10, - "failureThreshold": 30, - "successThreshold": 1 - } - }, - { - "name": "hwlab-metrics", - "image": "127.0.0.1:5000/hwlab/hwlab-ci-node-tools:node22-alpine-bun-v1", - "imagePullPolicy": "IfNotPresent", - "command": [ - "node", - "/metrics/metrics-sidecar.mjs" - ], - "env": [ - { - "name": "HWLAB_METRICS_SERVICE_ID", - "value": "hwlab-cloud-api" - }, - { - "name": "HWLAB_METRICS_NAMESPACE", - "value": "hwlab-v03" - }, - { - "name": "HWLAB_METRICS_GITOPS_TARGET", - "value": "v03" - }, - { - "name": "HWLAB_METRICS_PORT", - "value": "9100" - }, - { - "name": "HWLAB_METRICS_TARGET_URL", - "value": "http://127.0.0.1:6667/health/live" - }, - { - "name": "HWLAB_METRICS_TARGET_TIMEOUT_MS", - "value": "2000" - }, - { - "name": "HWLAB_METRICS_EXTRA_URL", - "value": "http://127.0.0.1:6667/v1/web-performance/metrics" - }, - { - "name": "HWLAB_METRICS_EXTRA_TIMEOUT_MS", - "value": "2000" - } - ], - "ports": [ - { - "name": "metrics", - "containerPort": 9100 - } - ], - "readinessProbe": { - "httpGet": { - "path": "/health/live", - "port": "metrics" - }, - "initialDelaySeconds": 3, - "periodSeconds": 10 - }, - "livenessProbe": { - "httpGet": { - "path": "/health/live", - "port": "metrics" - }, - "initialDelaySeconds": 10, - "periodSeconds": 20 - }, - "volumeMounts": [ - { - "name": "hwlab-metrics-sidecar", - "mountPath": "/metrics", - "readOnly": true - } - ] - } - ], - "volumes": [ - { - "name": "hwlab-user-skills", - "persistentVolumeClaim": { - "claimName": "hwlab-user-skills" - } - }, - { - "name": "hwlab-metrics-sidecar", - "configMap": { - "name": "hwlab-v03-metrics-sidecar" - } - } - ] - } - } - } - }, - { - "apiVersion": "apps/v1", - "kind": "Deployment", - "metadata": { - "name": "hwlab-cloud-web", - "namespace": "hwlab-v03", - "labels": { - "app.kubernetes.io/name": "hwlab-cloud-web", - "hwlab.pikastech.local/service-id": "hwlab-cloud-web", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a", - "unidesk.ai/node-staging": "false", - "hwlab.pikastech.local/monitoring": "enabled" - }, - "annotations": { - "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a" - } - }, - "spec": { - "replicas": 1, - "selector": { - "matchLabels": { - "app.kubernetes.io/name": "hwlab-cloud-web", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03" - } - }, - "template": { - "metadata": { - "labels": { - "app.kubernetes.io/name": "hwlab-cloud-web", - "hwlab.pikastech.local/service-id": "hwlab-cloud-web", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - "annotations": { - "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", - "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", - "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-cloud-web.sh", - "hwlab.pikastech.local/environment-digest": "sha256:eadedd8ea91fe0ab9d4b29b588a14906e52082c618d326954e7cc83b3da99b77", - "hwlab.pikastech.local/environment-input-hash": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", - "hwlab.pikastech.local/code-input-hash": "fc88b16995fd65a887e8840762cfa656058fc4f5a8f099ec7762354b70918985" - } - }, - "spec": { - "containers": [ - { - "name": "hwlab-cloud-web", - "image": "127.0.0.1:5000/hwlab/hwlab-cloud-web-env@sha256:eadedd8ea91fe0ab9d4b29b588a14906e52082c618d326954e7cc83b3da99b77", - "ports": [ - { - "name": "http", - "containerPort": 8080 - } - ], - "env": [ - { - "name": "HWLAB_API_BASE_URL", - "value": "http://hwlab-cloud-api.hwlab-v03.svc.cluster.local:6667" - }, - { - "name": "HWLAB_CLOUD_WEB_PROXY_TIMEOUT_MS", - "value": "1260000" - }, - { - "name": "HWLAB_COMMIT_ID", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-cloud-web-env@sha256:eadedd8ea91fe0ab9d4b29b588a14906e52082c618d326954e7cc83b3da99b77" - }, - { - "name": "HWLAB_IMAGE_TAG", - "value": "env-9495896df918" - }, - { - "name": "HWLAB_ENVIRONMENT", - "value": "v03" - }, - { - "name": "HWLAB_GITOPS_TARGET", - "value": "v03" - }, - { - "name": "HWLAB_GITOPS_PROFILE", - "value": "v03" - }, - { - "name": "HWLAB_GITOPS_SOURCE_COMMIT", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_RUNTIME_MODE", - "value": "env-reuse-git-mirror-checkout" - }, - { - "name": "HWLAB_BOOT_REPO", - "value": "git@github.com:pikasTech/HWLAB.git" - }, - { - "name": "HWLAB_BOOT_COMMIT", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_BOOT_REF", - "value": "v0.3" - }, - { - "name": "HWLAB_BOOT_SH", - "value": "deploy/runtime/boot/hwlab-cloud-web.sh" - }, - { - "name": "HWLAB_BOOT_READ_URL", - "value": "http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git" - }, - { - "name": "HWLAB_ENVIRONMENT_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-cloud-web-env:env-9495896df918" - }, - { - "name": "HWLAB_ENVIRONMENT_DIGEST", - "value": "sha256:eadedd8ea91fe0ab9d4b29b588a14906e52082c618d326954e7cc83b3da99b77" - }, - { - "name": "HWLAB_ENVIRONMENT_INPUT_HASH", - "value": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" - }, - { - "name": "HWLAB_CODE_INPUT_HASH", - "value": "fc88b16995fd65a887e8840762cfa656058fc4f5a8f099ec7762354b70918985" - }, - { - "name": "HWLAB_IMAGE_DIGEST", - "value": "sha256:eadedd8ea91fe0ab9d4b29b588a14906e52082c618d326954e7cc83b3da99b77" - }, - { - "name": "HWLAB_PUBLIC_ENDPOINT", - "value": "https://v03.hwpod.com" - } - ], - "readinessProbe": { - "httpGet": { - "path": "/health/live", - "port": "http" - } - }, - "livenessProbe": { - "httpGet": { - "path": "/health/live", - "port": "http" - } - }, - "imagePullPolicy": "IfNotPresent", - "startupProbe": { - "httpGet": { - "path": "/health/live", - "port": "http" - }, - "periodSeconds": 10, - "timeoutSeconds": 2, - "failureThreshold": 30, - "successThreshold": 1 - } - }, - { - "name": "hwlab-metrics", - "image": "127.0.0.1:5000/hwlab/hwlab-ci-node-tools:node22-alpine-bun-v1", - "imagePullPolicy": "IfNotPresent", - "command": [ - "node", - "/metrics/metrics-sidecar.mjs" - ], - "env": [ - { - "name": "HWLAB_METRICS_SERVICE_ID", - "value": "hwlab-cloud-web" - }, - { - "name": "HWLAB_METRICS_NAMESPACE", - "value": "hwlab-v03" - }, - { - "name": "HWLAB_METRICS_GITOPS_TARGET", - "value": "v03" - }, - { - "name": "HWLAB_METRICS_PORT", - "value": "9100" - }, - { - "name": "HWLAB_METRICS_TARGET_URL", - "value": "http://127.0.0.1:8080/health/live" - }, - { - "name": "HWLAB_METRICS_TARGET_TIMEOUT_MS", - "value": "2000" - } - ], - "ports": [ - { - "name": "metrics", - "containerPort": 9100 - } - ], - "readinessProbe": { - "httpGet": { - "path": "/health/live", - "port": "metrics" - }, - "initialDelaySeconds": 3, - "periodSeconds": 10 - }, - "livenessProbe": { - "httpGet": { - "path": "/health/live", - "port": "metrics" - }, - "initialDelaySeconds": 10, - "periodSeconds": 20 - }, - "volumeMounts": [ - { - "name": "hwlab-metrics-sidecar", - "mountPath": "/metrics", - "readOnly": true - } - ] - } - ], - "volumes": [ - { - "name": "hwlab-metrics-sidecar", - "configMap": { - "name": "hwlab-v03-metrics-sidecar" - } - } - ] - } - } - } - }, - { - "apiVersion": "apps/v1", - "kind": "Deployment", - "metadata": { - "name": "hwlab-gateway", - "namespace": "hwlab-v03", - "labels": { - "app.kubernetes.io/name": "hwlab-gateway", - "hwlab.pikastech.local/service-id": "hwlab-gateway", - "hwlab.pikastech.local/activation": "manual", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a", - "unidesk.ai/node-staging": "false" - }, - "annotations": { - "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a" - } - }, - "spec": { - "replicas": 0, - "selector": { - "matchLabels": { - "app.kubernetes.io/name": "hwlab-gateway", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03" - } - }, - "template": { - "metadata": { - "labels": { - "app.kubernetes.io/name": "hwlab-gateway", - "hwlab.pikastech.local/service-id": "hwlab-gateway", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - "annotations": { - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", - "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", - "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-gateway.sh", - "hwlab.pikastech.local/environment-digest": "sha256:e9b1dfdf18605498917a34dd0c71c6d5d1b91ef4ae073c5c21e2d5480b63abc8", - "hwlab.pikastech.local/environment-input-hash": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", - "hwlab.pikastech.local/code-input-hash": "9693556c71091e3e85d61efc6ef7d62e1064fba145ec83b3b9c196477f0b2870" - } - }, - "spec": { - "containers": [ - { - "name": "hwlab-gateway", - "image": "127.0.0.1:5000/hwlab/hwlab-gateway-env@sha256:e9b1dfdf18605498917a34dd0c71c6d5d1b91ef4ae073c5c21e2d5480b63abc8", - "ports": [ - { - "name": "http", - "containerPort": 7001 - } - ], - "env": [ - { - "name": "HWLAB_GATEWAY_MODE", - "value": "hardware-boundary" - }, - { - "name": "HWLAB_ENVIRONMENT", - "value": "v03" - }, - { - "name": "HWLAB_COMMIT_ID", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-gateway-env@sha256:e9b1dfdf18605498917a34dd0c71c6d5d1b91ef4ae073c5c21e2d5480b63abc8" - }, - { - "name": "HWLAB_IMAGE_TAG", - "value": "env-9495896df918" - }, - { - "name": "HWLAB_GITOPS_TARGET", - "value": "v03" - }, - { - "name": "HWLAB_GITOPS_PROFILE", - "value": "v03" - }, - { - "name": "HWLAB_GITOPS_SOURCE_COMMIT", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_RUNTIME_MODE", - "value": "env-reuse-git-mirror-checkout" - }, - { - "name": "HWLAB_BOOT_REPO", - "value": "git@github.com:pikasTech/HWLAB.git" - }, - { - "name": "HWLAB_BOOT_COMMIT", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_BOOT_REF", - "value": "v0.3" - }, - { - "name": "HWLAB_BOOT_SH", - "value": "deploy/runtime/boot/hwlab-gateway.sh" - }, - { - "name": "HWLAB_BOOT_READ_URL", - "value": "http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git" - }, - { - "name": "HWLAB_ENVIRONMENT_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-gateway-env:env-9495896df918" - }, - { - "name": "HWLAB_ENVIRONMENT_DIGEST", - "value": "sha256:e9b1dfdf18605498917a34dd0c71c6d5d1b91ef4ae073c5c21e2d5480b63abc8" - }, - { - "name": "HWLAB_ENVIRONMENT_INPUT_HASH", - "value": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" - }, - { - "name": "HWLAB_CODE_INPUT_HASH", - "value": "9693556c71091e3e85d61efc6ef7d62e1064fba145ec83b3b9c196477f0b2870" - }, - { - "name": "HWLAB_IMAGE_DIGEST", - "value": "sha256:e9b1dfdf18605498917a34dd0c71c6d5d1b91ef4ae073c5c21e2d5480b63abc8" - } - ], - "readinessProbe": { - "httpGet": { - "path": "/health/live", - "port": "http" - } - }, - "livenessProbe": { - "httpGet": { - "path": "/health/live", - "port": "http" - } - }, - "imagePullPolicy": "IfNotPresent", - "startupProbe": { - "httpGet": { - "path": "/health/live", - "port": "http" - }, - "periodSeconds": 10, - "timeoutSeconds": 2, - "failureThreshold": 30, - "successThreshold": 1 - } - } - ] - } - } - } - }, - { - "apiVersion": "apps/v1", - "kind": "Deployment", - "metadata": { - "name": "hwlab-edge-proxy", - "namespace": "hwlab-v03", - "labels": { - "app.kubernetes.io/name": "hwlab-edge-proxy", - "hwlab.pikastech.local/service-id": "hwlab-edge-proxy", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a", - "unidesk.ai/node-staging": "false", - "hwlab.pikastech.local/monitoring": "enabled" - }, - "annotations": { - "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a" - } - }, - "spec": { - "replicas": 1, - "selector": { - "matchLabels": { - "app.kubernetes.io/name": "hwlab-edge-proxy", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03" - } - }, - "template": { - "metadata": { - "labels": { - "app.kubernetes.io/name": "hwlab-edge-proxy", - "hwlab.pikastech.local/service-id": "hwlab-edge-proxy", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - "annotations": { - "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", - "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", - "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-edge-proxy.sh", - "hwlab.pikastech.local/environment-digest": "sha256:07e80adfbe753d88fb4037c21623badb7dad0d0c640121d16798ec121af06aa7", - "hwlab.pikastech.local/environment-input-hash": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", - "hwlab.pikastech.local/code-input-hash": "feaa7c30c37eb42248165bd2f574362dc91908d531d79f4211733b32929b1fa6" - } - }, - "spec": { - "containers": [ - { - "name": "hwlab-edge-proxy", - "image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy-env@sha256:07e80adfbe753d88fb4037c21623badb7dad0d0c640121d16798ec121af06aa7", - "ports": [ - { - "name": "http", - "containerPort": 6667 - } - ], - "env": [ - { - "name": "HWLAB_EDGE_LISTEN", - "value": "0.0.0.0:6667" - }, - { - "name": "HWLAB_EDGE_UPSTREAM", - "value": "http://hwlab-cloud-api.hwlab-v03.svc.cluster.local:6667" - }, - { - "name": "HWLAB_EDGE_PROXY_TIMEOUT_MS", - "value": "1260000" - }, - { - "name": "HWLAB_ENVIRONMENT", - "value": "v03" - }, - { - "name": "HWLAB_COMMIT_ID", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-edge-proxy-env@sha256:07e80adfbe753d88fb4037c21623badb7dad0d0c640121d16798ec121af06aa7" - }, - { - "name": "HWLAB_IMAGE_TAG", - "value": "env-9495896df918" - }, - { - "name": "HWLAB_GITOPS_TARGET", - "value": "v03" - }, - { - "name": "HWLAB_GITOPS_PROFILE", - "value": "v03" - }, - { - "name": "HWLAB_GITOPS_SOURCE_COMMIT", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_RUNTIME_MODE", - "value": "env-reuse-git-mirror-checkout" - }, - { - "name": "HWLAB_BOOT_REPO", - "value": "git@github.com:pikasTech/HWLAB.git" - }, - { - "name": "HWLAB_BOOT_COMMIT", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_BOOT_REF", - "value": "v0.3" - }, - { - "name": "HWLAB_BOOT_SH", - "value": "deploy/runtime/boot/hwlab-edge-proxy.sh" - }, - { - "name": "HWLAB_BOOT_READ_URL", - "value": "http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git" - }, - { - "name": "HWLAB_ENVIRONMENT_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-edge-proxy-env:env-9495896df918" - }, - { - "name": "HWLAB_ENVIRONMENT_DIGEST", - "value": "sha256:07e80adfbe753d88fb4037c21623badb7dad0d0c640121d16798ec121af06aa7" - }, - { - "name": "HWLAB_ENVIRONMENT_INPUT_HASH", - "value": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" - }, - { - "name": "HWLAB_CODE_INPUT_HASH", - "value": "feaa7c30c37eb42248165bd2f574362dc91908d531d79f4211733b32929b1fa6" - }, - { - "name": "HWLAB_IMAGE_DIGEST", - "value": "sha256:07e80adfbe753d88fb4037c21623badb7dad0d0c640121d16798ec121af06aa7" - }, - { - "name": "HWLAB_PUBLIC_ENDPOINT", - "value": "https://v03.hwpod.com" - } - ], - "readinessProbe": { - "httpGet": { - "path": "/health", - "port": "http" - } - }, - "livenessProbe": { - "httpGet": { - "path": "/health", - "port": "http" - } - }, - "imagePullPolicy": "IfNotPresent", - "startupProbe": { - "httpGet": { - "path": "/health/live", - "port": "http" - }, - "periodSeconds": 10, - "timeoutSeconds": 2, - "failureThreshold": 30, - "successThreshold": 1 - } - }, - { - "name": "hwlab-metrics", - "image": "127.0.0.1:5000/hwlab/hwlab-ci-node-tools:node22-alpine-bun-v1", - "imagePullPolicy": "IfNotPresent", - "command": [ - "node", - "/metrics/metrics-sidecar.mjs" - ], - "env": [ - { - "name": "HWLAB_METRICS_SERVICE_ID", - "value": "hwlab-edge-proxy" - }, - { - "name": "HWLAB_METRICS_NAMESPACE", - "value": "hwlab-v03" - }, - { - "name": "HWLAB_METRICS_GITOPS_TARGET", - "value": "v03" - }, - { - "name": "HWLAB_METRICS_PORT", - "value": "9100" - }, - { - "name": "HWLAB_METRICS_TARGET_URL", - "value": "http://127.0.0.1:6667/health" - }, - { - "name": "HWLAB_METRICS_TARGET_TIMEOUT_MS", - "value": "2000" - } - ], - "ports": [ - { - "name": "metrics", - "containerPort": 9100 - } - ], - "readinessProbe": { - "httpGet": { - "path": "/health/live", - "port": "metrics" - }, - "initialDelaySeconds": 3, - "periodSeconds": 10 - }, - "livenessProbe": { - "httpGet": { - "path": "/health/live", - "port": "metrics" - }, - "initialDelaySeconds": 10, - "periodSeconds": 20 - }, - "volumeMounts": [ - { - "name": "hwlab-metrics-sidecar", - "mountPath": "/metrics", - "readOnly": true - } - ] - } - ], - "volumes": [ - { - "name": "hwlab-metrics-sidecar", - "configMap": { - "name": "hwlab-v03-metrics-sidecar" - } - } - ] - } - } - } - }, - { - "apiVersion": "apps/v1", - "kind": "Deployment", - "metadata": { - "name": "hwlab-agent-skills", - "namespace": "hwlab-v03", - "labels": { - "app.kubernetes.io/name": "hwlab-agent-skills", - "hwlab.pikastech.local/service-id": "hwlab-agent-skills", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a", - "unidesk.ai/node-staging": "false", - "hwlab.pikastech.local/monitoring": "enabled" - }, - "annotations": { - "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", - "hwlab.pikastech.local/source-commit": "004235736f9168145885f1be57bd3c46fcb6ce6a" - } - }, - "spec": { - "replicas": 1, - "selector": { - "matchLabels": { - "app.kubernetes.io/name": "hwlab-agent-skills", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03" - } - }, - "template": { - "metadata": { - "labels": { - "app.kubernetes.io/name": "hwlab-agent-skills", - "hwlab.pikastech.local/service-id": "hwlab-agent-skills", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - "annotations": { - "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", - "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", - "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-agent-skills.sh", - "hwlab.pikastech.local/environment-digest": "sha256:ca8137d03351c8f9fd32a6b73ffec321a168c6af23d4d2503b5129906dd42480", - "hwlab.pikastech.local/environment-input-hash": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", - "hwlab.pikastech.local/code-input-hash": "369ca524ae4010fb5d9adfd30b4290808a035804b4674755bc193fee743f3d5a" - } - }, - "spec": { - "containers": [ - { - "name": "hwlab-agent-skills", - "image": "127.0.0.1:5000/hwlab/hwlab-agent-skills-env@sha256:ca8137d03351c8f9fd32a6b73ffec321a168c6af23d4d2503b5129906dd42480", - "ports": [ - { - "name": "http", - "containerPort": 7430 - } - ], - "env": [ - { - "name": "HWLAB_SKILLS_COMMIT_ID", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_ENVIRONMENT", - "value": "v03" - }, - { - "name": "HWLAB_COMMIT_ID", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-agent-skills-env@sha256:ca8137d03351c8f9fd32a6b73ffec321a168c6af23d4d2503b5129906dd42480" - }, - { - "name": "HWLAB_IMAGE_TAG", - "value": "env-9495896df918" - }, - { - "name": "HWLAB_GITOPS_TARGET", - "value": "v03" - }, - { - "name": "HWLAB_GITOPS_PROFILE", - "value": "v03" - }, - { - "name": "HWLAB_GITOPS_SOURCE_COMMIT", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_RUNTIME_MODE", - "value": "env-reuse-git-mirror-checkout" - }, - { - "name": "HWLAB_BOOT_REPO", - "value": "git@github.com:pikasTech/HWLAB.git" - }, - { - "name": "HWLAB_BOOT_COMMIT", - "value": "f3e0ad796126da7a7721b538936c971b824c2486" - }, - { - "name": "HWLAB_BOOT_REF", - "value": "v0.3" - }, - { - "name": "HWLAB_BOOT_SH", - "value": "deploy/runtime/boot/hwlab-agent-skills.sh" - }, - { - "name": "HWLAB_BOOT_READ_URL", - "value": "http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git" - }, - { - "name": "HWLAB_ENVIRONMENT_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-agent-skills-env:env-9495896df918" - }, - { - "name": "HWLAB_ENVIRONMENT_DIGEST", - "value": "sha256:ca8137d03351c8f9fd32a6b73ffec321a168c6af23d4d2503b5129906dd42480" - }, - { - "name": "HWLAB_ENVIRONMENT_INPUT_HASH", - "value": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" - }, - { - "name": "HWLAB_CODE_INPUT_HASH", - "value": "369ca524ae4010fb5d9adfd30b4290808a035804b4674755bc193fee743f3d5a" - }, - { - "name": "HWLAB_IMAGE_DIGEST", - "value": "sha256:ca8137d03351c8f9fd32a6b73ffec321a168c6af23d4d2503b5129906dd42480" - } - ], - "readinessProbe": { - "httpGet": { - "path": "/health/live", - "port": "http" - } - }, - "livenessProbe": { - "httpGet": { - "path": "/health/live", - "port": "http" - } - }, - "imagePullPolicy": "IfNotPresent", - "startupProbe": { - "httpGet": { - "path": "/health/live", - "port": "http" - }, - "periodSeconds": 10, - "timeoutSeconds": 2, - "failureThreshold": 30, - "successThreshold": 1 - } - }, - { - "name": "hwlab-metrics", - "image": "127.0.0.1:5000/hwlab/hwlab-ci-node-tools:node22-alpine-bun-v1", - "imagePullPolicy": "IfNotPresent", - "command": [ - "node", - "/metrics/metrics-sidecar.mjs" - ], - "env": [ - { - "name": "HWLAB_METRICS_SERVICE_ID", - "value": "hwlab-agent-skills" - }, - { - "name": "HWLAB_METRICS_NAMESPACE", - "value": "hwlab-v03" - }, - { - "name": "HWLAB_METRICS_GITOPS_TARGET", - "value": "v03" - }, - { - "name": "HWLAB_METRICS_PORT", - "value": "9100" - }, - { - "name": "HWLAB_METRICS_TARGET_URL", - "value": "http://127.0.0.1:7430/health/live" - }, - { - "name": "HWLAB_METRICS_TARGET_TIMEOUT_MS", - "value": "2000" - } - ], - "ports": [ - { - "name": "metrics", - "containerPort": 9100 - } - ], - "readinessProbe": { - "httpGet": { - "path": "/health/live", - "port": "metrics" - }, - "initialDelaySeconds": 3, - "periodSeconds": 10 - }, - "livenessProbe": { - "httpGet": { - "path": "/health/live", - "port": "metrics" - }, - "initialDelaySeconds": 10, - "periodSeconds": 20 - }, - "volumeMounts": [ - { - "name": "hwlab-metrics-sidecar", - "mountPath": "/metrics", - "readOnly": true - } - ] - } - ], - "volumes": [ - { - "name": "hwlab-metrics-sidecar", - "configMap": { - "name": "hwlab-v03-metrics-sidecar" - } - } - ] - } - } - } - } - ] -} +apiVersion: v1 +kind: List +items: + - apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + labels: + app.kubernetes.io/name: hwlab-user-skills + hwlab.pikastech.local/service-id: hwlab-user-skills + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + unidesk.ai/node-staging: "false" + name: hwlab-user-skills + namespace: hwlab-v03 + annotations: + hwlab.pikastech.local/gitops-note: node DEV GitOps target. + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi + - apiVersion: apps/v1 + kind: Deployment + metadata: + name: hwlab-cloud-api + namespace: hwlab-v03 + labels: + app.kubernetes.io/name: hwlab-cloud-api + hwlab.pikastech.local/service-id: hwlab-cloud-api + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + unidesk.ai/node-staging: "false" + hwlab.pikastech.local/monitoring: disabled + annotations: + hwlab.pikastech.local/gitops-note: node DEV GitOps target. + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app.kubernetes.io/name: hwlab-cloud-api + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + template: + metadata: + labels: + app.kubernetes.io/name: hwlab-cloud-api + hwlab.pikastech.local/service-id: hwlab-cloud-api + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/artifact-source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/monitoring: disabled + hwlab.pikastech.local/runtime-mode: env-reuse-git-mirror-checkout + hwlab.pikastech.local/boot-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + annotations: + hwlab.pikastech.local/source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/artifact-source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/rendered-by: scripts/gitops-render.mjs + hwlab.pikastech.local/runtime-mode: env-reuse-git-mirror-checkout + hwlab.pikastech.local/boot-repo: git@github.com:pikasTech/HWLAB.git + hwlab.pikastech.local/boot-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/boot-sh: deploy/runtime/boot/hwlab-cloud-api.sh + hwlab.pikastech.local/environment-digest: sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d + hwlab.pikastech.local/environment-input-hash: b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050 + hwlab.pikastech.local/code-input-hash: e2d48031bdb318a3bf175c7eb33c62963c94aaebe20d15445b3a4690bfb2530e + spec: + initContainers: [] + containers: + - name: hwlab-cloud-api + image: 127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d + ports: + - name: http + containerPort: 6667 + env: + - name: HWLAB_ENVIRONMENT + value: v03 + - name: HWLAB_PUBLIC_ENDPOINT + value: https://v03.hwpod.com + - name: HWLAB_CLOUD_API_PORT + value: "6667" + - name: HWLAB_COMMIT_ID + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_IMAGE + value: 127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d + - name: HWLAB_IMAGE_TAG + value: env-b0c5874f30a9 + - name: HWLAB_RUNTIME_SUBSTITUTE_FORBIDDEN + value: unidesk-backend,provider-gateway,microservice-proxy + - name: HWLAB_CLOUD_DB_URL + valueFrom: + secretKeyRef: + name: hwlab-cloud-api-v03-db + key: database-url + optional: true + - name: HWLAB_CLOUD_DB_SSL_MODE + value: disable + - name: HWLAB_CLOUD_DB_CONTRACT + value: v03-redacted-presence-only + - name: HWLAB_CLOUD_RUNTIME_ADAPTER + value: postgres + - name: HWLAB_CLOUD_RUNTIME_DURABLE + value: "true" + - name: HWLAB_M3_IO_CONTROL_ENABLED + value: "false" + - name: HWLAB_CODE_AGENT_TIMEOUT_MS + value: "1200000" + - name: NO_PROXY + value: hwlab-v03.svc.cluster.local,.svc,.cluster.local,hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,10.0.0.0/8,10.42.0.0/16,10.43.0.0/16,api.minimaxi.com,.minimaxi.com + - name: no_proxy + value: hwlab-v03.svc.cluster.local,.svc,.cluster.local,hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,10.0.0.0/8,10.42.0.0/16,10.43.0.0/16,api.minimaxi.com,.minimaxi.com + - name: HWLAB_CODE_AGENT_SKILLS_DIRS + value: /app/skills:/data/user-skills + - name: HWLAB_PREINSTALLED_SKILLS_DIR + value: /app/skills + - name: HWLAB_USER_SKILLS_DIR + value: /data/user-skills + - name: HWLAB_CODE_AGENT_DEFAULT_PROVIDER_PROFILE + value: deepseek + - name: HWLAB_CODE_AGENT_DEEPSEEK_MODEL + value: deepseek-chat + - name: HWLAB_CODE_AGENT_DEEPSEEK_BASE_URL + value: http://hwlab-deepseek-proxy.hwlab-v03.svc.cluster.local:4000/v1/responses + - name: HWLAB_CODE_AGENT_CODEX_API_MODEL + value: gpt-5.5 + - name: HWLAB_CODE_AGENT_CODEX_API_BASE_URL + value: http://127.0.0.1:49280/responses + - name: HWLAB_CODE_AGENT_CODEX_API_UPSTREAM_BASE_URL + value: https://hyueapi.com + - name: HWLAB_CODE_AGENT_CODEX_API_FORWARDER_PORT + value: "49280" + - name: HWLAB_ACCESS_CONTROL_REQUIRED + value: "1" + - name: HWLAB_BOOTSTRAP_ADMIN_ID + value: usr_v03_admin + - name: HWLAB_BOOTSTRAP_ADMIN_USERNAME + value: admin + - name: HWLAB_BOOTSTRAP_ADMIN_DISPLAY_NAME + value: HWLAB v0.3 Admin + - name: HWLAB_BOOTSTRAP_ADMIN_PASSWORD_HASH + valueFrom: + secretKeyRef: + name: hwlab-v03-bootstrap-admin + key: password-hash + optional: true + - name: HWLAB_BOOTSTRAP_ADMIN_API_KEY_ID + value: key_master_server_admin + - name: HWLAB_BOOTSTRAP_ADMIN_API_KEY + valueFrom: + secretKeyRef: + name: hwlab-v03-master-server-admin-api-key + key: api-key + optional: true + - name: HWLAB_KEYCLOAK_ISSUER + value: https://auth.74-48-78-17.nip.io/realms/hwlab + - name: HWLAB_KEYCLOAK_CLIENT_ID + value: hwlab-cloud-web + - name: HWLAB_KEYCLOAK_CLIENT_SECRET + valueFrom: + secretKeyRef: + name: hwlab-cloud-web-client + key: client-secret + optional: true + - name: HWLAB_CODE_AGENT_ADAPTER + value: agentrun-v01 + - name: AGENTRUN_MGR_URL + value: http://agentrun-mgr.agentrun-v01.svc.cluster.local:8080 + - name: HWLAB_CODE_AGENT_AGENTRUN_RUNNER_NAMESPACE + value: agentrun-v01 + - name: HWLAB_CODE_AGENT_AGENTRUN_SECRET_NAMESPACE + value: agentrun-v01 + - name: HWLAB_CODE_AGENT_AGENTRUN_REPO_URL + value: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git + - name: HWLAB_GITOPS_TARGET + value: v03 + - name: HWLAB_GITOPS_PROFILE + value: v03 + - name: HWLAB_GITOPS_SOURCE_COMMIT + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_CODE_AGENT_AGENTRUN_SOURCE_COMMIT + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_RUNTIME_MODE + value: env-reuse-git-mirror-checkout + - name: HWLAB_BOOT_REPO + value: git@github.com:pikasTech/HWLAB.git + - name: HWLAB_BOOT_COMMIT + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_BOOT_REF + value: v0.3 + - name: HWLAB_BOOT_SH + value: deploy/runtime/boot/hwlab-cloud-api.sh + - name: HWLAB_BOOT_READ_URL + value: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git + - name: HWLAB_ENVIRONMENT_IMAGE + value: 127.0.0.1:5000/hwlab/hwlab-cloud-api-env:env-b0c5874f30a9 + - name: HWLAB_ENVIRONMENT_DIGEST + value: sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d + - name: HWLAB_ENVIRONMENT_INPUT_HASH + value: b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050 + - name: HWLAB_CODE_INPUT_HASH + value: e2d48031bdb318a3bf175c7eb33c62963c94aaebe20d15445b3a4690bfb2530e + - name: HWLAB_IMAGE_DIGEST + value: sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d + - name: HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID + value: D601 + - name: HWLAB_OPENFGA_MODE + value: enforce + - name: HWLAB_OPENFGA_API_URL + value: http://hwlab-openfga.hwlab-v03.svc.cluster.local:8080 + - name: HWLAB_OPENFGA_AUTHN_TOKEN + valueFrom: + secretKeyRef: + name: hwlab-v03-openfga + key: authn-preshared-key + optional: true + - name: UNIDESK_MAIN_SERVER_IP + value: http://74.48.78.17:18081 + readinessProbe: + httpGet: + path: /health/live + port: http + livenessProbe: + httpGet: + path: /health/live + port: http + volumeMounts: + - name: hwlab-user-skills + mountPath: /data/user-skills + imagePullPolicy: IfNotPresent + startupProbe: + httpGet: + path: /health/live + port: http + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 30 + successThreshold: 1 + - name: hwlab-codex-api-forwarder + image: 127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d + ports: + - name: codex-api + containerPort: 49280 + env: + - name: HWLAB_CODE_AGENT_CODEX_API_FORWARDER_HOST + value: 127.0.0.1 + - name: HWLAB_CODE_AGENT_CODEX_API_FORWARDER_PORT + value: "49280" + - name: HWLAB_CODE_AGENT_CODEX_API_UPSTREAM_BASE_URL + value: https://hyueapi.com + - name: NO_PROXY + value: hwlab-v03.svc.cluster.local,.svc,.cluster.local,hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,10.0.0.0/8,10.42.0.0/16,10.43.0.0/16,api.minimaxi.com,.minimaxi.com + - name: no_proxy + value: hwlab-v03.svc.cluster.local,.svc,.cluster.local,hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,10.0.0.0/8,10.42.0.0/16,10.43.0.0/16,api.minimaxi.com,.minimaxi.com + - name: HWLAB_M3_IO_CONTROL_ENABLED + value: "false" + - name: HWLAB_ENVIRONMENT + value: v03 + - name: HWLAB_PUBLIC_ENDPOINT + value: https://v03.hwpod.com + - name: HWLAB_CLOUD_API_PORT + value: "6667" + - name: HWLAB_RUNTIME_SUBSTITUTE_FORBIDDEN + value: unidesk-backend,provider-gateway,microservice-proxy + - name: HWLAB_CLOUD_DB_URL + valueFrom: + secretKeyRef: + name: hwlab-cloud-api-v03-db + key: database-url + optional: true + - name: HWLAB_CLOUD_DB_SSL_MODE + value: disable + - name: HWLAB_CLOUD_DB_CONTRACT + value: v03-redacted-presence-only + - name: HWLAB_CLOUD_RUNTIME_ADAPTER + value: postgres + - name: HWLAB_CLOUD_RUNTIME_DURABLE + value: "true" + - name: HWLAB_CODE_AGENT_TIMEOUT_MS + value: "1200000" + - name: HWLAB_CODE_AGENT_SKILLS_DIRS + value: /app/skills:/data/user-skills + - name: HWLAB_PREINSTALLED_SKILLS_DIR + value: /app/skills + - name: HWLAB_USER_SKILLS_DIR + value: /data/user-skills + - name: HWLAB_CODE_AGENT_DEFAULT_PROVIDER_PROFILE + value: deepseek + - name: HWLAB_CODE_AGENT_DEEPSEEK_MODEL + value: deepseek-chat + - name: HWLAB_CODE_AGENT_DEEPSEEK_BASE_URL + value: http://hwlab-deepseek-proxy.hwlab-v03.svc.cluster.local:4000/v1/responses + - name: HWLAB_CODE_AGENT_CODEX_API_MODEL + value: gpt-5.5 + - name: HWLAB_CODE_AGENT_CODEX_API_BASE_URL + value: http://127.0.0.1:49280/responses + - name: HWLAB_ACCESS_CONTROL_REQUIRED + value: "1" + - name: HWLAB_BOOTSTRAP_ADMIN_ID + value: usr_v03_admin + - name: HWLAB_BOOTSTRAP_ADMIN_USERNAME + value: admin + - name: HWLAB_BOOTSTRAP_ADMIN_DISPLAY_NAME + value: HWLAB v0.3 Admin + - name: HWLAB_BOOTSTRAP_ADMIN_PASSWORD_HASH + valueFrom: + secretKeyRef: + name: hwlab-v03-bootstrap-admin + key: password-hash + optional: true + - name: HWLAB_BOOTSTRAP_ADMIN_API_KEY_ID + value: key_master_server_admin + - name: HWLAB_BOOTSTRAP_ADMIN_API_KEY + valueFrom: + secretKeyRef: + name: hwlab-v03-master-server-admin-api-key + key: api-key + optional: true + - name: HWLAB_KEYCLOAK_ISSUER + value: https://auth.74-48-78-17.nip.io/realms/hwlab + - name: HWLAB_KEYCLOAK_CLIENT_ID + value: hwlab-cloud-web + - name: HWLAB_KEYCLOAK_CLIENT_SECRET + valueFrom: + secretKeyRef: + name: hwlab-cloud-web-client + key: client-secret + optional: true + - name: HWLAB_CODE_AGENT_ADAPTER + value: agentrun-v01 + - name: AGENTRUN_MGR_URL + value: http://agentrun-mgr.agentrun-v01.svc.cluster.local:8080 + - name: HWLAB_CODE_AGENT_AGENTRUN_RUNNER_NAMESPACE + value: agentrun-v01 + - name: HWLAB_CODE_AGENT_AGENTRUN_SECRET_NAMESPACE + value: agentrun-v01 + - name: HWLAB_CODE_AGENT_AGENTRUN_REPO_URL + value: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git + - name: HWLAB_COMMIT_ID + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_IMAGE + value: 127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d + - name: HWLAB_IMAGE_TAG + value: env-b0c5874f30a9 + - name: HWLAB_GITOPS_TARGET + value: v03 + - name: HWLAB_GITOPS_PROFILE + value: v03 + - name: HWLAB_GITOPS_SOURCE_COMMIT + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_CODE_AGENT_AGENTRUN_SOURCE_COMMIT + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_RUNTIME_MODE + value: env-reuse-git-mirror-checkout + - name: HWLAB_BOOT_REPO + value: git@github.com:pikasTech/HWLAB.git + - name: HWLAB_BOOT_COMMIT + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_BOOT_REF + value: v0.3 + - name: HWLAB_BOOT_SH + value: deploy/runtime/boot/hwlab-codex-api-responses-forwarder.sh + - name: HWLAB_BOOT_READ_URL + value: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git + - name: HWLAB_ENVIRONMENT_IMAGE + value: 127.0.0.1:5000/hwlab/hwlab-cloud-api-env:env-b0c5874f30a9 + - name: HWLAB_ENVIRONMENT_DIGEST + value: sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d + - name: HWLAB_ENVIRONMENT_INPUT_HASH + value: b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050 + - name: HWLAB_CODE_INPUT_HASH + value: e2d48031bdb318a3bf175c7eb33c62963c94aaebe20d15445b3a4690bfb2530e + - name: HWLAB_IMAGE_DIGEST + value: sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d + - name: HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID + value: D601 + - name: HWLAB_OPENFGA_MODE + value: enforce + - name: HWLAB_OPENFGA_API_URL + value: http://hwlab-openfga.hwlab-v03.svc.cluster.local:8080 + - name: HWLAB_OPENFGA_AUTHN_TOKEN + valueFrom: + secretKeyRef: + name: hwlab-v03-openfga + key: authn-preshared-key + optional: true + - name: UNIDESK_MAIN_SERVER_IP + value: http://74.48.78.17:18081 + readinessProbe: + exec: + command: + - node + - -e + - "fetch('http://127.0.0.1:49280/health/readiness').then((r\ + esponse) => process.exit(response.ok ? 0 : 1)).catch(() => + process.exit(1))" + timeoutSeconds: 2 + livenessProbe: + exec: + command: + - node + - -e + - "fetch('http://127.0.0.1:49280/health/live').then((respon\ + se) => process.exit(response.ok ? 0 : 1)).catch(() => + process.exit(1))" + timeoutSeconds: 2 + volumeMounts: [] + imagePullPolicy: IfNotPresent + startupProbe: + exec: + command: + - node + - -e + - "fetch('http://127.0.0.1:49280/health/readiness').then((r\ + esponse) => process.exit(response.ok ? 0 : 1)).catch(() => + process.exit(1))" + timeoutSeconds: 2 + periodSeconds: 10 + failureThreshold: 30 + successThreshold: 1 + volumes: + - name: hwlab-user-skills + persistentVolumeClaim: + claimName: hwlab-user-skills + - apiVersion: apps/v1 + kind: Deployment + metadata: + name: hwlab-cloud-web + namespace: hwlab-v03 + labels: + app.kubernetes.io/name: hwlab-cloud-web + hwlab.pikastech.local/service-id: hwlab-cloud-web + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + unidesk.ai/node-staging: "false" + hwlab.pikastech.local/monitoring: disabled + annotations: + hwlab.pikastech.local/gitops-note: node DEV GitOps target. + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: hwlab-cloud-web + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + template: + metadata: + labels: + app.kubernetes.io/name: hwlab-cloud-web + hwlab.pikastech.local/service-id: hwlab-cloud-web + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/artifact-source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/monitoring: disabled + hwlab.pikastech.local/runtime-mode: env-reuse-git-mirror-checkout + hwlab.pikastech.local/boot-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + annotations: + hwlab.pikastech.local/source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/artifact-source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/rendered-by: scripts/gitops-render.mjs + hwlab.pikastech.local/runtime-mode: env-reuse-git-mirror-checkout + hwlab.pikastech.local/boot-repo: git@github.com:pikasTech/HWLAB.git + hwlab.pikastech.local/boot-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/boot-sh: deploy/runtime/boot/hwlab-cloud-web.sh + hwlab.pikastech.local/environment-digest: sha256:a53c710c92c5253c1feca456294058c6a1e45ff6b6e0440ebc0794ad24e4337c + hwlab.pikastech.local/environment-input-hash: b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050 + hwlab.pikastech.local/code-input-hash: fc88b16995fd65a887e8840762cfa656058fc4f5a8f099ec7762354b70918985 + spec: + containers: + - name: hwlab-cloud-web + image: 127.0.0.1:5000/hwlab/hwlab-cloud-web-env@sha256:a53c710c92c5253c1feca456294058c6a1e45ff6b6e0440ebc0794ad24e4337c + ports: + - name: http + containerPort: 8080 + env: + - name: HWLAB_API_BASE_URL + value: http://hwlab-cloud-api.hwlab-v03.svc.cluster.local:6667 + - name: HWLAB_CLOUD_WEB_PROXY_TIMEOUT_MS + value: "1260000" + - name: HWLAB_COMMIT_ID + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_IMAGE + value: 127.0.0.1:5000/hwlab/hwlab-cloud-web-env@sha256:a53c710c92c5253c1feca456294058c6a1e45ff6b6e0440ebc0794ad24e4337c + - name: HWLAB_IMAGE_TAG + value: env-b0c5874f30a9 + - name: HWLAB_ENVIRONMENT + value: v03 + - name: HWLAB_GITOPS_TARGET + value: v03 + - name: HWLAB_GITOPS_PROFILE + value: v03 + - name: HWLAB_GITOPS_SOURCE_COMMIT + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_RUNTIME_MODE + value: env-reuse-git-mirror-checkout + - name: HWLAB_BOOT_REPO + value: git@github.com:pikasTech/HWLAB.git + - name: HWLAB_BOOT_COMMIT + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_BOOT_REF + value: v0.3 + - name: HWLAB_BOOT_SH + value: deploy/runtime/boot/hwlab-cloud-web.sh + - name: HWLAB_BOOT_READ_URL + value: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git + - name: HWLAB_ENVIRONMENT_IMAGE + value: 127.0.0.1:5000/hwlab/hwlab-cloud-web-env:env-b0c5874f30a9 + - name: HWLAB_ENVIRONMENT_DIGEST + value: sha256:a53c710c92c5253c1feca456294058c6a1e45ff6b6e0440ebc0794ad24e4337c + - name: HWLAB_ENVIRONMENT_INPUT_HASH + value: b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050 + - name: HWLAB_CODE_INPUT_HASH + value: fc88b16995fd65a887e8840762cfa656058fc4f5a8f099ec7762354b70918985 + - name: HWLAB_IMAGE_DIGEST + value: sha256:a53c710c92c5253c1feca456294058c6a1e45ff6b6e0440ebc0794ad24e4337c + - name: HWLAB_PUBLIC_ENDPOINT + value: https://v03.hwpod.com + readinessProbe: + httpGet: + path: /health/live + port: http + livenessProbe: + httpGet: + path: /health/live + port: http + imagePullPolicy: IfNotPresent + startupProbe: + httpGet: + path: /health/live + port: http + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 30 + successThreshold: 1 + volumes: [] + - apiVersion: apps/v1 + kind: Deployment + metadata: + name: hwlab-gateway + namespace: hwlab-v03 + labels: + app.kubernetes.io/name: hwlab-gateway + hwlab.pikastech.local/service-id: hwlab-gateway + hwlab.pikastech.local/activation: manual + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + unidesk.ai/node-staging: "false" + annotations: + hwlab.pikastech.local/gitops-note: node DEV GitOps target. + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + spec: + replicas: 0 + selector: + matchLabels: + app.kubernetes.io/name: hwlab-gateway + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + template: + metadata: + labels: + app.kubernetes.io/name: hwlab-gateway + hwlab.pikastech.local/service-id: hwlab-gateway + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/artifact-source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/runtime-mode: env-reuse-git-mirror-checkout + hwlab.pikastech.local/boot-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + annotations: + hwlab.pikastech.local/source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/artifact-source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/rendered-by: scripts/gitops-render.mjs + hwlab.pikastech.local/runtime-mode: env-reuse-git-mirror-checkout + hwlab.pikastech.local/boot-repo: git@github.com:pikasTech/HWLAB.git + hwlab.pikastech.local/boot-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/boot-sh: deploy/runtime/boot/hwlab-gateway.sh + hwlab.pikastech.local/environment-digest: sha256:30aabe46d235788ebd7c59258f8b47217a6e79a9b1360a765db10d7f85fef1f3 + hwlab.pikastech.local/environment-input-hash: b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050 + hwlab.pikastech.local/code-input-hash: 9693556c71091e3e85d61efc6ef7d62e1064fba145ec83b3b9c196477f0b2870 + spec: + containers: + - name: hwlab-gateway + image: 127.0.0.1:5000/hwlab/hwlab-gateway-env@sha256:30aabe46d235788ebd7c59258f8b47217a6e79a9b1360a765db10d7f85fef1f3 + ports: + - name: http + containerPort: 7001 + env: + - name: HWLAB_GATEWAY_MODE + value: hardware-boundary + - name: HWLAB_ENVIRONMENT + value: v03 + - name: HWLAB_COMMIT_ID + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_IMAGE + value: 127.0.0.1:5000/hwlab/hwlab-gateway-env@sha256:30aabe46d235788ebd7c59258f8b47217a6e79a9b1360a765db10d7f85fef1f3 + - name: HWLAB_IMAGE_TAG + value: env-b0c5874f30a9 + - name: HWLAB_GITOPS_TARGET + value: v03 + - name: HWLAB_GITOPS_PROFILE + value: v03 + - name: HWLAB_GITOPS_SOURCE_COMMIT + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_RUNTIME_MODE + value: env-reuse-git-mirror-checkout + - name: HWLAB_BOOT_REPO + value: git@github.com:pikasTech/HWLAB.git + - name: HWLAB_BOOT_COMMIT + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_BOOT_REF + value: v0.3 + - name: HWLAB_BOOT_SH + value: deploy/runtime/boot/hwlab-gateway.sh + - name: HWLAB_BOOT_READ_URL + value: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git + - name: HWLAB_ENVIRONMENT_IMAGE + value: 127.0.0.1:5000/hwlab/hwlab-gateway-env:env-b0c5874f30a9 + - name: HWLAB_ENVIRONMENT_DIGEST + value: sha256:30aabe46d235788ebd7c59258f8b47217a6e79a9b1360a765db10d7f85fef1f3 + - name: HWLAB_ENVIRONMENT_INPUT_HASH + value: b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050 + - name: HWLAB_CODE_INPUT_HASH + value: 9693556c71091e3e85d61efc6ef7d62e1064fba145ec83b3b9c196477f0b2870 + - name: HWLAB_IMAGE_DIGEST + value: sha256:30aabe46d235788ebd7c59258f8b47217a6e79a9b1360a765db10d7f85fef1f3 + readinessProbe: + httpGet: + path: /health/live + port: http + livenessProbe: + httpGet: + path: /health/live + port: http + imagePullPolicy: IfNotPresent + startupProbe: + httpGet: + path: /health/live + port: http + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 30 + successThreshold: 1 + - apiVersion: apps/v1 + kind: Deployment + metadata: + name: hwlab-edge-proxy + namespace: hwlab-v03 + labels: + app.kubernetes.io/name: hwlab-edge-proxy + hwlab.pikastech.local/service-id: hwlab-edge-proxy + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + unidesk.ai/node-staging: "false" + hwlab.pikastech.local/monitoring: disabled + annotations: + hwlab.pikastech.local/gitops-note: node DEV GitOps target. + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: hwlab-edge-proxy + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + template: + metadata: + labels: + app.kubernetes.io/name: hwlab-edge-proxy + hwlab.pikastech.local/service-id: hwlab-edge-proxy + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/artifact-source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/monitoring: disabled + hwlab.pikastech.local/runtime-mode: env-reuse-git-mirror-checkout + hwlab.pikastech.local/boot-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + annotations: + hwlab.pikastech.local/source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/artifact-source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/rendered-by: scripts/gitops-render.mjs + hwlab.pikastech.local/runtime-mode: env-reuse-git-mirror-checkout + hwlab.pikastech.local/boot-repo: git@github.com:pikasTech/HWLAB.git + hwlab.pikastech.local/boot-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/boot-sh: deploy/runtime/boot/hwlab-edge-proxy.sh + hwlab.pikastech.local/environment-digest: sha256:0679fba942cb6b4580fb5dc1d24f6e37942a333c98050d262a41dffa4f82fe6a + hwlab.pikastech.local/environment-input-hash: b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050 + hwlab.pikastech.local/code-input-hash: feaa7c30c37eb42248165bd2f574362dc91908d531d79f4211733b32929b1fa6 + spec: + containers: + - name: hwlab-edge-proxy + image: 127.0.0.1:5000/hwlab/hwlab-edge-proxy-env@sha256:0679fba942cb6b4580fb5dc1d24f6e37942a333c98050d262a41dffa4f82fe6a + ports: + - name: http + containerPort: 6667 + env: + - name: HWLAB_EDGE_LISTEN + value: 0.0.0.0:6667 + - name: HWLAB_EDGE_UPSTREAM + value: http://hwlab-cloud-api.hwlab-v03.svc.cluster.local:6667 + - name: HWLAB_EDGE_PROXY_TIMEOUT_MS + value: "1260000" + - name: HWLAB_ENVIRONMENT + value: v03 + - name: HWLAB_COMMIT_ID + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_IMAGE + value: 127.0.0.1:5000/hwlab/hwlab-edge-proxy-env@sha256:0679fba942cb6b4580fb5dc1d24f6e37942a333c98050d262a41dffa4f82fe6a + - name: HWLAB_IMAGE_TAG + value: env-b0c5874f30a9 + - name: HWLAB_GITOPS_TARGET + value: v03 + - name: HWLAB_GITOPS_PROFILE + value: v03 + - name: HWLAB_GITOPS_SOURCE_COMMIT + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_RUNTIME_MODE + value: env-reuse-git-mirror-checkout + - name: HWLAB_BOOT_REPO + value: git@github.com:pikasTech/HWLAB.git + - name: HWLAB_BOOT_COMMIT + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_BOOT_REF + value: v0.3 + - name: HWLAB_BOOT_SH + value: deploy/runtime/boot/hwlab-edge-proxy.sh + - name: HWLAB_BOOT_READ_URL + value: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git + - name: HWLAB_ENVIRONMENT_IMAGE + value: 127.0.0.1:5000/hwlab/hwlab-edge-proxy-env:env-b0c5874f30a9 + - name: HWLAB_ENVIRONMENT_DIGEST + value: sha256:0679fba942cb6b4580fb5dc1d24f6e37942a333c98050d262a41dffa4f82fe6a + - name: HWLAB_ENVIRONMENT_INPUT_HASH + value: b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050 + - name: HWLAB_CODE_INPUT_HASH + value: feaa7c30c37eb42248165bd2f574362dc91908d531d79f4211733b32929b1fa6 + - name: HWLAB_IMAGE_DIGEST + value: sha256:0679fba942cb6b4580fb5dc1d24f6e37942a333c98050d262a41dffa4f82fe6a + - name: HWLAB_PUBLIC_ENDPOINT + value: https://v03.hwpod.com + readinessProbe: + httpGet: + path: /health + port: http + livenessProbe: + httpGet: + path: /health + port: http + imagePullPolicy: IfNotPresent + startupProbe: + httpGet: + path: /health/live + port: http + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 30 + successThreshold: 1 + volumes: [] + - apiVersion: apps/v1 + kind: Deployment + metadata: + name: hwlab-agent-skills + namespace: hwlab-v03 + labels: + app.kubernetes.io/name: hwlab-agent-skills + hwlab.pikastech.local/service-id: hwlab-agent-skills + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + unidesk.ai/node-staging: "false" + hwlab.pikastech.local/monitoring: disabled + annotations: + hwlab.pikastech.local/gitops-note: node DEV GitOps target. + hwlab.pikastech.local/source-commit: 004235736f9168145885f1be57bd3c46fcb6ce6a + spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: hwlab-agent-skills + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + template: + metadata: + labels: + app.kubernetes.io/name: hwlab-agent-skills + hwlab.pikastech.local/service-id: hwlab-agent-skills + app.kubernetes.io/part-of: hwlab + hwlab.pikastech.local/environment: v03 + hwlab.pikastech.local/profile: v03 + hwlab.pikastech.local/gitops-target: v03 + hwlab.pikastech.local/source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/artifact-source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/monitoring: disabled + hwlab.pikastech.local/runtime-mode: env-reuse-git-mirror-checkout + hwlab.pikastech.local/boot-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + annotations: + hwlab.pikastech.local/source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/artifact-source-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/rendered-by: scripts/gitops-render.mjs + hwlab.pikastech.local/runtime-mode: env-reuse-git-mirror-checkout + hwlab.pikastech.local/boot-repo: git@github.com:pikasTech/HWLAB.git + hwlab.pikastech.local/boot-commit: e1566e22c882b98de00041fafccffa2ffdc02ee6 + hwlab.pikastech.local/boot-sh: deploy/runtime/boot/hwlab-agent-skills.sh + hwlab.pikastech.local/environment-digest: sha256:f5e71b0e02756f25ea1e82c36dc34aa79caeb17e25d222e94f1be44106b19664 + hwlab.pikastech.local/environment-input-hash: b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050 + hwlab.pikastech.local/code-input-hash: 369ca524ae4010fb5d9adfd30b4290808a035804b4674755bc193fee743f3d5a + spec: + containers: + - name: hwlab-agent-skills + image: 127.0.0.1:5000/hwlab/hwlab-agent-skills-env@sha256:f5e71b0e02756f25ea1e82c36dc34aa79caeb17e25d222e94f1be44106b19664 + ports: + - name: http + containerPort: 7430 + env: + - name: HWLAB_SKILLS_COMMIT_ID + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_ENVIRONMENT + value: v03 + - name: HWLAB_COMMIT_ID + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_IMAGE + value: 127.0.0.1:5000/hwlab/hwlab-agent-skills-env@sha256:f5e71b0e02756f25ea1e82c36dc34aa79caeb17e25d222e94f1be44106b19664 + - name: HWLAB_IMAGE_TAG + value: env-b0c5874f30a9 + - name: HWLAB_GITOPS_TARGET + value: v03 + - name: HWLAB_GITOPS_PROFILE + value: v03 + - name: HWLAB_GITOPS_SOURCE_COMMIT + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_RUNTIME_MODE + value: env-reuse-git-mirror-checkout + - name: HWLAB_BOOT_REPO + value: git@github.com:pikasTech/HWLAB.git + - name: HWLAB_BOOT_COMMIT + value: e1566e22c882b98de00041fafccffa2ffdc02ee6 + - name: HWLAB_BOOT_REF + value: v0.3 + - name: HWLAB_BOOT_SH + value: deploy/runtime/boot/hwlab-agent-skills.sh + - name: HWLAB_BOOT_READ_URL + value: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB.git + - name: HWLAB_ENVIRONMENT_IMAGE + value: 127.0.0.1:5000/hwlab/hwlab-agent-skills-env:env-b0c5874f30a9 + - name: HWLAB_ENVIRONMENT_DIGEST + value: sha256:f5e71b0e02756f25ea1e82c36dc34aa79caeb17e25d222e94f1be44106b19664 + - name: HWLAB_ENVIRONMENT_INPUT_HASH + value: b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050 + - name: HWLAB_CODE_INPUT_HASH + value: 369ca524ae4010fb5d9adfd30b4290808a035804b4674755bc193fee743f3d5a + - name: HWLAB_IMAGE_DIGEST + value: sha256:f5e71b0e02756f25ea1e82c36dc34aa79caeb17e25d222e94f1be44106b19664 + readinessProbe: + httpGet: + path: /health/live + port: http + livenessProbe: + httpGet: + path: /health/live + port: http + imagePullPolicy: IfNotPresent + startupProbe: + httpGet: + path: /health/live + port: http + periodSeconds: 10 + timeoutSeconds: 2 + failureThreshold: 30 + successThreshold: 1 + volumes: []