1207 lines
37 KiB
YAML
1207 lines
37 KiB
YAML
{
|
|
"apiVersion": "v1",
|
|
"kind": "List",
|
|
"items": [
|
|
{
|
|
"apiVersion": "v1",
|
|
"kind": "PersistentVolumeClaim",
|
|
"metadata": {
|
|
"labels": {
|
|
"app.kubernetes.io/name": "hwlab-code-agent-workspace",
|
|
"hwlab.pikastech.local/service-id": "hwlab-code-agent-workspace"
|
|
},
|
|
"name": "hwlab-code-agent-workspace",
|
|
"namespace": "hwlab-dev"
|
|
},
|
|
"spec": {
|
|
"accessModes": [
|
|
"ReadWriteOnce"
|
|
],
|
|
"resources": {
|
|
"requests": {
|
|
"storage": "8Gi"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"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,
|
|
"strategy": {
|
|
"type": "Recreate"
|
|
},
|
|
"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": {
|
|
"initContainers": [
|
|
{
|
|
"command": [
|
|
"sh",
|
|
"-ceu",
|
|
"target=/workspace/hwlab\nmarker=\"$target/.hwlab-workspace-initialized\"\nmkdir -p \"$target\"\nif [ ! -e \"$marker\" ]; then\n if [ -z \"$(find \"$target\" -mindepth 1 -maxdepth 1 ! -name lost+found -print -quit)\" ]; then\n cp -a /app/. \"$target\"/\n mode=copied-from-image\n else\n mode=adopted-existing-workspace\n fi\n printf '%s\\n' \"$mode\" > \"$marker\"\n printf '%s\\n' \"${HWLAB_WORKSPACE_SOURCE_COMMIT:-unknown}\" > \"$target/.hwlab-workspace-base-revision\"\nfi\nprintf '%s\\n' \"${HWLAB_WORKSPACE_SOURCE_COMMIT:-unknown}\" > \"$target/.hwlab-workspace-current-image-revision\"\n"
|
|
],
|
|
"env": [
|
|
{
|
|
"name": "HWLAB_WORKSPACE_SOURCE_COMMIT",
|
|
"value": "af46386"
|
|
}
|
|
],
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:af46386",
|
|
"imagePullPolicy": "IfNotPresent",
|
|
"name": "hwlab-code-agent-workspace-init",
|
|
"volumeMounts": [
|
|
{
|
|
"mountPath": "/workspace",
|
|
"name": "hwlab-code-agent-workspace"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"containers": [
|
|
{
|
|
"name": "hwlab-cloud-api",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:af46386",
|
|
"ports": [
|
|
{
|
|
"name": "http",
|
|
"containerPort": 6667
|
|
}
|
|
],
|
|
"env": [
|
|
{
|
|
"name": "HWLAB_ENVIRONMENT",
|
|
"value": "dev"
|
|
},
|
|
{
|
|
"name": "HWLAB_PUBLIC_ENDPOINT",
|
|
"value": "http://74.48.78.17:16667"
|
|
},
|
|
{
|
|
"name": "HWLAB_CLOUD_API_PORT",
|
|
"value": "6667"
|
|
},
|
|
{
|
|
"name": "HWLAB_COMMIT_ID",
|
|
"value": "af46386"
|
|
},
|
|
{
|
|
"name": "HWLAB_IMAGE",
|
|
"value": "127.0.0.1:5000/hwlab/hwlab-cloud-api:af46386"
|
|
},
|
|
{
|
|
"name": "HWLAB_IMAGE_TAG",
|
|
"value": "af46386"
|
|
},
|
|
{
|
|
"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": "codex-stdio"
|
|
},
|
|
{
|
|
"name": "HWLAB_CODE_AGENT_MODEL",
|
|
"value": "gpt-5.5"
|
|
},
|
|
{
|
|
"name": "HWLAB_CODE_AGENT_TIMEOUT_MS",
|
|
"value": "1200000"
|
|
},
|
|
{
|
|
"name": "HWLAB_CODE_AGENT_OPENAI_BASE_URL",
|
|
"value": "http://127.0.0.1:49280/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": "danger-full-access"
|
|
},
|
|
{
|
|
"name": "HWLAB_CODE_AGENT_CODEX_COMMAND",
|
|
"value": "/app/node_modules/.bin/codex"
|
|
},
|
|
{
|
|
"name": "CODEX_HOME",
|
|
"value": "/codex-home"
|
|
},
|
|
{
|
|
"name": "NO_PROXY",
|
|
"value": "hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com"
|
|
},
|
|
{
|
|
"name": "no_proxy",
|
|
"value": "hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com"
|
|
},
|
|
{
|
|
"name": "HWLAB_CODE_AGENT_SKILLS_DIRS",
|
|
"value": "/app/skills"
|
|
},
|
|
{
|
|
"name": "OPENAI_API_KEY",
|
|
"valueFrom": {
|
|
"secretKeyRef": {
|
|
"name": "hwlab-code-agent-provider",
|
|
"key": "openai-api-key",
|
|
"optional": true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "HWLAB_CODE_AGENT_DEFAULT_PROVIDER_PROFILE",
|
|
"value": "deepseek"
|
|
},
|
|
{
|
|
"name": "HWLAB_CODE_AGENT_DEEPSEEK_MODEL",
|
|
"value": "deepseek-chat"
|
|
},
|
|
{
|
|
"name": "HWLAB_CODE_AGENT_DEEPSEEK_BASE_URL",
|
|
"value": "http://hwlab-deepseek-proxy.hwlab-dev.svc.cluster.local:4000/v1/responses"
|
|
},
|
|
{
|
|
"name": "HWLAB_CODE_AGENT_CODEX_API_MODEL",
|
|
"value": "gpt-5.5"
|
|
},
|
|
{
|
|
"name": "HWLAB_CODE_AGENT_CODEX_API_BASE_URL",
|
|
"value": "http://127.0.0.1:49280/responses"
|
|
},
|
|
{
|
|
"name": "HWLAB_CODE_AGENT_CODEX_API_UPSTREAM_BASE_URL",
|
|
"value": "https://hyueapi.com"
|
|
},
|
|
{
|
|
"name": "HWLAB_CODE_AGENT_CODEX_API_FORWARDER_PORT",
|
|
"value": "49280"
|
|
},
|
|
{
|
|
"name": "HWLAB_DEVICE_POD_URL",
|
|
"value": "http://hwlab-device-pod.hwlab-dev.svc.cluster.local:7601"
|
|
}
|
|
],
|
|
"readinessProbe": {
|
|
"httpGet": {
|
|
"path": "/health/live",
|
|
"port": "http"
|
|
}
|
|
},
|
|
"livenessProbe": {
|
|
"httpGet": {
|
|
"path": "/health/live",
|
|
"port": "http"
|
|
}
|
|
},
|
|
"volumeMounts": [
|
|
{
|
|
"name": "hwlab-code-agent-workspace",
|
|
"mountPath": "/workspace"
|
|
},
|
|
{
|
|
"name": "hwlab-code-agent-codex-home",
|
|
"mountPath": "/codex-home"
|
|
},
|
|
{
|
|
"name": "hwlab-code-agent-codex-config",
|
|
"mountPath": "/codex-home/config.toml",
|
|
"subPath": "config.toml",
|
|
"readOnly": true
|
|
},
|
|
{
|
|
"name": "hwlab-code-agent-codex-auth",
|
|
"mountPath": "/codex-home/auth.json",
|
|
"subPath": "auth.json",
|
|
"readOnly": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "hwlab-codex-api-forwarder",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:af46386",
|
|
"command": [
|
|
"/usr/local/bin/bun",
|
|
"run",
|
|
"/app/cmd/hwlab-codex-api-responses-forwarder/main.ts"
|
|
],
|
|
"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": "hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com"
|
|
},
|
|
{
|
|
"name": "no_proxy",
|
|
"value": "hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com"
|
|
}
|
|
],
|
|
"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
|
|
}
|
|
}
|
|
],
|
|
"volumes": [
|
|
{
|
|
"name": "hwlab-code-agent-workspace",
|
|
"persistentVolumeClaim": {
|
|
"claimName": "hwlab-code-agent-workspace"
|
|
}
|
|
},
|
|
{
|
|
"name": "hwlab-code-agent-codex-home",
|
|
"emptyDir": {}
|
|
},
|
|
{
|
|
"name": "hwlab-code-agent-codex-config",
|
|
"configMap": {
|
|
"name": "hwlab-code-agent-codex-config",
|
|
"items": [
|
|
{
|
|
"key": "config.toml",
|
|
"path": "config.toml"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "hwlab-code-agent-codex-auth",
|
|
"secret": {
|
|
"secretName": "hwlab-code-agent-codex-auth",
|
|
"items": [
|
|
{
|
|
"key": "auth.json",
|
|
"path": "auth.json"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"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:af46386",
|
|
"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": "1260000"
|
|
},
|
|
{
|
|
"name": "HWLAB_COMMIT_ID",
|
|
"value": "af46386"
|
|
},
|
|
{
|
|
"name": "HWLAB_IMAGE",
|
|
"value": "127.0.0.1:5000/hwlab/hwlab-cloud-web:af46386"
|
|
},
|
|
{
|
|
"name": "HWLAB_IMAGE_TAG",
|
|
"value": "af46386"
|
|
}
|
|
],
|
|
"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:af46386",
|
|
"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:af46386",
|
|
"env": [
|
|
{
|
|
"name": "HWLAB_AGENT_SESSION_MODE",
|
|
"value": "session-scoped"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"apiVersion": "apps/v1",
|
|
"kind": "Deployment",
|
|
"metadata": {
|
|
"name": "hwlab-device-pod",
|
|
"namespace": "hwlab-dev",
|
|
"labels": {
|
|
"app.kubernetes.io/name": "hwlab-device-pod",
|
|
"hwlab.pikastech.local/service-id": "hwlab-device-pod"
|
|
}
|
|
},
|
|
"spec": {
|
|
"replicas": 1,
|
|
"selector": {
|
|
"matchLabels": {
|
|
"app.kubernetes.io/name": "hwlab-device-pod"
|
|
}
|
|
},
|
|
"template": {
|
|
"metadata": {
|
|
"labels": {
|
|
"app.kubernetes.io/name": "hwlab-device-pod",
|
|
"hwlab.pikastech.local/service-id": "hwlab-device-pod"
|
|
}
|
|
},
|
|
"spec": {
|
|
"containers": [
|
|
{
|
|
"name": "hwlab-device-pod",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-device-pod:af46386",
|
|
"ports": [
|
|
{
|
|
"name": "http",
|
|
"containerPort": 7601
|
|
}
|
|
],
|
|
"env": [
|
|
{
|
|
"name": "HWLAB_ENVIRONMENT",
|
|
"value": "dev"
|
|
},
|
|
{
|
|
"name": "HWLAB_DEVICE_POD_ID",
|
|
"value": "device-pod-71-freq"
|
|
},
|
|
{
|
|
"name": "HWLAB_DEVICE_POD_PORT",
|
|
"value": "7601"
|
|
}
|
|
],
|
|
"readinessProbe": {
|
|
"httpGet": {
|
|
"path": "/health/live",
|
|
"port": "http"
|
|
}
|
|
},
|
|
"livenessProbe": {
|
|
"httpGet": {
|
|
"path": "/health/live",
|
|
"port": "http"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"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:af46386",
|
|
"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:af46386",
|
|
"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:af46386",
|
|
"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:af46386",
|
|
"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:af46386",
|
|
"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:af46386",
|
|
"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:af46386",
|
|
"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": "1260000"
|
|
}
|
|
],
|
|
"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:af46386",
|
|
"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:af46386",
|
|
"ports": [
|
|
{
|
|
"name": "http",
|
|
"containerPort": 7430
|
|
}
|
|
],
|
|
"env": [
|
|
{
|
|
"name": "HWLAB_SKILLS_COMMIT_ID",
|
|
"value": "af46386"
|
|
}
|
|
],
|
|
"readinessProbe": {
|
|
"httpGet": {
|
|
"path": "/health/live",
|
|
"port": "http"
|
|
}
|
|
},
|
|
"livenessProbe": {
|
|
"httpGet": {
|
|
"path": "/health/live",
|
|
"port": "http"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|