Files
pikasTech-HWLAB/deploy/deploy.json
T

294 lines
9.0 KiB
JSON

{
"manifestVersion": "v1",
"environment": "dev",
"namespace": "hwlab-dev",
"endpoint": "http://74.48.78.17:16667",
"health": {
"method": "GET",
"path": "/health/live",
"responseFormat": "json"
},
"publicEndpoints": {
"frontend": {
"url": "http://74.48.78.17:16666",
"protocol": "http",
"host": "74.48.78.17",
"port": 16666,
"serviceId": "hwlab-cloud-web",
"frpProxy": "hwlab-dev-cloud-web"
},
"api": {
"url": "http://74.48.78.17:16667",
"protocol": "http",
"host": "74.48.78.17",
"port": 16667,
"serviceId": "hwlab-edge-proxy",
"frpProxy": "hwlab-dev-edge-proxy"
}
},
"frp": {
"server": {
"address": "74.48.78.17",
"bindPort": 7000
},
"proxies": [
{
"name": "hwlab-dev-cloud-web",
"endpointId": "frontend",
"type": "tcp",
"localServiceId": "hwlab-cloud-web",
"localHost": "hwlab-cloud-web.hwlab-dev.svc.cluster.local",
"localPort": 8080,
"remotePort": 16666
},
{
"name": "hwlab-dev-edge-proxy",
"endpointId": "api",
"type": "tcp",
"localServiceId": "hwlab-edge-proxy",
"localHost": "hwlab-edge-proxy.hwlab-dev.svc.cluster.local",
"localPort": 6667,
"remotePort": 16667
}
]
},
"k3s": {
"serviceMappings": [
{
"serviceId": "hwlab-cloud-api",
"name": "hwlab-cloud-api",
"namespace": "hwlab-dev",
"port": 6667,
"targetPort": "http"
},
{
"serviceId": "hwlab-cloud-web",
"name": "hwlab-cloud-web",
"namespace": "hwlab-dev",
"port": 8080,
"targetPort": "http"
},
{
"serviceId": "hwlab-gateway",
"name": "hwlab-gateway",
"namespace": "hwlab-dev",
"port": 7001,
"targetPort": "http"
},
{
"serviceId": "hwlab-cli",
"name": "hwlab-cli",
"namespace": "hwlab-dev",
"port": 7501,
"targetPort": "http"
},
{
"serviceId": "hwlab-agent-skills",
"name": "hwlab-agent-skills",
"namespace": "hwlab-dev",
"port": 7430,
"targetPort": "http"
},
{
"serviceId": "hwlab-agent-mgr",
"name": "hwlab-agent-mgr",
"namespace": "hwlab-dev",
"port": 7410,
"targetPort": "http"
},
{
"serviceId": "hwlab-device-pod",
"name": "hwlab-device-pod",
"namespace": "hwlab-dev",
"port": 7601,
"targetPort": "http"
},
{
"serviceId": "hwlab-edge-proxy",
"name": "hwlab-edge-proxy",
"namespace": "hwlab-dev",
"port": 6667,
"targetPort": "http"
}
]
},
"profiles": {
"dev": {
"name": "dev",
"enabled": true,
"namespace": "hwlab-dev",
"endpoint": "http://74.48.78.17:16667",
"notes": "DEV-only k3s deployment skeleton. D601 reaches the master edge through frp reverse tunnel."
},
"prod": {
"name": "prod",
"enabled": false,
"namespace": "hwlab-prod",
"notes": "Reserved placeholder only. PROD deployment and acceptance are explicitly out of scope."
}
},
"lanes": {
"v02": {
"name": "v0.2",
"sourceBranch": "v0.2",
"gitopsBranch": "v0.2-gitops",
"namespace": "hwlab-v02",
"endpoint": "http://74.48.78.17:19667",
"publicEndpoints": {
"frontend": "http://74.48.78.17:19666",
"api": "http://74.48.78.17:19667"
},
"artifactCatalog": "deploy/artifact-catalog.v02.json",
"runtimePath": "deploy/gitops/g14/runtime-v02",
"imageTagMode": "full",
"services": [
{
"serviceId": "hwlab-cloud-api",
"env": {
"HWLAB_CLOUD_DB_URL": "secretRef:hwlab-cloud-api-v02-db/database-url",
"HWLAB_CLOUD_DB_CONTRACT": "v02-redacted-presence-only",
"HWLAB_ACCESS_CONTROL_REQUIRED": "1",
"HWLAB_BOOTSTRAP_ADMIN_ID": "usr_v02_admin",
"HWLAB_BOOTSTRAP_ADMIN_USERNAME": "admin",
"HWLAB_BOOTSTRAP_ADMIN_DISPLAY_NAME": "HWLAB v0.2 Admin",
"HWLAB_BOOTSTRAP_ADMIN_PASSWORD_HASH": "secretRef:hwlab-v02-bootstrap-admin/password-hash"
}
}
]
}
},
"services": [
{
"serviceId": "hwlab-cloud-api",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
"replicas": 1,
"env": {
"HWLAB_ENVIRONMENT": "dev",
"HWLAB_PUBLIC_ENDPOINT": "http://74.48.78.17:16667",
"HWLAB_CLOUD_API_PORT": "6667",
"HWLAB_RUNTIME_SUBSTITUTE_FORBIDDEN": "unidesk-backend,provider-gateway,microservice-proxy",
"HWLAB_CLOUD_DB_URL": "secretRef:hwlab-cloud-api-dev-db/database-url",
"HWLAB_CLOUD_DB_SSL_MODE": "disable",
"HWLAB_CLOUD_DB_CONTRACT": "dev-redacted-presence-only",
"HWLAB_CLOUD_RUNTIME_ADAPTER": "postgres",
"HWLAB_CLOUD_RUNTIME_DURABLE": "true",
"HWLAB_M3_IO_CONTROL_ENABLED": "false",
"HWLAB_CODE_AGENT_PROVIDER": "codex-stdio",
"HWLAB_CODE_AGENT_MODEL": "gpt-5.5",
"HWLAB_CODE_AGENT_TIMEOUT_MS": "1200000",
"HWLAB_CODE_AGENT_OPENAI_BASE_URL": "http://127.0.0.1:49280/responses",
"HWLAB_CODE_AGENT_CODEX_STDIO_ENABLED": "1",
"HWLAB_CODE_AGENT_CODEX_STDIO_SUPERVISOR": "repo-owned",
"HWLAB_CODE_AGENT_WORKSPACE": "/workspace/hwlab",
"HWLAB_CODE_AGENT_CODEX_WORKSPACE": "/workspace/hwlab",
"HWLAB_CODE_AGENT_CODEX_SANDBOX": "danger-full-access",
"HWLAB_CODE_AGENT_CODEX_COMMAND": "/app/node_modules/.bin/codex",
"CODEX_HOME": "/codex-home",
"NO_PROXY": "hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com",
"no_proxy": "hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com",
"OPENAI_API_KEY": "secretRef:hwlab-code-agent-provider/openai-api-key",
"HWLAB_CODE_AGENT_SKILLS_DIRS": "/app/skills",
"HWLAB_CODE_AGENT_DEFAULT_PROVIDER_PROFILE": "deepseek",
"HWLAB_CODE_AGENT_DEEPSEEK_MODEL": "deepseek-chat",
"HWLAB_CODE_AGENT_DEEPSEEK_BASE_URL": "http://hwlab-deepseek-proxy.hwlab-dev.svc.cluster.local:4000/v1/responses",
"HWLAB_CODE_AGENT_CODEX_API_MODEL": "gpt-5.5",
"HWLAB_CODE_AGENT_CODEX_API_BASE_URL": "http://127.0.0.1:49280/responses",
"HWLAB_CODE_AGENT_CODEX_API_UPSTREAM_BASE_URL": "https://hyueapi.com",
"HWLAB_CODE_AGENT_CODEX_API_FORWARDER_PORT": "49280",
"HWLAB_DEVICE_POD_URL": "http://hwlab-device-pod.hwlab-dev.svc.cluster.local:7601"
}
},
{
"serviceId": "hwlab-cloud-web",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
"replicas": 1,
"env": {
"HWLAB_ENVIRONMENT": "dev",
"HWLAB_API_BASE_URL": "http://hwlab-cloud-api.hwlab-dev.svc.cluster.local:6667",
"HWLAB_CLOUD_WEB_PROXY_TIMEOUT_MS": "1260000"
}
},
{
"serviceId": "hwlab-agent-mgr",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
"replicas": 1,
"env": {
"HWLAB_AGENT_SESSION_MODE": "control-plane",
"HWLAB_ENVIRONMENT": "dev"
}
},
{
"serviceId": "hwlab-agent-worker",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
"replicas": 0,
"env": {
"HWLAB_AGENT_SESSION_MODE": "session-scoped",
"HWLAB_ENVIRONMENT": "dev"
}
},
{
"serviceId": "hwlab-device-pod",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
"replicas": 1,
"env": {
"HWLAB_ENVIRONMENT": "dev",
"HWLAB_CLOUD_API_INTERNAL_URL": "http://hwlab-cloud-api.hwlab-dev.svc.cluster.local:6667",
"HWLAB_DEVICE_POD_ID": "device-pod-71-freq",
"HWLAB_DEVICE_POD_PORT": "7601"
}
},
{
"serviceId": "hwlab-gateway",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
"replicas": 0,
"env": {
"HWLAB_GATEWAY_MODE": "hardware-boundary",
"HWLAB_ENVIRONMENT": "dev"
}
},
{
"serviceId": "hwlab-edge-proxy",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
"replicas": 1,
"env": {
"HWLAB_EDGE_LISTEN": "0.0.0.0:6667",
"HWLAB_EDGE_UPSTREAM": "http://hwlab-cloud-api.hwlab-dev.svc.cluster.local:6667",
"HWLAB_EDGE_PROXY_TIMEOUT_MS": "1260000"
}
},
{
"serviceId": "hwlab-cli",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
"replicas": 0,
"env": {
"HWLAB_CLI_ENDPOINT": "http://74.48.78.17:16667"
}
},
{
"serviceId": "hwlab-agent-skills",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
"replicas": 1,
"env": {}
}
],
"createdAt": "2026-05-21T00:00:00Z"
}