Files
pikasTech-HWLAB/deploy/k8s/base/workloads.yaml
T
2026-05-23 20:02:36 +00:00

927 lines
28 KiB
YAML

{
"apiVersion": "v1",
"kind": "List",
"items": [
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "hwlab-cloud-api",
"namespace": "hwlab-dev",
"labels": {
"app.kubernetes.io/name": "hwlab-cloud-api",
"hwlab.pikastech.local/service-id": "hwlab-cloud-api"
}
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"app.kubernetes.io/name": "hwlab-cloud-api"
}
},
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-cloud-api",
"hwlab.pikastech.local/service-id": "hwlab-cloud-api"
}
},
"spec": {
"containers": [
{
"name": "hwlab-cloud-api",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:86b3976",
"ports": [
{
"name": "http",
"containerPort": 6667
}
],
"env": [
{
"name": "HWLAB_ENVIRONMENT",
"value": "dev"
},
{
"name": "HWLAB_PUBLIC_ENDPOINT",
"value": "http://74.48.78.17:16667"
},
{
"name": "HWLAB_COMMIT_ID",
"value": "86b3976"
},
{
"name": "HWLAB_IMAGE",
"value": "127.0.0.1:5000/hwlab/hwlab-cloud-api:86b3976"
},
{
"name": "HWLAB_IMAGE_TAG",
"value": "86b3976"
},
{
"name": "HWLAB_RUNTIME_SUBSTITUTE_FORBIDDEN",
"value": "unidesk-backend,provider-gateway,microservice-proxy"
},
{
"name": "HWLAB_CLOUD_DB_URL",
"valueFrom": {
"secretKeyRef": {
"name": "hwlab-cloud-api-dev-db",
"key": "database-url",
"optional": true
}
}
},
{
"name": "HWLAB_CLOUD_DB_SSL_MODE",
"value": "disable"
},
{
"name": "HWLAB_CLOUD_DB_CONTRACT",
"value": "dev-redacted-presence-only"
},
{
"name": "HWLAB_CLOUD_RUNTIME_ADAPTER",
"value": "postgres"
},
{
"name": "HWLAB_CLOUD_RUNTIME_DURABLE",
"value": "true"
},
{
"name": "HWLAB_M3_IO_CONTROL_ENABLED",
"value": "true"
},
{
"name": "HWLAB_M3_GATEWAY_SIMU_1_URL",
"value": "http://hwlab-gateway-simu-1.hwlab-dev.svc.cluster.local:7101"
},
{
"name": "HWLAB_M3_GATEWAY_SIMU_2_URL",
"value": "http://hwlab-gateway-simu-2.hwlab-dev.svc.cluster.local:7101"
},
{
"name": "HWLAB_M3_PATCH_PANEL_URL",
"value": "http://hwlab-patch-panel.hwlab-dev.svc.cluster.local:7301"
},
{
"name": "HWLAB_CODE_AGENT_PROVIDER",
"value": "openai"
},
{
"name": "HWLAB_CODE_AGENT_MODEL",
"value": "gpt-5.5"
},
{
"name": "HWLAB_CODE_AGENT_TIMEOUT_MS",
"value": "120000"
},
{
"name": "HWLAB_CODE_AGENT_OPENAI_BASE_URL",
"value": "http://172.26.26.227:17680/v1/responses"
},
{
"name": "HWLAB_CODE_AGENT_HWLAB_API_BASE_URL",
"value": "http://hwlab-cloud-api.hwlab-dev.svc.cluster.local:6667"
},
{
"name": "HWLAB_CODE_AGENT_CODEX_STDIO_ENABLED",
"value": "1"
},
{
"name": "HWLAB_CODE_AGENT_CODEX_STDIO_SUPERVISOR",
"value": "repo-owned"
},
{
"name": "HWLAB_CODE_AGENT_WORKSPACE",
"value": "/workspace/hwlab"
},
{
"name": "HWLAB_CODE_AGENT_CODEX_WORKSPACE",
"value": "/workspace/hwlab"
},
{
"name": "HWLAB_CODE_AGENT_CODEX_SANDBOX",
"value": "workspace-write"
},
{
"name": "HWLAB_CODE_AGENT_CODEX_COMMAND",
"value": "/app/node_modules/.bin/codex"
},
{
"name": "CODEX_HOME",
"value": "/codex-home"
},
{
"name": "OPENAI_API_KEY",
"valueFrom": {
"secretKeyRef": {
"name": "hwlab-code-agent-provider",
"key": "openai-api-key",
"optional": true
}
}
}
],
"readinessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
},
"livenessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
}
}
]
}
}
}
},
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "hwlab-cloud-web",
"namespace": "hwlab-dev",
"labels": {
"app.kubernetes.io/name": "hwlab-cloud-web",
"hwlab.pikastech.local/service-id": "hwlab-cloud-web"
}
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"app.kubernetes.io/name": "hwlab-cloud-web"
}
},
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-cloud-web",
"hwlab.pikastech.local/service-id": "hwlab-cloud-web"
}
},
"spec": {
"containers": [
{
"name": "hwlab-cloud-web",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:86b3976",
"ports": [
{
"name": "http",
"containerPort": 8080
}
],
"env": [
{
"name": "HWLAB_API_BASE_URL",
"value": "http://hwlab-cloud-api.hwlab-dev.svc.cluster.local:6667"
},
{
"name": "HWLAB_CLOUD_WEB_PROXY_TIMEOUT_MS",
"value": "150000"
},
{
"name": "HWLAB_COMMIT_ID",
"value": "86b3976"
},
{
"name": "HWLAB_IMAGE",
"value": "127.0.0.1:5000/hwlab/hwlab-cloud-web:86b3976"
},
{
"name": "HWLAB_IMAGE_TAG",
"value": "86b3976"
}
],
"readinessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
},
"livenessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
}
}
]
}
}
}
},
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "hwlab-agent-mgr",
"namespace": "hwlab-dev",
"labels": {
"app.kubernetes.io/name": "hwlab-agent-mgr",
"hwlab.pikastech.local/service-id": "hwlab-agent-mgr"
}
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"app.kubernetes.io/name": "hwlab-agent-mgr"
}
},
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-agent-mgr",
"hwlab.pikastech.local/service-id": "hwlab-agent-mgr"
}
},
"spec": {
"containers": [
{
"name": "hwlab-agent-mgr",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:86b3976",
"ports": [
{
"name": "http",
"containerPort": 7410
}
],
"env": [
{
"name": "HWLAB_AGENT_SESSION_MODE",
"value": "control-plane"
}
],
"readinessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
},
"livenessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
}
}
]
}
}
}
},
{
"apiVersion": "batch/v1",
"kind": "Job",
"metadata": {
"name": "hwlab-agent-worker-template",
"namespace": "hwlab-dev",
"labels": {
"app.kubernetes.io/name": "hwlab-agent-worker",
"hwlab.pikastech.local/service-id": "hwlab-agent-worker"
}
},
"spec": {
"suspend": true,
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-agent-worker",
"hwlab.pikastech.local/service-id": "hwlab-agent-worker"
}
},
"spec": {
"restartPolicy": "Never",
"containers": [
{
"name": "hwlab-agent-worker",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:86b3976",
"env": [
{
"name": "HWLAB_AGENT_SESSION_MODE",
"value": "session-scoped"
}
]
}
]
}
}
}
},
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "hwlab-gateway",
"namespace": "hwlab-dev",
"labels": {
"app.kubernetes.io/name": "hwlab-gateway",
"hwlab.pikastech.local/service-id": "hwlab-gateway",
"hwlab.pikastech.local/activation": "manual"
}
},
"spec": {
"replicas": 0,
"selector": {
"matchLabels": {
"app.kubernetes.io/name": "hwlab-gateway"
}
},
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-gateway",
"hwlab.pikastech.local/service-id": "hwlab-gateway"
}
},
"spec": {
"containers": [
{
"name": "hwlab-gateway",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:86b3976",
"ports": [
{
"name": "http",
"containerPort": 7001
}
],
"env": [
{
"name": "HWLAB_GATEWAY_MODE",
"value": "hardware-boundary"
}
],
"readinessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
},
"livenessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
}
}
]
}
}
}
},
{
"apiVersion": "apps/v1",
"kind": "StatefulSet",
"metadata": {
"name": "hwlab-gateway-simu",
"namespace": "hwlab-dev",
"labels": {
"app.kubernetes.io/name": "hwlab-gateway-simu",
"hwlab.pikastech.local/service-id": "hwlab-gateway-simu"
}
},
"spec": {
"serviceName": "hwlab-gateway-simu",
"replicas": 2,
"selector": {
"matchLabels": {
"app.kubernetes.io/name": "hwlab-gateway-simu"
}
},
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-gateway-simu",
"hwlab.pikastech.local/service-id": "hwlab-gateway-simu"
}
},
"spec": {
"containers": [
{
"name": "hwlab-gateway-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:86b3976",
"ports": [
{
"name": "http",
"containerPort": 7101
}
],
"env": [
{
"name": "HWLAB_GATEWAY_ID",
"value": "gwsimu_1,gwsimu_2"
},
{
"name": "HWLAB_BOX_IDS",
"value": "boxsimu_1,boxsimu_2"
},
{
"name": "HWLAB_BOX_RESOURCES",
"value": "res_boxsimu_1,res_boxsimu_2"
},
{
"name": "HWLAB_BOX_URLS",
"value": "http://hwlab-box-simu-1.hwlab-dev.svc.cluster.local:7201,http://hwlab-box-simu-2.hwlab-dev.svc.cluster.local:7201"
}
],
"readinessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
},
"livenessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
}
}
]
}
}
}
},
{
"apiVersion": "apps/v1",
"kind": "StatefulSet",
"metadata": {
"name": "hwlab-box-simu",
"namespace": "hwlab-dev",
"labels": {
"app.kubernetes.io/name": "hwlab-box-simu",
"hwlab.pikastech.local/service-id": "hwlab-box-simu"
}
},
"spec": {
"serviceName": "hwlab-box-simu",
"replicas": 2,
"selector": {
"matchLabels": {
"app.kubernetes.io/name": "hwlab-box-simu"
}
},
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-box-simu",
"hwlab.pikastech.local/service-id": "hwlab-box-simu"
}
},
"spec": {
"containers": [
{
"name": "hwlab-box-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:86b3976",
"ports": [
{
"name": "http",
"containerPort": 7201
}
],
"env": [
{
"name": "HWLAB_BOX_ID",
"value": "boxsimu_1,boxsimu_2"
},
{
"name": "HWLAB_BOX_RESOURCE_ID",
"value": "res_boxsimu_1,res_boxsimu_2"
},
{
"name": "HWLAB_GATEWAY_SESSION_ID",
"value": "gws_gwsimu_1,gws_gwsimu_2"
}
],
"readinessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
},
"livenessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
}
}
]
}
}
}
},
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "hwlab-patch-panel",
"namespace": "hwlab-dev",
"labels": {
"app.kubernetes.io/name": "hwlab-patch-panel",
"hwlab.pikastech.local/service-id": "hwlab-patch-panel"
}
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"app.kubernetes.io/name": "hwlab-patch-panel"
}
},
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-patch-panel",
"hwlab.pikastech.local/service-id": "hwlab-patch-panel"
}
},
"spec": {
"containers": [
{
"name": "hwlab-patch-panel",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:86b3976",
"ports": [
{
"name": "http",
"containerPort": 7301
}
],
"env": [
{
"name": "HWLAB_PATCH_PANEL_ENDPOINT_MAP",
"value": "{\"res_boxsimu_2\":\"http://hwlab-box-simu-2.hwlab-dev.svc.cluster.local:7201\"}"
},
{
"name": "HWLAB_PATCH_PANEL_WIRING_CONFIG",
"value": "{\"wiringConfigId\":\"wir_m3_do1_di1\",\"projectId\":\"prj_m3_hardware_loop\",\"gatewaySessionId\":\"gws_gwsimu_1\",\"name\":\"M3 simulated DO1 to DI1 patch wiring\",\"status\":\"active\",\"connections\":[{\"from\":{\"resourceId\":\"res_boxsimu_1\",\"port\":\"DO1\"},\"to\":{\"resourceId\":\"res_boxsimu_2\",\"port\":\"DI1\"},\"mode\":\"exclusive\"}],\"constraints\":{\"propagation\":\"patch-panel-only\",\"localLoopbackSubstituteAllowed\":false},\"createdAt\":\"2026-05-21T00:00:00.000Z\",\"updatedAt\":\"2026-05-21T00:00:00.000Z\"}"
}
],
"readinessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
},
"livenessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
}
}
]
}
}
}
},
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "hwlab-router",
"namespace": "hwlab-dev",
"labels": {
"app.kubernetes.io/name": "hwlab-router",
"hwlab.pikastech.local/service-id": "hwlab-router"
}
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"app.kubernetes.io/name": "hwlab-router"
}
},
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-router",
"hwlab.pikastech.local/service-id": "hwlab-router"
}
},
"spec": {
"containers": [
{
"name": "hwlab-router",
"image": "127.0.0.1:5000/hwlab/hwlab-router:86b3976",
"ports": [
{
"name": "http",
"containerPort": 7401
}
],
"env": [
{
"name": "HWLAB_EDGE_PROXY_SERVICE",
"value": "hwlab-edge-proxy"
}
],
"readinessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
},
"livenessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
}
}
]
}
}
}
},
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "hwlab-tunnel-client",
"namespace": "hwlab-dev",
"labels": {
"app.kubernetes.io/name": "hwlab-tunnel-client",
"hwlab.pikastech.local/service-id": "hwlab-tunnel-client"
}
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"app.kubernetes.io/name": "hwlab-tunnel-client"
}
},
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-tunnel-client",
"hwlab.pikastech.local/service-id": "hwlab-tunnel-client"
}
},
"spec": {
"containers": [
{
"name": "hwlab-tunnel-client",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:86b3976",
"ports": [
{
"name": "http",
"containerPort": 7402
}
],
"env": [
{
"name": "HWLAB_TUNNEL_MODE",
"value": "frp-client"
},
{
"name": "HWLAB_FRP_SERVER_ADDR",
"value": "74.48.78.17"
},
{
"name": "HWLAB_FRP_PUBLIC_PORT",
"value": "16667"
},
{
"name": "HWLAB_FRP_WEB_PUBLIC_PORT",
"value": "16666"
}
],
"readinessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
},
"livenessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
}
}
]
}
}
}
},
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "hwlab-edge-proxy",
"namespace": "hwlab-dev",
"labels": {
"app.kubernetes.io/name": "hwlab-edge-proxy",
"hwlab.pikastech.local/service-id": "hwlab-edge-proxy"
}
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"app.kubernetes.io/name": "hwlab-edge-proxy"
}
},
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-edge-proxy",
"hwlab.pikastech.local/service-id": "hwlab-edge-proxy"
}
},
"spec": {
"containers": [
{
"name": "hwlab-edge-proxy",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:86b3976",
"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-dev.svc.cluster.local:6667"
},
{
"name": "HWLAB_EDGE_PROXY_TIMEOUT_MS",
"value": "150000"
}
],
"readinessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
},
"livenessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
}
}
]
}
}
}
},
{
"apiVersion": "batch/v1",
"kind": "Job",
"metadata": {
"name": "hwlab-cli-template",
"namespace": "hwlab-dev",
"labels": {
"app.kubernetes.io/name": "hwlab-cli",
"hwlab.pikastech.local/service-id": "hwlab-cli",
"hwlab.pikastech.local/activation": "manual"
}
},
"spec": {
"suspend": true,
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-cli",
"hwlab.pikastech.local/service-id": "hwlab-cli"
}
},
"spec": {
"restartPolicy": "Never",
"containers": [
{
"name": "hwlab-cli",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:86b3976",
"env": [
{
"name": "HWLAB_CLI_ENDPOINT",
"value": "http://74.48.78.17:16667"
}
]
}
]
}
}
}
},
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "hwlab-agent-skills",
"namespace": "hwlab-dev",
"labels": {
"app.kubernetes.io/name": "hwlab-agent-skills",
"hwlab.pikastech.local/service-id": "hwlab-agent-skills"
}
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"app.kubernetes.io/name": "hwlab-agent-skills"
}
},
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-agent-skills",
"hwlab.pikastech.local/service-id": "hwlab-agent-skills"
}
},
"spec": {
"containers": [
{
"name": "hwlab-agent-skills",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:86b3976",
"ports": [
{
"name": "http",
"containerPort": 7430
}
],
"env": [
{
"name": "HWLAB_SKILLS_COMMIT_ID",
"value": "86b3976"
}
],
"readinessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
},
"livenessProbe": {
"httpGet": {
"path": "/health/live",
"port": "http"
}
}
}
]
}
}
}
}
]
}