{ "apiVersion": "v1", "kind": "List", "items": [ { "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": "hwlab-hwpod-api", "namespace": "hwlab-v03", "labels": { "app.kubernetes.io/name": "hwlab-hwpod-api", "hwlab.pikastech.local/service-id": "hwlab-hwpod-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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app.kubernetes.io/name": "hwlab-hwpod-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-hwpod-api", "hwlab.pikastech.local/service-id": "hwlab-hwpod-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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-hwpod-api.sh", "hwlab.pikastech.local/environment-digest": "sha256:70d4420bd5c17a8448d13b02bef54dfe7cdb2037e8b393884719edf1f073e761", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "5793ea5cd471c95b507c549fba90b13aa687c22990c83df91568fe7d9aaaad88" } }, "spec": { "containers": [ { "name": "hwlab-hwpod-api", "image": "127.0.0.1:5000/hwlab/hwlab-hwpod-api-env@sha256:70d4420bd5c17a8448d13b02bef54dfe7cdb2037e8b393884719edf1f073e761", "ports": [ { "name": "http", "containerPort": 6681 } ], "env": [ { "name": "HWPOD_API_PORT", "value": "6681" }, { "name": "TZ", "value": "Asia/Shanghai" }, { "name": "HWPOD_API_HOST", "value": "0.0.0.0" }, { "name": "HWPOD_TEMPORAL_ADDRESS", "value": "temporal-frontend.temporal.svc.cluster.local:7233" }, { "name": "HWPOD_TEMPORAL_NAMESPACE", "value": "unidesk" }, { "name": "HWPOD_TEMPORAL_TASK_QUEUE", "value": "hwlab-v03-hwpod" }, { "name": "HWPOD_NODE_OPS_API_URL", "value": "http://hwlab-hwpod-api.hwlab-v03.svc.cluster.local:6681" }, { "name": "HWPOD_NODE_WS_TOKEN", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-hwpod-node-auth", "key": "token", "optional": true } } }, { "name": "HWPOD_SPEC_DATABASE_URL", "valueFrom": { "secretKeyRef": { "name": "hwlab-cloud-api-v03-db", "key": "database-url", "optional": true } } }, { "name": "HWPOD_SPEC_DATABASE_SCHEMA", "value": "hwpod" }, { "name": "HWPOD_SPEC_DATABASE_TABLE", "value": "runtime_specs" }, { "name": "HWPOD_SPEC_DATABASE_CONNECTION_TIMEOUT_MS", "value": "5000" }, { "name": "HWPOD_BUILTIN_SPEC_CONFIG_DIRECTORY", "value": "/etc/hwlab/hwpod-specs" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-hwpod-api" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-hwpod-api-env@sha256:70d4420bd5c17a8448d13b02bef54dfe7cdb2037e8b393884719edf1f073e761" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_BOOT_REF", "value": "v0.3" }, { "name": "HWLAB_BOOT_SH", "value": "deploy/runtime/boot/hwlab-hwpod-api.sh" }, { "name": "HWLAB_BOOT_READ_URL", "value": "http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-hwpod-api-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:70d4420bd5c17a8448d13b02bef54dfe7cdb2037e8b393884719edf1f073e761" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "5793ea5cd471c95b507c549fba90b13aa687c22990c83df91568fe7d9aaaad88" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:70d4420bd5c17a8448d13b02bef54dfe7cdb2037e8b393884719edf1f073e761" } ], "readinessProbe": { "httpGet": { "path": "/health/ready", "port": "http" } }, "livenessProbe": { "httpGet": { "path": "/health/live", "port": "http" } }, "imagePullPolicy": "IfNotPresent", "volumeMounts": [ { "name": "hwpod-preinstalled-specs", "mountPath": "/etc/hwlab/hwpod-specs", "readOnly": true } ], "startupProbe": { "httpGet": { "path": "/health/ready", "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-hwpod-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:6681/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" } }, { "name": "hwpod-preinstalled-specs", "configMap": { "name": "hwlab-v03-hwpod-preinstalled-specs" } } ] } } } }, { "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": "hwlab-hwpod-worker", "namespace": "hwlab-v03", "labels": { "app.kubernetes.io/name": "hwlab-hwpod-worker", "hwlab.pikastech.local/service-id": "hwlab-hwpod-worker", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app.kubernetes.io/name": "hwlab-hwpod-worker", "app.kubernetes.io/part-of": "hwlab", "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03" } }, "template": { "metadata": { "labels": { "app.kubernetes.io/name": "hwlab-hwpod-worker", "hwlab.pikastech.local/service-id": "hwlab-hwpod-worker", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-hwpod-worker.sh", "hwlab.pikastech.local/environment-digest": "sha256:bdb5fe5c2cb467f3eb81141e2617af8188b7e1a4221de1afcb1141b2fbd527f3", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "c4baf75f15c8e46b7a40774e9c6a7c5f1853cc1766c6f6ca710824ac2398b71b" } }, "spec": { "containers": [ { "name": "hwlab-hwpod-worker", "image": "127.0.0.1:5000/hwlab/hwlab-hwpod-worker-env@sha256:bdb5fe5c2cb467f3eb81141e2617af8188b7e1a4221de1afcb1141b2fbd527f3", "ports": [ { "name": "health", "containerPort": 6682 } ], "env": [ { "name": "HWPOD_WORKER_HEALTH_PORT", "value": "6682" }, { "name": "TZ", "value": "Asia/Shanghai" }, { "name": "HWPOD_WORKER_HEALTH_HOST", "value": "0.0.0.0" }, { "name": "HWPOD_TEMPORAL_ADDRESS", "value": "temporal-frontend.temporal.svc.cluster.local:7233" }, { "name": "HWPOD_TEMPORAL_NAMESPACE", "value": "unidesk" }, { "name": "HWPOD_TEMPORAL_TASK_QUEUE", "value": "hwlab-v03-hwpod" }, { "name": "HWPOD_NODE_OPS_API_URL", "value": "http://hwlab-hwpod-api.hwlab-v03.svc.cluster.local:6681" }, { "name": "HWPOD_SPEC_DATABASE_URL", "valueFrom": { "secretKeyRef": { "name": "hwlab-cloud-api-v03-db", "key": "database-url", "optional": true } } }, { "name": "HWPOD_SPEC_DATABASE_SCHEMA", "value": "hwpod" }, { "name": "HWPOD_SPEC_DATABASE_TABLE", "value": "runtime_specs" }, { "name": "HWPOD_SPEC_DATABASE_CONNECTION_TIMEOUT_MS", "value": "5000" }, { "name": "HWPOD_BUILTIN_SPEC_CONFIG_DIRECTORY", "value": "/etc/hwlab/hwpod-specs" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-hwpod-worker" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-hwpod-worker-env@sha256:bdb5fe5c2cb467f3eb81141e2617af8188b7e1a4221de1afcb1141b2fbd527f3" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_BOOT_REF", "value": "v0.3" }, { "name": "HWLAB_BOOT_SH", "value": "deploy/runtime/boot/hwlab-hwpod-worker.sh" }, { "name": "HWLAB_BOOT_READ_URL", "value": "http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-hwpod-worker-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:bdb5fe5c2cb467f3eb81141e2617af8188b7e1a4221de1afcb1141b2fbd527f3" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "c4baf75f15c8e46b7a40774e9c6a7c5f1853cc1766c6f6ca710824ac2398b71b" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:bdb5fe5c2cb467f3eb81141e2617af8188b7e1a4221de1afcb1141b2fbd527f3" } ], "readinessProbe": { "httpGet": { "path": "/health/ready", "port": "health" } }, "livenessProbe": { "httpGet": { "path": "/health/live", "port": "health" } }, "imagePullPolicy": "IfNotPresent", "volumeMounts": [ { "name": "hwpod-preinstalled-specs", "mountPath": "/etc/hwlab/hwpod-specs", "readOnly": true } ], "startupProbe": { "httpGet": { "path": "/health/ready", "port": "health" }, "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-hwpod-worker" }, { "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:6682/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" } }, { "name": "hwpod-preinstalled-specs", "configMap": { "name": "hwlab-v03-hwpod-preinstalled-specs" } } ] } } } }, { "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": "hwlab-hwpod-web", "namespace": "hwlab-v03", "labels": { "app.kubernetes.io/name": "hwlab-hwpod-web", "hwlab.pikastech.local/service-id": "hwlab-hwpod-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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app.kubernetes.io/name": "hwlab-hwpod-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-hwpod-web", "hwlab.pikastech.local/service-id": "hwlab-hwpod-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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-hwpod-web.sh", "hwlab.pikastech.local/environment-digest": "sha256:d5a43274fdef3802351e013c91e027f6bbb4a2bd72da1258bd56a052b87cf48f", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "5530dc0c9147bd193332c8ca08e0bef0f4e3eb01c48284c4642f5dbe2abf2443" } }, "spec": { "containers": [ { "name": "hwlab-hwpod-web", "image": "127.0.0.1:5000/hwlab/hwlab-hwpod-web-env@sha256:d5a43274fdef3802351e013c91e027f6bbb4a2bd72da1258bd56a052b87cf48f", "ports": [ { "name": "http", "containerPort": 8080 } ], "env": [ { "name": "HWPOD_WEB_PORT", "value": "8080" }, { "name": "BUN_CONFIG_REGISTRY", "value": "https://registry.npmjs.org/" }, { "name": "npm_config_registry", "value": "https://registry.npmjs.org/" }, { "name": "HWPOD_WEB_HOST", "value": "0.0.0.0" }, { "name": "HWPOD_API_URL", "value": "http://hwlab-hwpod-api.hwlab-v03.svc.cluster.local:6681" }, { "name": "HWPOD_WEB_ROOT", "value": "web/hwlab-cloud-web/hwpod/dist" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-hwpod-web" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-hwpod-web-env@sha256:d5a43274fdef3802351e013c91e027f6bbb4a2bd72da1258bd56a052b87cf48f" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_BOOT_REF", "value": "v0.3" }, { "name": "HWLAB_BOOT_SH", "value": "deploy/runtime/boot/hwlab-hwpod-web.sh" }, { "name": "HWLAB_BOOT_READ_URL", "value": "http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-hwpod-web-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:d5a43274fdef3802351e013c91e027f6bbb4a2bd72da1258bd56a052b87cf48f" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "5530dc0c9147bd193332c8ca08e0bef0f4e3eb01c48284c4642f5dbe2abf2443" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:d5a43274fdef3802351e013c91e027f6bbb4a2bd72da1258bd56a052b87cf48f" } ], "readinessProbe": { "httpGet": { "path": "/health/live", "port": "http" } }, "livenessProbe": { "httpGet": { "path": "/health/live", "port": "http" } }, "imagePullPolicy": "IfNotPresent", "startupProbe": { "httpGet": { "path": "/health/live", "port": "http" }, "periodSeconds": 5, "timeoutSeconds": 3, "failureThreshold": 60, "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-hwpod-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-tasktree-api", "namespace": "hwlab-v03", "labels": { "app.kubernetes.io/name": "hwlab-tasktree-api", "hwlab.pikastech.local/service-id": "hwlab-tasktree-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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app.kubernetes.io/name": "hwlab-tasktree-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-tasktree-api", "hwlab.pikastech.local/service-id": "hwlab-tasktree-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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-tasktree-api.sh", "hwlab.pikastech.local/environment-digest": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "b1981a9b6760b7b5ba700232d93359d220db94ad87c569b120924c4505378413" } }, "spec": { "containers": [ { "name": "hwlab-tasktree-api", "image": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "ports": [ { "name": "http", "containerPort": 6673 } ], "env": [ { "name": "TASKTREE_API_PORT", "value": "6673" }, { "name": "TZ", "value": "Asia/Shanghai" }, { "name": "TASKTREE_DATABASE_URL", "valueFrom": { "secretKeyRef": { "name": "hwlab-tasktree-db", "key": "database-url", "optional": true } } }, { "name": "TASKTREE_TEMPORAL_ADDRESS", "value": "temporal-frontend.temporal.svc.cluster.local:7233" }, { "name": "TASKTREE_TEMPORAL_NAMESPACE", "value": "unidesk" }, { "name": "TASKTREE_TEMPORAL_TASK_QUEUE", "value": "hwlab-v03-tasktree" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-tasktree-api" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_BOOT_REF", "value": "v0.3" }, { "name": "HWLAB_BOOT_SH", "value": "deploy/runtime/boot/hwlab-tasktree-api.sh" }, { "name": "HWLAB_BOOT_READ_URL", "value": "http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "b1981a9b6760b7b5ba700232d93359d220db94ad87c569b120924c4505378413" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" } ], "readinessProbe": { "httpGet": { "path": "/health/ready", "port": "http" } }, "livenessProbe": { "httpGet": { "path": "/health/live", "port": "http" } }, "imagePullPolicy": "IfNotPresent", "startupProbe": { "httpGet": { "path": "/health/ready", "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-tasktree-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:6673/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-tasktree-worker", "namespace": "hwlab-v03", "labels": { "app.kubernetes.io/name": "hwlab-tasktree-worker", "hwlab.pikastech.local/service-id": "hwlab-tasktree-worker", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app.kubernetes.io/name": "hwlab-tasktree-worker", "app.kubernetes.io/part-of": "hwlab", "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03" } }, "template": { "metadata": { "labels": { "app.kubernetes.io/name": "hwlab-tasktree-worker", "hwlab.pikastech.local/service-id": "hwlab-tasktree-worker", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-tasktree-worker.sh", "hwlab.pikastech.local/environment-digest": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "4d2ca1977849c9301c127af461d26997f98a6fc1f2089dcf09897cfb1874ef6c" } }, "spec": { "containers": [ { "name": "hwlab-tasktree-worker", "image": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "ports": [ { "name": "http", "containerPort": 6674 } ], "env": [ { "name": "TASKTREE_WORKER_HEALTH_PORT", "value": "6674" }, { "name": "TZ", "value": "Asia/Shanghai" }, { "name": "TASKTREE_DATABASE_URL", "valueFrom": { "secretKeyRef": { "name": "hwlab-tasktree-db", "key": "database-url", "optional": true } } }, { "name": "TASKTREE_TEMPORAL_ADDRESS", "value": "temporal-frontend.temporal.svc.cluster.local:7233" }, { "name": "TASKTREE_TEMPORAL_NAMESPACE", "value": "unidesk" }, { "name": "TASKTREE_TEMPORAL_TASK_QUEUE", "value": "hwlab-v03-tasktree" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-tasktree-worker" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_BOOT_REF", "value": "v0.3" }, { "name": "HWLAB_BOOT_SH", "value": "deploy/runtime/boot/hwlab-tasktree-worker.sh" }, { "name": "HWLAB_BOOT_READ_URL", "value": "http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "4d2ca1977849c9301c127af461d26997f98a6fc1f2089dcf09897cfb1874ef6c" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" } ], "readinessProbe": { "httpGet": { "path": "/health/ready", "port": "http" } }, "livenessProbe": { "httpGet": { "path": "/health/live", "port": "http" } }, "imagePullPolicy": "IfNotPresent", "startupProbe": { "httpGet": { "path": "/health/ready", "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-tasktree-worker" }, { "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:6674/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-harnessrl-api", "namespace": "hwlab-v03", "labels": { "app.kubernetes.io/name": "hwlab-harnessrl-api", "hwlab.pikastech.local/service-id": "hwlab-harnessrl-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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app.kubernetes.io/name": "hwlab-harnessrl-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-harnessrl-api", "hwlab.pikastech.local/service-id": "hwlab-harnessrl-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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-harnessrl-api.sh", "hwlab.pikastech.local/environment-digest": "sha256:be9e19679ceb9957d254a219b6896e145fdde9716b331fa796fdfd22ec61550f", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "a48f28e72d6e952f36114052f395408bb062f076e2c0c7f864f028f0b6783412" } }, "spec": { "containers": [ { "name": "hwlab-harnessrl-api", "image": "127.0.0.1:5000/hwlab/hwlab-harnessrl-api-env@sha256:be9e19679ceb9957d254a219b6896e145fdde9716b331fa796fdfd22ec61550f", "ports": [ { "name": "http", "containerPort": 6675 } ], "env": [ { "name": "HARNESSRL_API_PORT", "value": "6675" }, { "name": "TZ", "value": "Asia/Shanghai" }, { "name": "HARNESSRL_DATABASE_URL", "valueFrom": { "secretKeyRef": { "name": "hwlab-cloud-api-v03-db", "key": "database-url", "optional": true } } }, { "name": "HARNESSRL_TEMPORAL_ADDRESS", "value": "temporal-frontend.temporal.svc.cluster.local:7233" }, { "name": "HARNESSRL_TEMPORAL_NAMESPACE", "value": "unidesk" }, { "name": "HARNESSRL_TEMPORAL_TASK_QUEUE", "value": "hwlab-v03-harnessrl" }, { "name": "HARNESSRL_ACTIVITY_START_TO_CLOSE_TIMEOUT_MS", "value": "1800000" }, { "name": "HARNESSRL_ACTIVITY_HEARTBEAT_TIMEOUT_MS", "value": "30000" }, { "name": "HARNESSRL_ACTIVITY_RETRY_INITIAL_INTERVAL_MS", "value": "1000" }, { "name": "HARNESSRL_ACTIVITY_RETRY_MAXIMUM_INTERVAL_MS", "value": "30000" }, { "name": "HARNESSRL_ACTIVITY_RETRY_MAXIMUM_ATTEMPTS", "value": "5" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-harnessrl-api" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-harnessrl-api-env@sha256:be9e19679ceb9957d254a219b6896e145fdde9716b331fa796fdfd22ec61550f" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_BOOT_REF", "value": "v0.3" }, { "name": "HWLAB_BOOT_SH", "value": "deploy/runtime/boot/hwlab-harnessrl-api.sh" }, { "name": "HWLAB_BOOT_READ_URL", "value": "http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-harnessrl-api-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:be9e19679ceb9957d254a219b6896e145fdde9716b331fa796fdfd22ec61550f" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "a48f28e72d6e952f36114052f395408bb062f076e2c0c7f864f028f0b6783412" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:be9e19679ceb9957d254a219b6896e145fdde9716b331fa796fdfd22ec61550f" } ], "readinessProbe": { "httpGet": { "path": "/health/ready", "port": "http" } }, "livenessProbe": { "httpGet": { "path": "/health/live", "port": "http" } }, "imagePullPolicy": "IfNotPresent", "startupProbe": { "httpGet": { "path": "/health/ready", "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-harnessrl-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:6675/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-harnessrl-worker", "namespace": "hwlab-v03", "labels": { "app.kubernetes.io/name": "hwlab-harnessrl-worker", "hwlab.pikastech.local/service-id": "hwlab-harnessrl-worker", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app.kubernetes.io/name": "hwlab-harnessrl-worker", "app.kubernetes.io/part-of": "hwlab", "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03" } }, "template": { "metadata": { "labels": { "app.kubernetes.io/name": "hwlab-harnessrl-worker", "hwlab.pikastech.local/service-id": "hwlab-harnessrl-worker", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-harnessrl-worker.sh", "hwlab.pikastech.local/environment-digest": "sha256:ed738e7f3e4fe9ffb835f9df49f4ea9454ea250f7e79072497711960ad3935e3", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "e5cfa8df59198459e82bbf99b19508a420f6f030c41c81c1b3df808a81d8c89a" } }, "spec": { "containers": [ { "name": "hwlab-harnessrl-worker", "image": "127.0.0.1:5000/hwlab/hwlab-harnessrl-worker-env@sha256:ed738e7f3e4fe9ffb835f9df49f4ea9454ea250f7e79072497711960ad3935e3", "ports": [ { "name": "health", "containerPort": 6676 } ], "env": [ { "name": "HARNESSRL_WORKER_HEALTH_PORT", "value": "6676" }, { "name": "TZ", "value": "Asia/Shanghai" }, { "name": "HWLAB_CASERUN_INTERNAL_API_URL", "value": "http://hwlab-cloud-api.hwlab-v03.svc.cluster.local:6667" }, { "name": "HARNESSRL_DATABASE_URL", "valueFrom": { "secretKeyRef": { "name": "hwlab-cloud-api-v03-db", "key": "database-url", "optional": true } } }, { "name": "HARNESSRL_TEMPORAL_ADDRESS", "value": "temporal-frontend.temporal.svc.cluster.local:7233" }, { "name": "HARNESSRL_TEMPORAL_NAMESPACE", "value": "unidesk" }, { "name": "HARNESSRL_TEMPORAL_TASK_QUEUE", "value": "hwlab-v03-harnessrl" }, { "name": "HARNESSRL_ACTIVITY_START_TO_CLOSE_TIMEOUT_MS", "value": "1800000" }, { "name": "HARNESSRL_ACTIVITY_HEARTBEAT_TIMEOUT_MS", "value": "30000" }, { "name": "HARNESSRL_ACTIVITY_RETRY_INITIAL_INTERVAL_MS", "value": "1000" }, { "name": "HARNESSRL_ACTIVITY_RETRY_MAXIMUM_INTERVAL_MS", "value": "30000" }, { "name": "HARNESSRL_ACTIVITY_RETRY_MAXIMUM_ATTEMPTS", "value": "5" }, { "name": "HWLAB_RUNTIME_INTERNAL_API_URL", "value": "http://hwlab-cloud-api.hwlab-v03.svc.cluster.local:6667" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-harnessrl-worker" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-harnessrl-worker-env@sha256:ed738e7f3e4fe9ffb835f9df49f4ea9454ea250f7e79072497711960ad3935e3" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_BOOT_REF", "value": "v0.3" }, { "name": "HWLAB_BOOT_SH", "value": "deploy/runtime/boot/hwlab-harnessrl-worker.sh" }, { "name": "HWLAB_BOOT_READ_URL", "value": "http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-harnessrl-worker-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:ed738e7f3e4fe9ffb835f9df49f4ea9454ea250f7e79072497711960ad3935e3" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "e5cfa8df59198459e82bbf99b19508a420f6f030c41c81c1b3df808a81d8c89a" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:ed738e7f3e4fe9ffb835f9df49f4ea9454ea250f7e79072497711960ad3935e3" } ], "readinessProbe": { "httpGet": { "path": "/health/ready", "port": "health" } }, "livenessProbe": { "httpGet": { "path": "/health/live", "port": "health" } }, "imagePullPolicy": "IfNotPresent", "startupProbe": { "httpGet": { "path": "/health/ready", "port": "health" }, "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-harnessrl-worker" }, { "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:6676/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-workbench-api", "namespace": "hwlab-v03", "labels": { "app.kubernetes.io/name": "hwlab-workbench-api", "hwlab.pikastech.local/service-id": "hwlab-workbench-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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app.kubernetes.io/name": "hwlab-workbench-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-workbench-api", "hwlab.pikastech.local/service-id": "hwlab-workbench-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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-workbench-api.sh", "hwlab.pikastech.local/environment-digest": "sha256:65cbd71dc7eb8557d0999bc42e25ad88b9988b121288f8adddd9ff1b7efb395b", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "ad8f907bfd20e5e637d6f4a5ac0f7a551ddda37939a9b5ee102009278c4a96d9" } }, "spec": { "containers": [ { "name": "hwlab-workbench-api", "image": "127.0.0.1:5000/hwlab/hwlab-workbench-api-env@sha256:65cbd71dc7eb8557d0999bc42e25ad88b9988b121288f8adddd9ff1b7efb395b", "ports": [ { "name": "http", "containerPort": 6677 } ], "env": [ { "name": "WORKBENCH_API_PORT", "value": "6677" }, { "name": "TZ", "value": "Asia/Shanghai" }, { "name": "WORKBENCH_MODE", "value": "temporal" }, { "name": "WORKBENCH_API_IDLE_TIMEOUT_SECONDS", "value": "60" }, { "name": "WORKBENCH_CLOUD_API_URL", "value": "http://hwlab-cloud-api.hwlab-v03.svc.cluster.local:6667" }, { "name": "WORKBENCH_CLOUD_API_AUTHORIZATION", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-master-server-admin-api-key", "key": "api-key", "optional": true } } }, { "name": "WORKBENCH_API_AUTHORIZATION", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-master-server-admin-api-key", "key": "api-key", "optional": true } } }, { "name": "WORKBENCH_TEMPORAL_ADDRESS", "value": "temporal-frontend.temporal.svc.cluster.local:7233" }, { "name": "WORKBENCH_TEMPORAL_NAMESPACE", "value": "unidesk" }, { "name": "WORKBENCH_TEMPORAL_TASK_QUEUE", "value": "hwlab-v03-workbench" }, { "name": "WORKBENCH_ACTIVITY_START_TO_CLOSE_TIMEOUT_MS", "value": "30000" }, { "name": "WORKBENCH_ACTIVITY_RETRY_INITIAL_INTERVAL_MS", "value": "1000" }, { "name": "WORKBENCH_ACTIVITY_RETRY_MAXIMUM_INTERVAL_MS", "value": "30000" }, { "name": "WORKBENCH_ACTIVITY_RETRY_MAXIMUM_ATTEMPTS", "value": "5" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-workbench-api" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-workbench-api-env@sha256:65cbd71dc7eb8557d0999bc42e25ad88b9988b121288f8adddd9ff1b7efb395b" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_BOOT_REF", "value": "v0.3" }, { "name": "HWLAB_BOOT_SH", "value": "deploy/runtime/boot/hwlab-workbench-api.sh" }, { "name": "HWLAB_BOOT_READ_URL", "value": "http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-workbench-api-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:65cbd71dc7eb8557d0999bc42e25ad88b9988b121288f8adddd9ff1b7efb395b" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "ad8f907bfd20e5e637d6f4a5ac0f7a551ddda37939a9b5ee102009278c4a96d9" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:65cbd71dc7eb8557d0999bc42e25ad88b9988b121288f8adddd9ff1b7efb395b" } ], "readinessProbe": { "httpGet": { "path": "/health/ready", "port": "http" } }, "livenessProbe": { "httpGet": { "path": "/health/live", "port": "http" } }, "imagePullPolicy": "IfNotPresent", "startupProbe": { "httpGet": { "path": "/health/ready", "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-workbench-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:6677/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-workbench-worker", "namespace": "hwlab-v03", "labels": { "app.kubernetes.io/name": "hwlab-workbench-worker", "hwlab.pikastech.local/service-id": "hwlab-workbench-worker", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app.kubernetes.io/name": "hwlab-workbench-worker", "app.kubernetes.io/part-of": "hwlab", "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03" } }, "template": { "metadata": { "labels": { "app.kubernetes.io/name": "hwlab-workbench-worker", "hwlab.pikastech.local/service-id": "hwlab-workbench-worker", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-workbench-worker.sh", "hwlab.pikastech.local/environment-digest": "sha256:cc5e6934b1283b2ef7bb9ae74c28b279430983cbaf8e0258d8bd25ab9c60fd0d", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "a7bde24f7822dd206d1241c4ab27d28774fe01beaf248bd1ce8973a236d4040c" } }, "spec": { "containers": [ { "name": "hwlab-workbench-worker", "image": "127.0.0.1:5000/hwlab/hwlab-workbench-worker-env@sha256:cc5e6934b1283b2ef7bb9ae74c28b279430983cbaf8e0258d8bd25ab9c60fd0d", "ports": [ { "name": "health", "containerPort": 6678 } ], "env": [ { "name": "WORKBENCH_WORKER_HEALTH_PORT", "value": "6678" }, { "name": "TZ", "value": "Asia/Shanghai" }, { "name": "WORKBENCH_MODE", "value": "temporal" }, { "name": "WORKBENCH_CLOUD_API_URL", "value": "http://hwlab-cloud-api.hwlab-v03.svc.cluster.local:6667" }, { "name": "WORKBENCH_CLOUD_API_AUTHORIZATION", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-master-server-admin-api-key", "key": "api-key", "optional": true } } }, { "name": "WORKBENCH_TEMPORAL_ADDRESS", "value": "temporal-frontend.temporal.svc.cluster.local:7233" }, { "name": "WORKBENCH_TEMPORAL_NAMESPACE", "value": "unidesk" }, { "name": "WORKBENCH_TEMPORAL_TASK_QUEUE", "value": "hwlab-v03-workbench" }, { "name": "WORKBENCH_ACTIVITY_START_TO_CLOSE_TIMEOUT_MS", "value": "30000" }, { "name": "WORKBENCH_ACTIVITY_RETRY_INITIAL_INTERVAL_MS", "value": "1000" }, { "name": "WORKBENCH_ACTIVITY_RETRY_MAXIMUM_INTERVAL_MS", "value": "30000" }, { "name": "WORKBENCH_ACTIVITY_RETRY_MAXIMUM_ATTEMPTS", "value": "5" }, { "name": "HWLAB_KAFKA_BOOTSTRAP_SERVERS", "value": "platform-infra-kafka-kafka-bootstrap.platform-infra.svc.cluster.local:9092" }, { "name": "HWLAB_KAFKA_EVENT_TOPIC", "value": "hwlab.event.v1" }, { "name": "HWLAB_KAFKA_CLIENT_ID", "value": "hwlab-v03-workbench-worker" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-workbench-worker" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-workbench-worker-env@sha256:cc5e6934b1283b2ef7bb9ae74c28b279430983cbaf8e0258d8bd25ab9c60fd0d" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_BOOT_REF", "value": "v0.3" }, { "name": "HWLAB_BOOT_SH", "value": "deploy/runtime/boot/hwlab-workbench-worker.sh" }, { "name": "HWLAB_BOOT_READ_URL", "value": "http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-workbench-worker-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:cc5e6934b1283b2ef7bb9ae74c28b279430983cbaf8e0258d8bd25ab9c60fd0d" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "a7bde24f7822dd206d1241c4ab27d28774fe01beaf248bd1ce8973a236d4040c" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:cc5e6934b1283b2ef7bb9ae74c28b279430983cbaf8e0258d8bd25ab9c60fd0d" } ], "readinessProbe": { "httpGet": { "path": "/health/ready", "port": "health" } }, "livenessProbe": { "httpGet": { "path": "/health/live", "port": "health" } }, "imagePullPolicy": "IfNotPresent", "startupProbe": { "httpGet": { "path": "/health/ready", "port": "health" }, "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-workbench-worker" }, { "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:6678/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": "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "spec": { "accessModes": [ "ReadWriteOnce" ], "resources": { "requests": { "storage": "2Gi" } } } }, { "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": "hwlab-project-management", "namespace": "hwlab-v03", "labels": { "app.kubernetes.io/name": "hwlab-project-management", "hwlab.pikastech.local/service-id": "hwlab-project-management", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app.kubernetes.io/name": "hwlab-project-management", "app.kubernetes.io/part-of": "hwlab", "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03" } }, "template": { "metadata": { "labels": { "app.kubernetes.io/name": "hwlab-project-management", "hwlab.pikastech.local/service-id": "hwlab-project-management", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-project-management.sh", "hwlab.pikastech.local/environment-digest": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "ad7954f7bf2a2d97cb260e9ce2b0a6d11cc30952407a60c7d313a469d21614f7" } }, "spec": { "containers": [ { "name": "hwlab-project-management", "image": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "ports": [ { "name": "http", "containerPort": 6672 } ], "env": [ { "name": "HWLAB_PROJECT_MANAGEMENT_PORT", "value": "6672" }, { "name": "TZ", "value": "Asia/Shanghai" }, { "name": "HWLAB_PROJECT_MANAGEMENT_DB_URL", "valueFrom": { "secretKeyRef": { "name": "hwlab-cloud-api-v03-db", "key": "database-url", "optional": true } } }, { "name": "HWLAB_PROJECT_MANAGEMENT_DB_CONNECT_TIMEOUT_MS", "value": "5000" }, { "name": "HWLAB_PROJECT_MANAGEMENT_SOURCE_ROOT", "value": "/workspace/hwlab-boot/repo" }, { "name": "HWLAB_PROJECT_MANAGEMENT_SOURCE_ID", "value": "hwlab-v03-mdtodo" }, { "name": "HWLAB_PROJECT_MANAGEMENT_SOURCE_NAME", "value": "HWLAB v0.3 MDTODO" }, { "name": "HWLAB_PROJECT_MANAGEMENT_PROJECT_ID", "value": "project_hwlab_v03" }, { "name": "HWLAB_PROJECT_MANAGEMENT_MDTODO_TASK_DEFAULT_LIMIT", "value": "200" }, { "name": "HWLAB_PROJECT_MANAGEMENT_MDTODO_TASK_MAX_LIMIT", "value": "500" }, { "name": "HWLAB_PROJECT_MANAGEMENT_HWPOD_NODE_OPS_URL", "value": "http://hwlab-cloud-api.hwlab-v03.svc.cluster.local:6667/v1/hwpod-node-ops" }, { "name": "HWLAB_PROJECT_MANAGEMENT_HWPOD_NODE_OPS_API_KEY", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-master-server-admin-api-key", "key": "api-key", "optional": true } } }, { "name": "HWLAB_PROJECT_MANAGEMENT_BOOTSTRAP_SOURCES_PATH", "value": "/etc/hwlab/project-management/sources.json" }, { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://otel-collector.platform-infra.svc.cluster.local:4318/v1/traces" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-project-management" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_BOOT_REF", "value": "v0.3" }, { "name": "HWLAB_BOOT_SH", "value": "deploy/runtime/boot/hwlab-project-management.sh" }, { "name": "HWLAB_BOOT_READ_URL", "value": "http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "ad7954f7bf2a2d97cb260e9ce2b0a6d11cc30952407a60c7d313a469d21614f7" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" } ], "readinessProbe": { "httpGet": { "path": "/health/ready", "port": "http" }, "timeoutSeconds": 10, "failureThreshold": 5 }, "livenessProbe": { "httpGet": { "path": "/health/live", "port": "http" }, "timeoutSeconds": 5, "failureThreshold": 6 }, "imagePullPolicy": "IfNotPresent", "volumeMounts": [ { "name": "project-management-bootstrap", "mountPath": "/etc/hwlab/project-management", "readOnly": true } ], "startupProbe": { "httpGet": { "path": "/health/ready", "port": "http" }, "periodSeconds": 10, "timeoutSeconds": 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-project-management" }, { "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:6672/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" } }, { "name": "project-management-bootstrap", "configMap": { "name": "hwlab-v03-project-management-bootstrap" } } ] } } } }, { "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": "hwlab-workbench-runtime", "namespace": "hwlab-v03", "labels": { "app.kubernetes.io/name": "hwlab-workbench-runtime", "hwlab.pikastech.local/service-id": "hwlab-workbench-runtime", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app.kubernetes.io/name": "hwlab-workbench-runtime", "app.kubernetes.io/part-of": "hwlab", "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03" } }, "template": { "metadata": { "labels": { "app.kubernetes.io/name": "hwlab-workbench-runtime", "hwlab.pikastech.local/service-id": "hwlab-workbench-runtime", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-workbench-runtime.sh", "hwlab.pikastech.local/environment-digest": "sha256:74624eb24c92c9a48a0c2d24a16da77832471a3ca0167ee4f888595f0267554f", "hwlab.pikastech.local/environment-input-hash": "13bdc18b089e043c5eaaaa79e50f9858fba53506d35e5e2d73dca1ead8608d1b", "hwlab.pikastech.local/code-input-hash": "62b1ba0c456caeecbbcdf8d0f2d5bc183f4948d27e60b71bab0f8ab43ce6ae5c" } }, "spec": { "containers": [ { "name": "hwlab-workbench-runtime", "image": "127.0.0.1:5000/hwlab/hwlab-go-runtime-env@sha256:74624eb24c92c9a48a0c2d24a16da77832471a3ca0167ee4f888595f0267554f", "ports": [ { "name": "http", "containerPort": 6671 } ], "env": [ { "name": "HWLAB_WORKBENCH_RUNTIME_PORT", "value": "6671" }, { "name": "TZ", "value": "Asia/Shanghai" }, { "name": "HWLAB_WORKBENCH_SESSIONS_SUMMARY_QUERY_MAX_ATTEMPTS", "value": "1" }, { "name": "HWLAB_WORKBENCH_SESSIONS_SUMMARY_QUERY_ATTEMPT_TIMEOUT_MS", "value": "10000" }, { "name": "HWLAB_WORKBENCH_SESSIONS_SUMMARY_QUERY_BACKOFF_MS", "value": "0" }, { "name": "HWLAB_WORKBENCH_RUNTIME_DB_POOL_MAX", "value": "16" }, { "name": "HWLAB_WORKBENCH_RUNTIME_QUERY_TIMEOUT_MS", "value": "10000" }, { "name": "HWLAB_WORKBENCH_RUNTIME_READY_TIMEOUT_MS", "value": "10000" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_ENABLED", "value": "1" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_NAMESPACE", "value": "hwlab-v03" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_SERVICE_NAME", "value": "hwlab-workbench-redis" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_PORT", "value": "6379" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_URL", "value": "redis://hwlab-workbench-redis.hwlab-v03.svc.cluster.local:6379/0" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_TTL_SESSIONS_SUMMARY_MS", "value": "30000" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_TTL_TERMINAL_TURN_MS", "value": "300000" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_TTL_TERMINAL_TRACE_PAGE_MS", "value": "300000" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_TTL_RUNNING_PAGE_MS", "value": "5000" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_MAX_KEY_BYTES", "value": "512" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_MAX_PAYLOAD_BYTES", "value": "262144" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_CONNECT_TIMEOUT_MS", "value": "200" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_OPERATION_TIMEOUT_MS", "value": "100" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_METRICS_LABELS", "value": "{\"lane\":\"v03\",\"service\":\"hwlab-workbench-runtime\",\"cacheKeyClass\":\"workbench-derived-read\"}" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_UNAVAILABLE_LIVENESS_FAILURE", "value": "0" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_UNAVAILABLE_READ_MODE", "value": "db-or-degraded" }, { "name": "HWLAB_WORKBENCH_CACHE_REDIS_UNAVAILABLE_FALLBACK_STATE_SOURCE", "value": "0" }, { "name": "HWLAB_WORKBENCH_RUNTIME_DB_URL", "valueFrom": { "secretKeyRef": { "name": "hwlab-cloud-api-v03-db", "key": "database-url", "optional": true } } }, { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://otel-collector.platform-infra.svc.cluster.local:4318/v1/traces" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-workbench-runtime" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-go-runtime-env@sha256:74624eb24c92c9a48a0c2d24a16da77832471a3ca0167ee4f888595f0267554f" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-13bdc18b089e" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_BOOT_REF", "value": "v0.3" }, { "name": "HWLAB_BOOT_SH", "value": "deploy/runtime/boot/hwlab-workbench-runtime.sh" }, { "name": "HWLAB_BOOT_READ_URL", "value": "http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-go-runtime-env:env-13bdc18b089e" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:74624eb24c92c9a48a0c2d24a16da77832471a3ca0167ee4f888595f0267554f" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "13bdc18b089e043c5eaaaa79e50f9858fba53506d35e5e2d73dca1ead8608d1b" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "62b1ba0c456caeecbbcdf8d0f2d5bc183f4948d27e60b71bab0f8ab43ce6ae5c" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:74624eb24c92c9a48a0c2d24a16da77832471a3ca0167ee4f888595f0267554f" } ], "readinessProbe": { "httpGet": { "path": "/health/ready", "port": "http" }, "timeoutSeconds": 10, "failureThreshold": 5 }, "livenessProbe": { "httpGet": { "path": "/health/live", "port": "http" }, "timeoutSeconds": 5, "failureThreshold": 6 }, "imagePullPolicy": "IfNotPresent", "startupProbe": { "httpGet": { "path": "/health/ready", "port": "http" }, "periodSeconds": 10, "timeoutSeconds": 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-workbench-runtime" }, { "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:6671/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-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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "spec": { "replicas": 1, "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-cloud-api.sh", "hwlab.pikastech.local/environment-digest": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "89cef06b4dce53aeb831aebaa09a1f20e6aa721e9da67a89a650693b217de330" } }, "spec": { "initContainers": [], "containers": [ { "name": "hwlab-cloud-api", "image": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "ports": [ { "name": "http", "containerPort": 6667 } ], "env": [ { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_PUBLIC_ENDPOINT", "value": "https://lab-dev.hwpod.com" }, { "name": "HWLAB_CLOUD_API_PORT", "value": "6667" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "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": "gpt.pika" }, { "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": "TZ", "value": "Asia/Shanghai" }, { "name": "HWLAB_METRICS_NAMESPACE", "value": "hwlab-v03" }, { "name": "HWLAB_OBSERVABILITY_CONFIG_REVISION", "value": "PJ2026-01060505-20260619-long-trace-timeout-mitigation" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_DISPATCH_RETRY_MAX", "value": "5" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_DISPATCH_RETRY_BASE_MS", "value": "1000" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_DISPATCH_RETRY_MAX_DELAY_MS", "value": "30000" }, { "name": "HWLAB_BOOTSTRAP_ADMIN_PASSWORD_HASH", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-bootstrap-admin", "key": "password-hash", "optional": true } } }, { "name": "HWLAB_PRESET_USER_HUIGGAO_PASSWORD_HASH", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-preset-users", "key": "huiggao-password-hash", "optional": true } } }, { "name": "HWLAB_ACCESS_CONTROL_USERS_JSON", "value": "[{\"id\":\"usr_v03_admin\",\"username\":\"admin\",\"displayName\":\"HWLAB v0.3 Admin\",\"email\":null,\"role\":\"admin\",\"status\":\"active\",\"navProfile\":\"admin-full\",\"passwordHashEnv\":\"HWLAB_BOOTSTRAP_ADMIN_PASSWORD_HASH\"},{\"id\":\"usr_v03_huiggao\",\"username\":\"huiggao@163.com\",\"displayName\":\"huiggao@163.com\",\"email\":\"huiggao@163.com\",\"role\":\"user\",\"status\":\"active\",\"navProfile\":\"code-mdtodo-only\",\"passwordHashEnv\":\"HWLAB_PRESET_USER_HUIGGAO_PASSWORD_HASH\"}]" }, { "name": "HWLAB_ACCESS_CONTROL_NAV_PROFILES_JSON", "value": "[{\"id\":\"admin-full\",\"displayName\":\"Admin full access\",\"allowedIds\":[\"*\"]},{\"id\":\"code-mdtodo-only\",\"displayName\":\"Code and MDTODO only\",\"allowedIds\":[\"workbench.code\",\"project.mdtodo\",\"project.tasktree\"]}]" }, { "name": "HWLAB_CLOUD_DB_POOL_MAX", "value": "16" }, { "name": "HWLAB_WORKBENCH_RUNTIME_TIMEOUT_MS", "value": "3000" }, { "name": "HWLAB_WORKBENCH_FACTS_QUERY_MAX_ATTEMPTS", "value": "1" }, { "name": "HWLAB_WORKBENCH_FACTS_QUERY_BACKOFF_BASE_MS", "value": "0" }, { "name": "HWLAB_WORKBENCH_FACTS_QUERY_BACKOFF_MAX_MS", "value": "1" }, { "name": "HWLAB_HWPOD_OPERATION_RETENTION_SECONDS", "value": "604800" }, { "name": "HWLAB_ACCESS_CONTROL_REQUIRED", "value": "1" }, { "name": "HWLAB_SESSION_COOKIE_SAMESITE", "value": "None" }, { "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_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_USER_BILLING_URL", "value": "http://hwlab-user-billing.hwlab-v03.svc.cluster.local:6670" }, { "name": "HWLAB_WORKBENCH_RUNTIME_URL", "value": "http://hwlab-workbench-runtime.hwlab-v03.svc.cluster.local:6671" }, { "name": "HWLAB_WORKBENCH_API_URL", "value": "http://hwlab-workbench-api.hwlab-v03.svc.cluster.local:6677" }, { "name": "WORKBENCH_CLOUD_API_AUTHORIZATION", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-master-server-admin-api-key", "key": "api-key", "optional": true } } }, { "name": "HWLAB_PROJECT_MANAGEMENT_URL", "value": "http://hwlab-project-management.hwlab-v03.svc.cluster.local:6672" }, { "name": "HWLAB_TASKTREE_URL", "value": "http://hwlab-tasktree-api.hwlab-v03.svc.cluster.local:6673" }, { "name": "HARNESSRL_API_URL", "value": "http://hwlab-harnessrl-api.hwlab-v03.svc.cluster.local:6675" }, { "name": "HWLAB_HWPOD_SPEC_REGISTRY_DIRS", "value": "/etc/hwlab/hwpod-specs" }, { "name": "HWLAB_HWPOD_NODE_WS_TOKEN", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-hwpod-node-auth", "key": "token", "optional": true } } }, { "name": "HWLAB_USER_BILLING_LOGIN_RETRY_ATTEMPTS", "value": "2" }, { "name": "HWLAB_USER_BILLING_LOGIN_RETRY_DELAY_MS", "value": "250" }, { "name": "HWLAB_USER_BILLING_CODE_AGENT_ENABLED", "value": "1" }, { "name": "HWLAB_USER_BILLING_CODE_AGENT_ESTIMATED_CREDITS", "value": "1" }, { "name": "HWLAB_USER_BILLING_CODE_AGENT_USED_CREDITS", "value": "1" }, { "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-v02" }, { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://otel-collector.platform-infra.svc.cluster.local:4318/v1/traces" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-cloud-api" }, { "name": "AGENTRUN_MGR_URL", "value": "http://agentrun-mgr.agentrun-v02.svc.cluster.local:8080" }, { "name": "AGENTRUN_API_KEY", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-master-server-admin-api-key", "key": "api-key", "optional": true } } }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_RUNNER_NAMESPACE", "value": "agentrun-v02" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_SECRET_NAMESPACE", "value": "agentrun-v02" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_REPO_URL", "value": "http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_KAFKA_ENABLED", "value": "true" }, { "name": "HWLAB_KAFKA_AGENTRUN_EVENT_CONSUME_ENABLED", "value": "true" }, { "name": "HWLAB_KAFKA_DIRECT_PUBLISH_ENABLED", "value": "true" }, { "name": "HWLAB_WORKBENCH_LIVE_KAFKA_SSE_ENABLED", "value": "true" }, { "name": "HWLAB_WORKBENCH_KAFKA_REFRESH_REPLAY_ENABLED", "value": "true" }, { "name": "HWLAB_KAFKA_TRANSACTIONAL_PROJECTOR_ENABLED", "value": "false" }, { "name": "HWLAB_KAFKA_PROJECTION_OUTBOX_RELAY_ENABLED", "value": "false" }, { "name": "HWLAB_WORKBENCH_PROJECTION_REALTIME_ENABLED", "value": "false" }, { "name": "HWLAB_WORKBENCH_KAFKA_DEBUG_REPLAY_ENABLED", "value": "true" }, { "name": "HWLAB_KAFKA_BOOTSTRAP_SERVERS", "value": "platform-infra-kafka-kafka-bootstrap.platform-infra.svc.cluster.local:9092" }, { "name": "HWLAB_KAFKA_STDIO_TOPIC", "value": "codex-stdio.raw.v1" }, { "name": "HWLAB_KAFKA_AGENTRUN_EVENT_TOPIC", "value": "agentrun.event.v1" }, { "name": "HWLAB_KAFKA_EVENT_TOPIC", "value": "hwlab.event.v1" }, { "name": "HWLAB_KAFKA_CLIENT_ID", "value": "hwlab-v03-cloud-api" }, { "name": "HWLAB_KAFKA_AGENTRUN_EVENT_GROUP_ID", "value": "hwlab-agentrun-event-direct-publish" }, { "name": "HWLAB_KAFKA_PROJECTOR_GROUP_ID", "value": "hwlab-v03-agentrun-event-projector" }, { "name": "HWLAB_KAFKA_HWLAB_EVENT_GROUP_ID", "value": "hwlab-v03-workbench-live-sse" }, { "name": "HWLAB_KAFKA_HWLAB_DEBUG_EVENT_TOPIC", "value": "hwlab.event.debug.v1" }, { "name": "HWLAB_KAFKA_HWLAB_DEBUG_GROUP_PREFIX", "value": "hwlab-v03-workbench-isolated-debug" }, { "name": "HWLAB_WORKBENCH_KAFKA_DEBUG_REPLAY_LIMIT", "value": "200" }, { "name": "HWLAB_WORKBENCH_KAFKA_DEBUG_REPLAY_TIMEOUT_MS", "value": "15000" }, { "name": "HWLAB_WORKBENCH_EMPTY_SESSION_GC_ENABLED", "value": "1" }, { "name": "HWLAB_WORKBENCH_EMPTY_SESSION_TTL_MS", "value": "600000" }, { "name": "HWLAB_WORKBENCH_EMPTY_SESSION_GC_INTERVAL_MS", "value": "60000" }, { "name": "HWLAB_WORKBENCH_EMPTY_SESSION_GC_INITIAL_DELAY_MS", "value": "5000" }, { "name": "HWLAB_WORKBENCH_EMPTY_SESSION_GC_BATCH_SIZE", "value": "100" }, { "name": "HWLAB_WORKBENCH_EMPTY_SESSION_GC_JITTER_MS", "value": "15000" }, { "name": "HWLAB_WORKBENCH_EMPTY_SESSION_GC_FAILURE_BACKOFF_MS", "value": "120000" }, { "name": "HWLAB_SECRET_PLANE_SMOKE", "valueFrom": { "secretKeyRef": { "name": "hwlab-secret-plane-smoke", "key": "password", "optional": true } } }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "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://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "89cef06b4dce53aeb831aebaa09a1f20e6aa721e9da67a89a650693b217de330" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_AGENT_OBSERVER_RETENTION_EVENT_LIMIT", "value": "10000" }, { "name": "HWLAB_AGENT_OBSERVER_RETENTION_SCAN_LIMIT", "value": "1000000" }, { "name": "HWLAB_AGENT_OBSERVER_RETENTION_TIMEOUT_MS", "value": "30000" }, { "name": "HWLAB_AGENT_OBSERVER_RETENTION_GROUP_PREFIX", "value": "hwlab-v03-agent-observer-replay" }, { "name": "HWLAB_AGENT_OBSERVER_SSE_HEARTBEAT_MS", "value": "15000" }, { "name": "HWLAB_AGENT_OBSERVER_RECONNECT_DELAY_MS", "value": "1500" }, { "name": "HWLAB_AGENT_OBSERVER_BATCH_MAX_EVENTS", "value": "100" }, { "name": "HWLAB_AGENT_OBSERVER_LIVE_BUFFER_LIMIT", "value": "2000" }, { "name": "HWLAB_AGENT_OBSERVER_IDENTITY_WINDOW_LIMIT", "value": "12000" }, { "name": "HWLAB_AGENT_OBSERVER_REDUCER_EVENT_LIMIT", "value": "2000" }, { "name": "HWLAB_AGENT_OBSERVER_REDUCER_ENTITY_LIMIT", "value": "500" }, { "name": "HWLAB_AGENT_OBSERVER_TREE_NODE_LIMIT", "value": "500" }, { "name": "HWLAB_AGENT_OBSERVER_INSPECTOR_EVENT_TAIL_LIMIT", "value": "100" }, { "name": "HWLAB_AGENT_OBSERVER_VIRTUAL_LIST_WINDOW_LIMIT", "value": "160" }, { "name": "HWLAB_AGENT_OBSERVER_CHANGE_HIGHLIGHT_MS", "value": "1200" }, { "name": "HWLAB_AGENT_OBSERVER_STALE_AFTER_MS", "value": "30000" }, { "name": "HWLAB_AGENT_OBSERVER_REDUCED_MOTION", "value": "respect-system" }, { "name": "HWLAB_WORKBENCH_KAFKA_REFRESH_REPLAY_GROUP_PREFIX", "value": "hwlab-v03-cloud-api-sse" }, { "name": "HWLAB_WORKBENCH_KAFKA_REFRESH_REPLAY_TIMEOUT_MS", "value": "30000" }, { "name": "HWLAB_WORKBENCH_KAFKA_REFRESH_REPLAY_SCAN_LIMIT", "value": "1000000" }, { "name": "HWLAB_WORKBENCH_KAFKA_REFRESH_REPLAY_MATCHED_EVENT_LIMIT", "value": "2000" }, { "name": "HWLAB_WORKBENCH_KAFKA_REFRESH_REPLAY_LIVE_BUFFER_LIMIT", "value": "2000" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID", "value": "NC01" }, { "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" }, { "name": "HWLAB_CODE_AGENT_CODEX_STDIO_SUPERVISOR", "value": "repo-owned" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_CODEX_SECRET_NAME", "value": "agentrun-v01-provider-codex" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_DSFLASH_GO_SECRET_NAME", "value": "agentrun-v01-provider-dsflash-go" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_GPT_PIKA_SECRET_NAME", "value": "agentrun-v02-provider-gpt-pika" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_GROK_SECRET_NAME", "value": "agentrun-v02-provider-grok" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_GITHUB_TOOL_SECRET_NAME", "value": "agentrun-v01-tool-github-pr" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_UNIDESK_SSH_TOOL_SECRET_NAME", "value": "agentrun-v01-tool-unidesk-ssh" } ], "readinessProbe": { "httpGet": { "path": "/health/live", "port": "http" }, "timeoutSeconds": 3, "failureThreshold": 5 }, "livenessProbe": { "httpGet": { "path": "/health/live", "port": "http" }, "periodSeconds": 20, "timeoutSeconds": 5, "failureThreshold": 6 }, "volumeMounts": [ { "name": "hwlab-user-skills", "mountPath": "/data/user-skills" }, { "name": "hwpod-preinstalled-specs", "mountPath": "/etc/hwlab/hwpod-specs", "readOnly": true } ], "imagePullPolicy": "IfNotPresent", "startupProbe": { "httpGet": { "path": "/health/live", "port": "http" }, "periodSeconds": 10, "timeoutSeconds": 3, "failureThreshold": 30, "successThreshold": 1 }, "lifecycle": { "preStop": { "exec": { "command": [ "sh", "-c", "port=\"${PORT:-${HWLAB_PORT:-${HWLAB_CLOUD_API_PORT:-6667}}}\"; url=\"http://127.0.0.1:${port}/v1/internal/workbench/drain\"; /usr/local/bin/bun -e 'const [url, hostname] = process.argv.slice(2); await fetch(url, { method: \"POST\", headers: { \"x-hwlab-drain-hostname\": hostname || \"\" } }).catch(() => {});' \"$url\" \"${HOSTNAME:-}\" >/dev/null 2>&1 || true; sleep 3" ] } } } }, { "name": "hwlab-codex-api-forwarder", "image": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "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://lab-dev.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": "gpt.pika" }, { "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": "TZ", "value": "Asia/Shanghai" }, { "name": "HWLAB_METRICS_NAMESPACE", "value": "hwlab-v03" }, { "name": "HWLAB_OBSERVABILITY_CONFIG_REVISION", "value": "PJ2026-01060505-20260619-long-trace-timeout-mitigation" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_DISPATCH_RETRY_MAX", "value": "5" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_DISPATCH_RETRY_BASE_MS", "value": "1000" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_DISPATCH_RETRY_MAX_DELAY_MS", "value": "30000" }, { "name": "HWLAB_BOOTSTRAP_ADMIN_PASSWORD_HASH", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-bootstrap-admin", "key": "password-hash", "optional": true } } }, { "name": "HWLAB_PRESET_USER_HUIGGAO_PASSWORD_HASH", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-preset-users", "key": "huiggao-password-hash", "optional": true } } }, { "name": "HWLAB_ACCESS_CONTROL_USERS_JSON", "value": "[{\"id\":\"usr_v03_admin\",\"username\":\"admin\",\"displayName\":\"HWLAB v0.3 Admin\",\"email\":null,\"role\":\"admin\",\"status\":\"active\",\"navProfile\":\"admin-full\",\"passwordHashEnv\":\"HWLAB_BOOTSTRAP_ADMIN_PASSWORD_HASH\"},{\"id\":\"usr_v03_huiggao\",\"username\":\"huiggao@163.com\",\"displayName\":\"huiggao@163.com\",\"email\":\"huiggao@163.com\",\"role\":\"user\",\"status\":\"active\",\"navProfile\":\"code-mdtodo-only\",\"passwordHashEnv\":\"HWLAB_PRESET_USER_HUIGGAO_PASSWORD_HASH\"}]" }, { "name": "HWLAB_ACCESS_CONTROL_NAV_PROFILES_JSON", "value": "[{\"id\":\"admin-full\",\"displayName\":\"Admin full access\",\"allowedIds\":[\"*\"]},{\"id\":\"code-mdtodo-only\",\"displayName\":\"Code and MDTODO only\",\"allowedIds\":[\"workbench.code\",\"project.mdtodo\",\"project.tasktree\"]}]" }, { "name": "HWLAB_CLOUD_DB_POOL_MAX", "value": "16" }, { "name": "HWLAB_WORKBENCH_RUNTIME_TIMEOUT_MS", "value": "3000" }, { "name": "HWLAB_WORKBENCH_FACTS_QUERY_MAX_ATTEMPTS", "value": "1" }, { "name": "HWLAB_WORKBENCH_FACTS_QUERY_BACKOFF_BASE_MS", "value": "0" }, { "name": "HWLAB_WORKBENCH_FACTS_QUERY_BACKOFF_MAX_MS", "value": "1" }, { "name": "HWLAB_HWPOD_OPERATION_RETENTION_SECONDS", "value": "604800" }, { "name": "HWLAB_ACCESS_CONTROL_REQUIRED", "value": "1" }, { "name": "HWLAB_SESSION_COOKIE_SAMESITE", "value": "None" }, { "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_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_USER_BILLING_URL", "value": "http://hwlab-user-billing.hwlab-v03.svc.cluster.local:6670" }, { "name": "HWLAB_WORKBENCH_RUNTIME_URL", "value": "http://hwlab-workbench-runtime.hwlab-v03.svc.cluster.local:6671" }, { "name": "HWLAB_WORKBENCH_API_URL", "value": "http://hwlab-workbench-api.hwlab-v03.svc.cluster.local:6677" }, { "name": "WORKBENCH_CLOUD_API_AUTHORIZATION", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-master-server-admin-api-key", "key": "api-key", "optional": true } } }, { "name": "HWLAB_PROJECT_MANAGEMENT_URL", "value": "http://hwlab-project-management.hwlab-v03.svc.cluster.local:6672" }, { "name": "HWLAB_TASKTREE_URL", "value": "http://hwlab-tasktree-api.hwlab-v03.svc.cluster.local:6673" }, { "name": "HARNESSRL_API_URL", "value": "http://hwlab-harnessrl-api.hwlab-v03.svc.cluster.local:6675" }, { "name": "HWLAB_HWPOD_SPEC_REGISTRY_DIRS", "value": "/etc/hwlab/hwpod-specs" }, { "name": "HWLAB_HWPOD_NODE_WS_TOKEN", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-hwpod-node-auth", "key": "token", "optional": true } } }, { "name": "HWLAB_USER_BILLING_LOGIN_RETRY_ATTEMPTS", "value": "2" }, { "name": "HWLAB_USER_BILLING_LOGIN_RETRY_DELAY_MS", "value": "250" }, { "name": "HWLAB_USER_BILLING_CODE_AGENT_ENABLED", "value": "1" }, { "name": "HWLAB_USER_BILLING_CODE_AGENT_ESTIMATED_CREDITS", "value": "1" }, { "name": "HWLAB_USER_BILLING_CODE_AGENT_USED_CREDITS", "value": "1" }, { "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-v02" }, { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://otel-collector.platform-infra.svc.cluster.local:4318/v1/traces" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-cloud-api" }, { "name": "AGENTRUN_MGR_URL", "value": "http://agentrun-mgr.agentrun-release.svc.cluster.local:8080" }, { "name": "AGENTRUN_API_KEY", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-master-server-admin-api-key", "key": "api-key", "optional": true } } }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_RUNNER_NAMESPACE", "value": "agentrun-release" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_SECRET_NAMESPACE", "value": "agentrun-release" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_REPO_URL", "value": "http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_KAFKA_ENABLED", "value": "true" }, { "name": "HWLAB_KAFKA_AGENTRUN_EVENT_CONSUME_ENABLED", "value": "true" }, { "name": "HWLAB_KAFKA_DIRECT_PUBLISH_ENABLED", "value": "true" }, { "name": "HWLAB_WORKBENCH_LIVE_KAFKA_SSE_ENABLED", "value": "true" }, { "name": "HWLAB_WORKBENCH_KAFKA_REFRESH_REPLAY_ENABLED", "value": "true" }, { "name": "HWLAB_KAFKA_TRANSACTIONAL_PROJECTOR_ENABLED", "value": "false" }, { "name": "HWLAB_KAFKA_PROJECTION_OUTBOX_RELAY_ENABLED", "value": "false" }, { "name": "HWLAB_WORKBENCH_PROJECTION_REALTIME_ENABLED", "value": "false" }, { "name": "HWLAB_WORKBENCH_KAFKA_DEBUG_REPLAY_ENABLED", "value": "true" }, { "name": "HWLAB_KAFKA_BOOTSTRAP_SERVERS", "value": "platform-infra-kafka-kafka-bootstrap.platform-infra.svc.cluster.local:9092" }, { "name": "HWLAB_KAFKA_STDIO_TOPIC", "value": "codex-stdio.raw.v1" }, { "name": "HWLAB_KAFKA_AGENTRUN_EVENT_TOPIC", "value": "agentrun.event.v1" }, { "name": "HWLAB_KAFKA_EVENT_TOPIC", "value": "hwlab.event.v1" }, { "name": "HWLAB_KAFKA_CLIENT_ID", "value": "hwlab-v03-cloud-api" }, { "name": "HWLAB_KAFKA_AGENTRUN_EVENT_GROUP_ID", "value": "hwlab-v03-agentrun-event-direct-publish" }, { "name": "HWLAB_KAFKA_PROJECTOR_GROUP_ID", "value": "hwlab-v03-agentrun-event-projector" }, { "name": "HWLAB_KAFKA_HWLAB_EVENT_GROUP_ID", "value": "hwlab-v03-workbench-live-sse" }, { "name": "HWLAB_KAFKA_HWLAB_DEBUG_EVENT_TOPIC", "value": "hwlab.event.debug.v1" }, { "name": "HWLAB_KAFKA_HWLAB_DEBUG_GROUP_PREFIX", "value": "hwlab-v03-workbench-isolated-debug" }, { "name": "HWLAB_WORKBENCH_KAFKA_DEBUG_REPLAY_LIMIT", "value": "200" }, { "name": "HWLAB_WORKBENCH_KAFKA_DEBUG_REPLAY_TIMEOUT_MS", "value": "15000" }, { "name": "HWLAB_KAFKA_PROJECTOR_HEARTBEAT_INTERVAL_MS", "value": "2000" }, { "name": "HWLAB_KAFKA_OUTBOX_RELAY_INTERVAL_MS", "value": "250" }, { "name": "HWLAB_KAFKA_OUTBOX_RELAY_BATCH_SIZE", "value": "100" }, { "name": "HWLAB_KAFKA_OUTBOX_RELAY_LEASE_MS", "value": "30000" }, { "name": "HWLAB_KAFKA_OUTBOX_RELAY_SEND_TIMEOUT_MS", "value": "10000" }, { "name": "HWLAB_KAFKA_OUTBOX_RELAY_RETRY_BACKOFF_MS", "value": "1000" }, { "name": "HWLAB_WORKBENCH_OUTBOX_TAIL_BATCH_SIZE", "value": "100" }, { "name": "HWLAB_WORKBENCH_EMPTY_SESSION_GC_ENABLED", "value": "1" }, { "name": "HWLAB_WORKBENCH_EMPTY_SESSION_TTL_MS", "value": "600000" }, { "name": "HWLAB_WORKBENCH_EMPTY_SESSION_GC_INTERVAL_MS", "value": "60000" }, { "name": "HWLAB_WORKBENCH_EMPTY_SESSION_GC_INITIAL_DELAY_MS", "value": "5000" }, { "name": "HWLAB_WORKBENCH_EMPTY_SESSION_GC_BATCH_SIZE", "value": "100" }, { "name": "HWLAB_WORKBENCH_EMPTY_SESSION_GC_JITTER_MS", "value": "15000" }, { "name": "HWLAB_WORKBENCH_EMPTY_SESSION_GC_FAILURE_BACKOFF_MS", "value": "120000" }, { "name": "HWLAB_SECRET_PLANE_SMOKE", "valueFrom": { "secretKeyRef": { "name": "hwlab-secret-plane-smoke", "key": "password", "optional": true } } }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "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://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "89cef06b4dce53aeb831aebaa09a1f20e6aa721e9da67a89a650693b217de330" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_AGENT_OBSERVER_RETENTION_EVENT_LIMIT", "value": "10000" }, { "name": "HWLAB_AGENT_OBSERVER_RETENTION_SCAN_LIMIT", "value": "1000000" }, { "name": "HWLAB_AGENT_OBSERVER_RETENTION_TIMEOUT_MS", "value": "30000" }, { "name": "HWLAB_AGENT_OBSERVER_RETENTION_GROUP_PREFIX", "value": "hwlab-v03-agent-observer-replay" }, { "name": "HWLAB_AGENT_OBSERVER_SSE_HEARTBEAT_MS", "value": "15000" }, { "name": "HWLAB_AGENT_OBSERVER_RECONNECT_DELAY_MS", "value": "1500" }, { "name": "HWLAB_AGENT_OBSERVER_BATCH_MAX_EVENTS", "value": "100" }, { "name": "HWLAB_AGENT_OBSERVER_LIVE_BUFFER_LIMIT", "value": "2000" }, { "name": "HWLAB_AGENT_OBSERVER_IDENTITY_WINDOW_LIMIT", "value": "12000" }, { "name": "HWLAB_AGENT_OBSERVER_REDUCER_EVENT_LIMIT", "value": "2000" }, { "name": "HWLAB_AGENT_OBSERVER_REDUCER_ENTITY_LIMIT", "value": "500" }, { "name": "HWLAB_AGENT_OBSERVER_TREE_NODE_LIMIT", "value": "500" }, { "name": "HWLAB_AGENT_OBSERVER_INSPECTOR_EVENT_TAIL_LIMIT", "value": "100" }, { "name": "HWLAB_AGENT_OBSERVER_VIRTUAL_LIST_WINDOW_LIMIT", "value": "160" }, { "name": "HWLAB_AGENT_OBSERVER_CHANGE_HIGHLIGHT_MS", "value": "1200" }, { "name": "HWLAB_AGENT_OBSERVER_STALE_AFTER_MS", "value": "30000" }, { "name": "HWLAB_AGENT_OBSERVER_REDUCED_MOTION", "value": "respect-system" }, { "name": "HWLAB_WORKBENCH_KAFKA_REFRESH_REPLAY_GROUP_PREFIX", "value": "hwlab-v03-agent-observer-replay" }, { "name": "HWLAB_WORKBENCH_KAFKA_REFRESH_REPLAY_TIMEOUT_MS", "value": "30000" }, { "name": "HWLAB_WORKBENCH_KAFKA_REFRESH_REPLAY_SCAN_LIMIT", "value": "1000000" }, { "name": "HWLAB_WORKBENCH_KAFKA_REFRESH_REPLAY_MATCHED_EVENT_LIMIT", "value": "10000" }, { "name": "HWLAB_WORKBENCH_KAFKA_REFRESH_REPLAY_LIVE_BUFFER_LIMIT", "value": "2000" }, { "name": "HWLAB_WORKBENCH_SSE_DRAIN_TIMEOUT_MS", "value": "2500" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID", "value": "NC01" }, { "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" }, { "name": "HWLAB_CODE_AGENT_CODEX_STDIO_SUPERVISOR", "value": "repo-owned" } ], "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": [ { "name": "hwpod-preinstalled-specs", "mountPath": "/etc/hwlab/hwpod-specs", "readOnly": true } ], "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 }, "lifecycle": { "preStop": { "exec": { "command": [ "sh", "-c", "port=\"${PORT:-${HWLAB_PORT:-${HWLAB_CLOUD_API_PORT:-6667}}}\"; url=\"http://127.0.0.1:${port}/v1/internal/workbench/drain\"; /usr/local/bin/bun -e 'const [url, hostname] = process.argv.slice(2); await fetch(url, { method: \"POST\", headers: { \"x-hwlab-drain-hostname\": hostname || \"\" } }).catch(() => {});' \"$url\" \"${HOSTNAME:-}\" >/dev/null 2>&1 || true; sleep 3" ] } } } }, { "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" } }, { "name": "hwpod-preinstalled-specs", "configMap": { "name": "hwlab-v03-hwpod-preinstalled-specs" } } ] } } } }, { "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "name": "hwlab-user-billing", "namespace": "hwlab-v03", "labels": { "app.kubernetes.io/name": "hwlab-user-billing", "hwlab.pikastech.local/service-id": "hwlab-user-billing", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "spec": { "replicas": 1, "selector": { "matchLabels": { "app.kubernetes.io/name": "hwlab-user-billing", "app.kubernetes.io/part-of": "hwlab", "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03" } }, "template": { "metadata": { "labels": { "app.kubernetes.io/name": "hwlab-user-billing", "hwlab.pikastech.local/service-id": "hwlab-user-billing", "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-user-billing.sh", "hwlab.pikastech.local/environment-digest": "sha256:74624eb24c92c9a48a0c2d24a16da77832471a3ca0167ee4f888595f0267554f", "hwlab.pikastech.local/environment-input-hash": "13bdc18b089e043c5eaaaa79e50f9858fba53506d35e5e2d73dca1ead8608d1b", "hwlab.pikastech.local/code-input-hash": "686039eef616c0850f74f2a31618dfdb2fd91b0ef15a1805f487cbded3b021ce" } }, "spec": { "containers": [ { "name": "hwlab-user-billing", "image": "127.0.0.1:5000/hwlab/hwlab-go-runtime-env@sha256:74624eb24c92c9a48a0c2d24a16da77832471a3ca0167ee4f888595f0267554f", "ports": [ { "name": "http", "containerPort": 6670 } ], "env": [ { "name": "HWLAB_USER_BILLING_PORT", "value": "6670" }, { "name": "HWLAB_USER_BILLING_STATE_AUTHORITY", "value": "pk01-postgres" }, { "name": "HWLAB_USER_BILLING_STATELESS", "value": "true" }, { "name": "TZ", "value": "Asia/Shanghai" }, { "name": "HWLAB_USER_BILLING_DB_URL", "valueFrom": { "secretKeyRef": { "name": "hwlab-cloud-api-v03-db", "key": "database-url", "optional": true } } }, { "name": "HWLAB_USER_BILLING_DB_POOL_MAX", "value": "2" }, { "name": "HWLAB_USER_BILLING_MIGRATION_TIMEOUT_SECONDS", "value": "180" }, { "name": "HWLAB_USER_BILLING_BOOTSTRAP_TIMEOUT_SECONDS", "value": "60" }, { "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_USER_BILLING_EXTERNAL_DB_LABEL", "value": "pk01-external-postgres" }, { "name": "HWLAB_USER_BILLING_REGISTRATION_ENABLED", "value": "1" }, { "name": "HWLAB_USER_BILLING_INITIAL_CREDITS", "value": "0" }, { "name": "HWLAB_USER_BILLING_CREDIT_PER_1K_TOKENS", "value": "1" }, { "name": "HWLAB_USER_BILLING_MIGRATE_ON_START", "value": "1" }, { "name": "HWLAB_USER_BILLING_REDIS_URL", "value": "redis://hwlab-user-billing-redis.hwlab-v03.svc.cluster.local:6379/0" }, { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://otel-collector.platform-infra.svc.cluster.local:4318/v1/traces" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-user-billing" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-go-runtime-env@sha256:74624eb24c92c9a48a0c2d24a16da77832471a3ca0167ee4f888595f0267554f" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-13bdc18b089e" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_BOOT_REF", "value": "v0.3" }, { "name": "HWLAB_BOOT_SH", "value": "deploy/runtime/boot/hwlab-user-billing.sh" }, { "name": "HWLAB_BOOT_READ_URL", "value": "http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-go-runtime-env:env-13bdc18b089e" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:74624eb24c92c9a48a0c2d24a16da77832471a3ca0167ee4f888595f0267554f" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "13bdc18b089e043c5eaaaa79e50f9858fba53506d35e5e2d73dca1ead8608d1b" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "686039eef616c0850f74f2a31618dfdb2fd91b0ef15a1805f487cbded3b021ce" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:74624eb24c92c9a48a0c2d24a16da77832471a3ca0167ee4f888595f0267554f" } ], "readinessProbe": { "httpGet": { "path": "/health/ready", "port": "http" }, "timeoutSeconds": 10, "failureThreshold": 5 }, "livenessProbe": { "httpGet": { "path": "/health/live", "port": "http" }, "timeoutSeconds": 5, "failureThreshold": 6 }, "imagePullPolicy": "IfNotPresent", "startupProbe": { "httpGet": { "path": "/health/ready", "port": "http" }, "periodSeconds": 10, "timeoutSeconds": 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-user-billing" }, { "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:6670/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-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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-cloud-web.sh", "hwlab.pikastech.local/environment-digest": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "9c243b1772e5accd300dc13324a6c438ff92ed07ab9c5cf05f1fa80301121d7c" } }, "spec": { "containers": [ { "name": "hwlab-cloud-web", "image": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "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": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "BUN_CONFIG_REGISTRY", "value": "https://registry.npmjs.org/" }, { "name": "npm_config_registry", "value": "https://registry.npmjs.org/" }, { "name": "HWLAB_CLOUD_WEB_DISPLAY_TIME_ZONE", "value": "Asia/Shanghai" }, { "name": "HWLAB_CLOUD_WEB_DISPLAY_TIME_LOCALE", "value": "zh-CN" }, { "name": "HWLAB_CLOUD_WEB_DISPLAY_TIME_LABEL", "value": "北京时间" }, { "name": "HWLAB_WORKBENCH_LIVE_KAFKA_SSE_ENABLED", "value": "true" }, { "name": "HWLAB_WORKBENCH_KAFKA_REFRESH_REPLAY_ENABLED", "value": "true" }, { "name": "HWLAB_WORKBENCH_PROJECTION_REALTIME_ENABLED", "value": "false" }, { "name": "HWLAB_WORKBENCH_KAFKA_DEBUG_REPLAY_ENABLED", "value": "true" }, { "name": "HWLAB_CLOUD_WEB_OPENCODE_UPSTREAM_URL", "value": "http://opencode-server.hwlab-v03.svc.cluster.local:4096" }, { "name": "HWLAB_CLOUD_WEB_OPENCODE_USERNAME", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-opencode-server-auth", "key": "username", "optional": true } } }, { "name": "HWLAB_CLOUD_WEB_OPENCODE_PASSWORD", "valueFrom": { "secretKeyRef": { "name": "hwlab-v03-opencode-server-auth", "key": "password", "optional": true } } }, { "name": "HWLAB_CLOUD_WEB_OPENCODE_DEFAULT_PROJECT", "value": "/workspace" }, { "name": "HWLAB_CLOUD_WEB_OPENCODE_EVENT_DIRECTORY_FROM", "value": "/workspace" }, { "name": "HWLAB_CLOUD_WEB_OPENCODE_EVENT_DIRECTORY_TO", "value": "/" }, { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://otel-collector.platform-infra.svc.cluster.local:4318/v1/traces" }, { "name": "OTEL_SERVICE_NAME", "value": "hwlab-cloud-web" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "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://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "9c243b1772e5accd300dc13324a6c438ff92ed07ab9c5cf05f1fa80301121d7c" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_AGENT_OBSERVER_RETENTION_EVENT_LIMIT", "value": "10000" }, { "name": "HWLAB_AGENT_OBSERVER_RETENTION_SCAN_LIMIT", "value": "1000000" }, { "name": "HWLAB_AGENT_OBSERVER_RETENTION_TIMEOUT_MS", "value": "30000" }, { "name": "HWLAB_AGENT_OBSERVER_RETENTION_GROUP_PREFIX", "value": "hwlab-v03-agent-observer-replay" }, { "name": "HWLAB_AGENT_OBSERVER_SSE_HEARTBEAT_MS", "value": "15000" }, { "name": "HWLAB_AGENT_OBSERVER_RECONNECT_DELAY_MS", "value": "1500" }, { "name": "HWLAB_AGENT_OBSERVER_BATCH_MAX_EVENTS", "value": "100" }, { "name": "HWLAB_AGENT_OBSERVER_LIVE_BUFFER_LIMIT", "value": "2000" }, { "name": "HWLAB_AGENT_OBSERVER_IDENTITY_WINDOW_LIMIT", "value": "12000" }, { "name": "HWLAB_AGENT_OBSERVER_REDUCER_EVENT_LIMIT", "value": "2000" }, { "name": "HWLAB_AGENT_OBSERVER_REDUCER_ENTITY_LIMIT", "value": "500" }, { "name": "HWLAB_AGENT_OBSERVER_TREE_NODE_LIMIT", "value": "500" }, { "name": "HWLAB_AGENT_OBSERVER_INSPECTOR_EVENT_TAIL_LIMIT", "value": "100" }, { "name": "HWLAB_AGENT_OBSERVER_VIRTUAL_LIST_WINDOW_LIMIT", "value": "160" }, { "name": "HWLAB_AGENT_OBSERVER_CHANGE_HIGHLIGHT_MS", "value": "1200" }, { "name": "HWLAB_AGENT_OBSERVER_STALE_AFTER_MS", "value": "30000" }, { "name": "HWLAB_AGENT_OBSERVER_REDUCED_MOTION", "value": "respect-system" }, { "name": "HWLAB_AGENT_OBSERVER_NODE_ID", "value": "NC01" }, { "name": "HWLAB_AGENT_OBSERVER_LANE", "value": "v03" }, { "name": "HWLAB_PUBLIC_ENDPOINT", "value": "https://lab-dev.hwpod.com" }, { "name": "HWLAB_WORKBENCH_TRACE_AUTO_EXPAND_RUNNING", "value": "1" }, { "name": "HWLAB_WORKBENCH_TRACE_AUTO_COLLAPSE_TERMINAL", "value": "0" }, { "name": "HWLAB_WORKBENCH_RAW_HWLAB_EVENT_WINDOW_ENABLED", "value": "1" }, { "name": "HWLAB_WORKBENCH_RAW_HWLAB_EVENT_WINDOW_MAX_ENTRIES", "value": "200" }, { "name": "HWLAB_WORKBENCH_RAW_HWLAB_EVENT_WINDOW_MAX_RETAINED_BYTES", "value": "1048576" } ], "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": 3, "failureThreshold": 90, "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-gateway.sh", "hwlab.pikastech.local/environment-digest": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "33a6ee768a1b5271e20f25bcb47f2f0f54160284c9c1308f0f031932f1356108" } }, "spec": { "containers": [ { "name": "hwlab-gateway", "image": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "ports": [ { "name": "http", "containerPort": 7001 } ], "env": [ { "name": "HWLAB_GATEWAY_MODE", "value": "hardware-boundary" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "TZ", "value": "Asia/Shanghai" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "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://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "33a6ee768a1b5271e20f25bcb47f2f0f54160284c9c1308f0f031932f1356108" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" } ], "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-edge-proxy.sh", "hwlab.pikastech.local/environment-digest": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "6b7f2c6afbfc76b3ad02e1a4fea96582c58a205633b91d37c46716220a716f5d" } }, "spec": { "containers": [ { "name": "hwlab-edge-proxy", "image": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "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_EDGE_IDLE_TIMEOUT_SECONDS", "value": "120" }, { "name": "TZ", "value": "Asia/Shanghai" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "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://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "6b7f2c6afbfc76b3ad02e1a4fea96582c58a205633b91d37c46716220a716f5d" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_PUBLIC_ENDPOINT", "value": "https://lab-dev.hwpod.com" } ], "readinessProbe": { "httpGet": { "path": "/health", "port": "http" }, "timeoutSeconds": 3, "failureThreshold": 5 }, "livenessProbe": { "httpGet": { "path": "/health", "port": "http" }, "periodSeconds": 20, "timeoutSeconds": 5, "failureThreshold": 6 }, "imagePullPolicy": "IfNotPresent", "startupProbe": { "httpGet": { "path": "/health/live", "port": "http" }, "periodSeconds": 10, "timeoutSeconds": 3, "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" } }, "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/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/gitops-render-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/artifact-source-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-gitea-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", "hwlab.pikastech.local/boot-commit": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-agent-skills.sh", "hwlab.pikastech.local/environment-digest": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "hwlab.pikastech.local/environment-input-hash": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba", "hwlab.pikastech.local/code-input-hash": "b274823f7b33a772fb75b57973cfe739d7385412291af146ce7001d7798af0eb" } }, "spec": { "containers": [ { "name": "hwlab-agent-skills", "image": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2", "ports": [ { "name": "http", "containerPort": 7430 } ], "env": [ { "name": "HWLAB_SKILLS_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "TZ", "value": "Asia/Shanghai" }, { "name": "HWLAB_ENVIRONMENT", "value": "v03" }, { "name": "HWLAB_COMMIT_ID", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env@sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_IMAGE_TAG", "value": "env-5531c27ecbd8" }, { "name": "HWLAB_GITOPS_TARGET", "value": "v03" }, { "name": "HWLAB_GITOPS_PROFILE", "value": "v03" }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "name": "HWLAB_RUNTIME_MODE", "value": "env-reuse-gitea-checkout" }, { "name": "HWLAB_BOOT_REPO", "value": "git@github.com:pikasTech/HWLAB.git" }, { "name": "HWLAB_BOOT_COMMIT", "value": "974ffad37cef6e37ecc9aa94fe1ae5907b8d6b70" }, { "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://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-HWLAB.git" }, { "name": "HWLAB_ENVIRONMENT_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-ts-runtime-env:env-5531c27ecbd8" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", "value": "5531c27ecbd8a37dde527aecc6c53d1c626da0776ee56daefb67f921bb478eba" }, { "name": "HWLAB_CODE_INPUT_HASH", "value": "b274823f7b33a772fb75b57973cfe739d7385412291af146ce7001d7798af0eb" }, { "name": "HWLAB_IMAGE_DIGEST", "value": "sha256:2ab70e5daca54eff3bd86dcb812e3441516352a10046589662d36c8ce4cf8ec2" } ], "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" } } ] } } } } ] }