{ "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:7de6edd", "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": "7de6edd" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api:7de6edd" }, { "name": "HWLAB_IMAGE_TAG", "value": "7de6edd" }, { "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_CODE_AGENT_PROVIDER", "value": "openai" }, { "name": "HWLAB_CODE_AGENT_MODEL", "value": "gpt-5.5" }, { "name": "HWLAB_CODE_AGENT_OPENAI_BASE_URL", "value": "http://172.26.26.227:17680/v1/responses" }, { "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:7de6edd", "ports": [ { "name": "http", "containerPort": 8080 } ], "env": [ { "name": "HWLAB_API_BASE_URL", "value": "http://hwlab-cloud-api.hwlab-dev.svc.cluster.local:6667" }, { "name": "HWLAB_COMMIT_ID", "value": "7de6edd" }, { "name": "HWLAB_IMAGE", "value": "127.0.0.1:5000/hwlab/hwlab-cloud-web:7de6edd" }, { "name": "HWLAB_IMAGE_TAG", "value": "7de6edd" } ], "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:7de6edd", "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:7de6edd", "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:7de6edd", "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:7de6edd", "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:7de6edd", "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:7de6edd", "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:7de6edd", "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:7de6edd", "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:7de6edd", "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" } ], "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:7de6edd", "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:7de6edd", "ports": [ { "name": "http", "containerPort": 7430 } ], "env": [ { "name": "HWLAB_SKILLS_COMMIT_ID", "value": "7de6edd" } ], "readinessProbe": { "httpGet": { "path": "/health/live", "port": "http" } }, "livenessProbe": { "httpGet": { "path": "/health/live", "port": "http" } } } ] } } } } ] }