From 19eafcdacfc3d1f4f865bf844e480e427db23375 Mon Sep 17 00:00:00 2001 From: HWLAB G14 GitOps Bot Date: Thu, 28 May 2026 10:10:49 +0000 Subject: [PATCH] chore: promote G14 GitOps source 5fdfc9f --- deploy/artifact-catalog.v02.json | 670 ++++++ .../runtime-v02/code-agent-codex-config.yaml | 22 + .../g14/runtime-v02/deepseek-proxy.yaml | 253 ++ deploy/gitops/g14/runtime-v02/g14-frpc.yaml | 86 + .../g14/runtime-v02/health-contract.yaml | 32 + .../gitops/g14/runtime-v02/kustomization.yaml | 15 + deploy/gitops/g14/runtime-v02/namespace.yaml | 17 + deploy/gitops/g14/runtime-v02/postgres.yaml | 171 ++ deploy/gitops/g14/runtime-v02/services.yaml | 556 +++++ deploy/gitops/g14/runtime-v02/workloads.yaml | 2092 +++++++++++++++++ 10 files changed, 3914 insertions(+) create mode 100644 deploy/artifact-catalog.v02.json create mode 100644 deploy/gitops/g14/runtime-v02/code-agent-codex-config.yaml create mode 100644 deploy/gitops/g14/runtime-v02/deepseek-proxy.yaml create mode 100644 deploy/gitops/g14/runtime-v02/g14-frpc.yaml create mode 100644 deploy/gitops/g14/runtime-v02/health-contract.yaml create mode 100644 deploy/gitops/g14/runtime-v02/kustomization.yaml create mode 100644 deploy/gitops/g14/runtime-v02/namespace.yaml create mode 100644 deploy/gitops/g14/runtime-v02/postgres.yaml create mode 100644 deploy/gitops/g14/runtime-v02/services.yaml create mode 100644 deploy/gitops/g14/runtime-v02/workloads.yaml diff --git a/deploy/artifact-catalog.v02.json b/deploy/artifact-catalog.v02.json new file mode 100644 index 00000000..a7b40109 --- /dev/null +++ b/deploy/artifact-catalog.v02.json @@ -0,0 +1,670 @@ +{ + "catalogVersion": "v1", + "kind": "hwlab-artifact-catalog", + "environment": "v02", + "profile": "v02", + "namespace": "hwlab-v02", + "endpoint": "http://74.48.78.17:19667", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "artifactState": "published", + "publish": { + "registryPrefix": "127.0.0.1:5000/hwlab", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "publishedAt": null, + "ciPublished": true, + "registryVerified": true, + "provenance": "g14-ci-artifact:hwlab-v02-ci-poll-manual-p7z9c-collect", + "note": "Digest fields were copied from a successful DEV artifact publish report for this source commit." + }, + "allowedProfiles": [ + "v02" + ], + "forbiddenProfiles": [ + "dev", + "prod" + ], + "services": [ + { + "serviceId": "hwlab-cloud-api", + "profile": "v02", + "namespace": "hwlab-v02", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "digest": "sha256:d255b7c60197ccb3f2eb8f32a39f825bda4f8e0ad0096359625f61cf65afe656", + "buildBackend": "contract-skeleton", + "buildCreatedAt": "2026-05-28T10:08:23.762Z", + "buildSource": null, + "componentCommitId": "d6a02cb14c03e3de3408fb3aefa3aca7ab22cd18", + "componentInputHash": "55bfc9ddd7d76a88f3ead81951f7d85c1dfa61ec1c83e2288e509494274e1ffa", + "dockerfileHash": "298fa341cb6d852342e67e621005ffc1892093a0e165b7b484c8ee50679c38b4", + "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", + "baseImageDigest": null, + "buildArgsHash": "31de87c01b0c617b550b82b7a65780fac56d03a3b8abb9301bf0096766f87237", + "ciAffected": true, + "ciReason": [ + "catalog-digest-missing" + ], + "reuse": { + "status": "not-reused", + "reason": "component-affected" + }, + "reusedFrom": null, + "publishState": "published", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "notPublishedReason": null + }, + { + "serviceId": "hwlab-cloud-web", + "profile": "v02", + "namespace": "hwlab-v02", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "digest": "sha256:5cc2a6622e1cb478084fb73edcffc50b45db6c3acb3feef65a0e760fa73dc80d", + "buildBackend": "contract-skeleton", + "buildCreatedAt": "2026-05-28T10:08:25.737Z", + "buildSource": null, + "componentCommitId": "d6a02cb14c03e3de3408fb3aefa3aca7ab22cd18", + "componentInputHash": "de81273c47e0de100c478f801199d254e7eea2036192ffa4bfd51db222d601f4", + "dockerfileHash": "298fa341cb6d852342e67e621005ffc1892093a0e165b7b484c8ee50679c38b4", + "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", + "baseImageDigest": null, + "buildArgsHash": "39effb18af665e5e286cca9f84ef2a30f577ad11c9acca098589b7ee37f6950c", + "ciAffected": true, + "ciReason": [ + "catalog-digest-missing" + ], + "reuse": { + "status": "not-reused", + "reason": "component-affected" + }, + "reusedFrom": null, + "publishState": "published", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "notPublishedReason": null + }, + { + "serviceId": "hwlab-agent-mgr", + "profile": "v02", + "namespace": "hwlab-v02", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "digest": "sha256:1860909b745742647459356d3518ae267b444b8989690c4adaabf4fb166a68d1", + "buildBackend": "contract-skeleton", + "buildCreatedAt": "2026-05-28T10:08:23.806Z", + "buildSource": null, + "componentCommitId": "d6a02cb14c03e3de3408fb3aefa3aca7ab22cd18", + "componentInputHash": "81477221a94f0e651a8c54aab11ebd62b5fcbedb3f3776e0e96231fe14cb042d", + "dockerfileHash": "298fa341cb6d852342e67e621005ffc1892093a0e165b7b484c8ee50679c38b4", + "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", + "baseImageDigest": null, + "buildArgsHash": "804a2e2f48cae4f739c3e88bb0d961359fca0a8e1b8cac43517fb065989df72b", + "ciAffected": true, + "ciReason": [ + "catalog-digest-missing" + ], + "reuse": { + "status": "not-reused", + "reason": "component-affected" + }, + "reusedFrom": null, + "publishState": "published", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "notPublishedReason": null + }, + { + "serviceId": "hwlab-agent-worker", + "profile": "v02", + "namespace": "hwlab-v02", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "digest": "sha256:a8603c67c27173b3b6ed66939fec51a61b50449879ceb270aa51884df15407cd", + "buildBackend": "contract-skeleton", + "buildCreatedAt": "2026-05-28T10:08:25.633Z", + "buildSource": null, + "componentCommitId": "d6a02cb14c03e3de3408fb3aefa3aca7ab22cd18", + "componentInputHash": "0f1f7c43030d066e530bdfde1f4e6956c05298bad3c30ec402408f2d49c939fd", + "dockerfileHash": "298fa341cb6d852342e67e621005ffc1892093a0e165b7b484c8ee50679c38b4", + "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", + "baseImageDigest": null, + "buildArgsHash": "d5ea384583ca6916b9fdf4469a8c591e33e6e1a0ba9a59b9901fbaa797824cab", + "ciAffected": true, + "ciReason": [ + "catalog-digest-missing" + ], + "reuse": { + "status": "not-reused", + "reason": "component-affected" + }, + "reusedFrom": null, + "publishState": "published", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "notPublishedReason": null + }, + { + "serviceId": "hwlab-device-pod", + "profile": "v02", + "namespace": "hwlab-v02", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "image": "127.0.0.1:5000/hwlab/hwlab-device-pod:5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "digest": "sha256:fb16323987ec5210ab958ae85a3cfaaaa6b2386e2e1be393fcafe59c2b52386a", + "buildBackend": "contract-skeleton", + "buildCreatedAt": "2026-05-28T10:08:23.765Z", + "buildSource": null, + "componentCommitId": "d6a02cb14c03e3de3408fb3aefa3aca7ab22cd18", + "componentInputHash": "2416a0bc08c25d9daa469999d767ae8ad7a255428c6892a8e3899f78457beac8", + "dockerfileHash": "298fa341cb6d852342e67e621005ffc1892093a0e165b7b484c8ee50679c38b4", + "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", + "baseImageDigest": null, + "buildArgsHash": "7799bc31a7bf3526a7d7da6117ad86d317e743a243abb685811bafef05b8459b", + "ciAffected": true, + "ciReason": [ + "catalog-digest-missing" + ], + "reuse": { + "status": "not-reused", + "reason": "component-affected" + }, + "reusedFrom": null, + "publishState": "published", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "notPublishedReason": null + }, + { + "serviceId": "hwlab-gateway", + "profile": "v02", + "namespace": "hwlab-v02", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "image": "127.0.0.1:5000/hwlab/hwlab-gateway:5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "digest": "sha256:7999d18b5e1201a22f49b8853e666d5cf34a8c9d13eef133143b93f96d3eac70", + "buildBackend": "contract-skeleton", + "buildCreatedAt": "2026-05-28T10:08:23.765Z", + "buildSource": null, + "componentCommitId": "d6a02cb14c03e3de3408fb3aefa3aca7ab22cd18", + "componentInputHash": "aeb298aa80156627c0d42ef23a3ba6bcbeb1ddc0ed38466740fc8748397a2ec4", + "dockerfileHash": "298fa341cb6d852342e67e621005ffc1892093a0e165b7b484c8ee50679c38b4", + "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", + "baseImageDigest": null, + "buildArgsHash": "083cc565bccb315303df802dfc1f7fb87738e763afb9662fed7bc7c12719b070", + "ciAffected": true, + "ciReason": [ + "catalog-digest-missing" + ], + "reuse": { + "status": "not-reused", + "reason": "component-affected" + }, + "reusedFrom": null, + "publishState": "published", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "notPublishedReason": null + }, + { + "serviceId": "hwlab-gateway-simu", + "profile": "v02", + "namespace": "hwlab-v02", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "digest": "sha256:a70d0c075d0b859444d839cdd59292c87ac23b8ad7888d400b9e78a5473c527e", + "buildBackend": "contract-skeleton", + "buildCreatedAt": "2026-05-28T10:08:25.878Z", + "buildSource": null, + "componentCommitId": "d6a02cb14c03e3de3408fb3aefa3aca7ab22cd18", + "componentInputHash": "8f51a7ee6c6da32c8683a50ef031e9bfbd303ee02e324c67b996ff900ac1d9ef", + "dockerfileHash": "298fa341cb6d852342e67e621005ffc1892093a0e165b7b484c8ee50679c38b4", + "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", + "baseImageDigest": null, + "buildArgsHash": "79c757588262d875c61a2542e37c9a849000d54d8bb58e8bf19c597114956f5f", + "ciAffected": true, + "ciReason": [ + "catalog-digest-missing" + ], + "reuse": { + "status": "not-reused", + "reason": "component-affected" + }, + "reusedFrom": null, + "publishState": "published", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "notPublishedReason": null + }, + { + "serviceId": "hwlab-box-simu", + "profile": "v02", + "namespace": "hwlab-v02", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "image": "127.0.0.1:5000/hwlab/hwlab-box-simu:5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "digest": "sha256:33780558a53e8b3e783b16384dbb1a9d797d7a6ba1c8d37ad0c38b8ca050d524", + "buildBackend": "contract-skeleton", + "buildCreatedAt": "2026-05-28T10:08:25.876Z", + "buildSource": null, + "componentCommitId": "d6a02cb14c03e3de3408fb3aefa3aca7ab22cd18", + "componentInputHash": "6a0bf31e5f6d2f917a7b52fe8c787ae0c44f3766efcbf48634470cb79e93b25a", + "dockerfileHash": "298fa341cb6d852342e67e621005ffc1892093a0e165b7b484c8ee50679c38b4", + "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", + "baseImageDigest": null, + "buildArgsHash": "2b321eec447decb8ca22b30a42dffa467405af983aa06e487b66a45c6ecbd0e9", + "ciAffected": true, + "ciReason": [ + "catalog-digest-missing" + ], + "reuse": { + "status": "not-reused", + "reason": "component-affected" + }, + "reusedFrom": null, + "publishState": "published", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "notPublishedReason": null + }, + { + "serviceId": "hwlab-patch-panel", + "profile": "v02", + "namespace": "hwlab-v02", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "digest": "sha256:5c6865464b08a15b49785fb7b3600a8f4b40e4e9e890066dd2aff766cef311d7", + "buildBackend": "contract-skeleton", + "buildCreatedAt": "2026-05-28T10:08:25.853Z", + "buildSource": null, + "componentCommitId": "d6a02cb14c03e3de3408fb3aefa3aca7ab22cd18", + "componentInputHash": "3aa1cc05b5676ff02c23edefcb2d973de6df922a34500f1553a76add012b3e35", + "dockerfileHash": "298fa341cb6d852342e67e621005ffc1892093a0e165b7b484c8ee50679c38b4", + "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", + "baseImageDigest": null, + "buildArgsHash": "bea7ca0cf1e6f84b11a7848e3dff6dfe4aa613f1df2c51e9ab4807fffe718128", + "ciAffected": true, + "ciReason": [ + "catalog-digest-missing" + ], + "reuse": { + "status": "not-reused", + "reason": "component-affected" + }, + "reusedFrom": null, + "publishState": "published", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "notPublishedReason": null + }, + { + "serviceId": "hwlab-router", + "profile": "v02", + "namespace": "hwlab-v02", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "image": "127.0.0.1:5000/hwlab/hwlab-router:5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "digest": "sha256:d522f66bcddd142fe69a457315e254f027a53d708becc6b1bef6985dd4f55d70", + "buildBackend": "contract-skeleton", + "buildCreatedAt": "2026-05-28T10:08:25.699Z", + "buildSource": null, + "componentCommitId": "d6a02cb14c03e3de3408fb3aefa3aca7ab22cd18", + "componentInputHash": "a57540b10e0832f7b207c49462b5a042f4091ff78743a8988e8e6400994fbb21", + "dockerfileHash": "298fa341cb6d852342e67e621005ffc1892093a0e165b7b484c8ee50679c38b4", + "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", + "baseImageDigest": null, + "buildArgsHash": "31f0f27ef0e4375ac141f0d54c2c9449bd5dce14df0bb6469704245d1cf86b09", + "ciAffected": true, + "ciReason": [ + "catalog-digest-missing" + ], + "reuse": { + "status": "not-reused", + "reason": "component-affected" + }, + "reusedFrom": null, + "publishState": "published", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "notPublishedReason": null + }, + { + "serviceId": "hwlab-tunnel-client", + "profile": "v02", + "namespace": "hwlab-v02", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "digest": "sha256:5dccc38e197400e96270d8957ca6ea618ad66c6b7157f276b17e2be561066818", + "buildBackend": "contract-skeleton", + "buildCreatedAt": "2026-05-28T10:08:26.524Z", + "buildSource": null, + "componentCommitId": "d6a02cb14c03e3de3408fb3aefa3aca7ab22cd18", + "componentInputHash": "3d7a3f46e2718421b59206d7e7e1ac2b0ecd3ede44a40ff8b442f807c5b9aabd", + "dockerfileHash": "298fa341cb6d852342e67e621005ffc1892093a0e165b7b484c8ee50679c38b4", + "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", + "baseImageDigest": null, + "buildArgsHash": "c49a07574a1d4fe74642170efcbb231c2c59436e1d3d2434c285349d23a35fcb", + "ciAffected": true, + "ciReason": [ + "catalog-digest-missing" + ], + "reuse": { + "status": "not-reused", + "reason": "component-affected" + }, + "reusedFrom": null, + "publishState": "published", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "notPublishedReason": null + }, + { + "serviceId": "hwlab-edge-proxy", + "profile": "v02", + "namespace": "hwlab-v02", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "digest": "sha256:b6dc3ad003eb85b9e5a1d804efe58f4e38e67915cefc45a60934457398dc8331", + "buildBackend": "contract-skeleton", + "buildCreatedAt": "2026-05-28T10:08:26.271Z", + "buildSource": null, + "componentCommitId": "d6a02cb14c03e3de3408fb3aefa3aca7ab22cd18", + "componentInputHash": "98a0b62e74034d8d4fad3337b93e5e955a28bdfbc497338b1082a5bf7d7f9e5d", + "dockerfileHash": "298fa341cb6d852342e67e621005ffc1892093a0e165b7b484c8ee50679c38b4", + "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", + "baseImageDigest": null, + "buildArgsHash": "68746696603227763e5768f8daf45d31331f4c8425e6d756b21482ad104e6183", + "ciAffected": true, + "ciReason": [ + "catalog-digest-missing" + ], + "reuse": { + "status": "not-reused", + "reason": "component-affected" + }, + "reusedFrom": null, + "publishState": "published", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "notPublishedReason": null + }, + { + "serviceId": "hwlab-cli", + "profile": "v02", + "namespace": "hwlab-v02", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "image": "127.0.0.1:5000/hwlab/hwlab-cli:5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "digest": "sha256:491a8c33c732e63123c2e4967963db70c771180d3689033935f7f80ac596bf68", + "buildBackend": "contract-skeleton", + "buildCreatedAt": "2026-05-28T10:08:26.362Z", + "buildSource": null, + "componentCommitId": "d6a02cb14c03e3de3408fb3aefa3aca7ab22cd18", + "componentInputHash": "115a726029cdf1483b2a8ba7c7f3f519dc1a1f995ca46cae9b3c8674bc83c4f1", + "dockerfileHash": "298fa341cb6d852342e67e621005ffc1892093a0e165b7b484c8ee50679c38b4", + "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", + "baseImageDigest": null, + "buildArgsHash": "bd9fa0f62fb873c87cf8ec47790d26c5068956c14be61eed222f78dc9f7f5c1a", + "ciAffected": true, + "ciReason": [ + "catalog-digest-missing" + ], + "reuse": { + "status": "not-reused", + "reason": "component-affected" + }, + "reusedFrom": null, + "publishState": "published", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "notPublishedReason": null + }, + { + "serviceId": "hwlab-agent-skills", + "profile": "v02", + "namespace": "hwlab-v02", + "commitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "sourceCommitId": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "imageTag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "digest": "sha256:b968c475dc803ae3344d591f5a9b8835a2b0844a517912b62aab445e074619b2", + "buildBackend": "contract-skeleton", + "buildCreatedAt": "2026-05-28T10:08:29.351Z", + "buildSource": null, + "componentCommitId": "d6a02cb14c03e3de3408fb3aefa3aca7ab22cd18", + "componentInputHash": "dacfc22b8c325708d7469a730841e8ef7b602e68435d6b8eb7ea032c5e85e504", + "dockerfileHash": "298fa341cb6d852342e67e621005ffc1892093a0e165b7b484c8ee50679c38b4", + "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", + "baseImageDigest": null, + "buildArgsHash": "d5e50a18e70c6a8b4896e527fa07b5dd2c85458ed9ef512c1d46775ef4e40a10", + "ciAffected": true, + "ciReason": [ + "catalog-digest-missing" + ], + "reuse": { + "status": "not-reused", + "reason": "component-affected" + }, + "reusedFrom": null, + "publishState": "published", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "notPublishedReason": null + } + ], + "serviceInventory": { + "version": "v2", + "serviceCount": 14, + "requiredServiceCount": 14, + "disabledServiceCount": 0, + "requiredServiceIds": [ + "hwlab-cloud-api", + "hwlab-cloud-web", + "hwlab-agent-mgr", + "hwlab-agent-worker", + "hwlab-device-pod", + "hwlab-gateway", + "hwlab-gateway-simu", + "hwlab-box-simu", + "hwlab-patch-panel", + "hwlab-router", + "hwlab-tunnel-client", + "hwlab-edge-proxy", + "hwlab-cli", + "hwlab-agent-skills" + ], + "disabledServiceIds": [], + "services": [ + { + "serviceId": "hwlab-cloud-api", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "runtimeKind": "node-command", + "implementationState": "repo-entrypoint", + "sourceState": "source-present", + "entrypoint": "cmd/hwlab-cloud-api/main.mjs", + "disabledReason": null + }, + { + "serviceId": "hwlab-cloud-web", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "runtimeKind": "cloud-web", + "implementationState": "static-web-wrapper", + "sourceState": "source-present", + "entrypoint": "web/hwlab-cloud-web/index.html", + "disabledReason": null + }, + { + "serviceId": "hwlab-agent-mgr", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "runtimeKind": "node-command", + "implementationState": "repo-entrypoint", + "sourceState": "source-present", + "entrypoint": "cmd/hwlab-agent-mgr/main.mjs", + "disabledReason": null + }, + { + "serviceId": "hwlab-agent-worker", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "runtimeKind": "node-command", + "implementationState": "repo-entrypoint", + "sourceState": "source-present", + "entrypoint": "cmd/hwlab-agent-worker/main.mjs", + "disabledReason": null + }, + { + "serviceId": "hwlab-device-pod", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "runtimeKind": "node-command", + "implementationState": "repo-entrypoint", + "sourceState": "source-present", + "entrypoint": "cmd/hwlab-device-pod/main.mjs", + "disabledReason": null + }, + { + "serviceId": "hwlab-gateway", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "runtimeKind": "node-command", + "implementationState": "repo-entrypoint", + "sourceState": "source-present", + "entrypoint": "cmd/hwlab-gateway/main.mjs", + "disabledReason": null + }, + { + "serviceId": "hwlab-gateway-simu", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "runtimeKind": "node-command", + "implementationState": "repo-entrypoint", + "sourceState": "source-present", + "entrypoint": "cmd/hwlab-gateway-simu/main.mjs", + "disabledReason": null + }, + { + "serviceId": "hwlab-box-simu", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "runtimeKind": "node-command", + "implementationState": "repo-entrypoint", + "sourceState": "source-present", + "entrypoint": "cmd/hwlab-box-simu/main.mjs", + "disabledReason": null + }, + { + "serviceId": "hwlab-patch-panel", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "runtimeKind": "node-command", + "implementationState": "repo-entrypoint", + "sourceState": "source-present", + "entrypoint": "cmd/hwlab-patch-panel/main.mjs", + "disabledReason": null + }, + { + "serviceId": "hwlab-router", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "runtimeKind": "node-command", + "implementationState": "repo-entrypoint", + "sourceState": "source-present", + "entrypoint": "cmd/hwlab-router/main.mjs", + "disabledReason": null + }, + { + "serviceId": "hwlab-tunnel-client", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "runtimeKind": "node-command", + "implementationState": "repo-entrypoint", + "sourceState": "source-present", + "entrypoint": "cmd/hwlab-tunnel-client/main.mjs", + "disabledReason": null + }, + { + "serviceId": "hwlab-edge-proxy", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "runtimeKind": "node-command", + "implementationState": "repo-entrypoint", + "sourceState": "source-present", + "entrypoint": "cmd/hwlab-edge-proxy/main.mjs", + "disabledReason": null + }, + { + "serviceId": "hwlab-cli", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "runtimeKind": "cli", + "implementationState": "repo-entrypoint", + "sourceState": "source-present", + "entrypoint": "tools/hwlab-cli/bin/hwlab-cli.mjs", + "disabledReason": null + }, + { + "serviceId": "hwlab-agent-skills", + "publishEnabled": true, + "artifactRequired": true, + "artifactScope": "required", + "runtimeKind": "skills-bundle", + "implementationState": "repo-bundle", + "sourceState": "source-present", + "entrypoint": "skills/hwlab-agent-runtime/SKILL.md", + "disabledReason": null + } + ] + } +} diff --git a/deploy/gitops/g14/runtime-v02/code-agent-codex-config.yaml b/deploy/gitops/g14/runtime-v02/code-agent-codex-config.yaml new file mode 100644 index 00000000..a1ff209f --- /dev/null +++ b/deploy/gitops/g14/runtime-v02/code-agent-codex-config.yaml @@ -0,0 +1,22 @@ +{ + "apiVersion": "v1", + "kind": "ConfigMap", + "metadata": { + "name": "hwlab-code-agent-codex-config", + "namespace": "hwlab-v02", + "labels": { + "app.kubernetes.io/name": "hwlab-code-agent-codex-config", + "hwlab.pikastech.local/service-id": "hwlab-cloud-api", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02" + }, + "annotations": { + "hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs" + } + }, + "data": { + "config.toml": "model_provider = \"OpenAI\"\nmodel = \"gpt-5.4\"\nreview_model = \"gpt-5.4\"\nmodel_reasoning_effort = \"xhigh\"\ndisable_response_storage = true\nnetwork_access = \"enabled\"\nmodel_context_window = 1000000\nmodel_auto_compact_token_limit = 900000\n\n[model_providers.OpenAI]\nname = \"OpenAI\"\nbase_url = \"https://hyueapi.com\"\nwire_api = \"responses\"\nrequires_openai_auth = true\n\n[model_providers.crs]\nrequest_max_retries = 1000\nstream_max_retries = 1000\nname = \"crs\"\nbase_url = \"https://api.gptclubapi.xyz/openai\"\nwire_api = \"responses\"\nrequires_openai_auth = true\nenv_key = \"CRS_OAI_KEY\"\n" + } +} diff --git a/deploy/gitops/g14/runtime-v02/deepseek-proxy.yaml b/deploy/gitops/g14/runtime-v02/deepseek-proxy.yaml new file mode 100644 index 00000000..b77bcbd9 --- /dev/null +++ b/deploy/gitops/g14/runtime-v02/deepseek-proxy.yaml @@ -0,0 +1,253 @@ +{ + "apiVersion": "v1", + "kind": "List", + "items": [ + { + "apiVersion": "v1", + "kind": "ConfigMap", + "metadata": { + "name": "hwlab-deepseek-proxy-config", + "namespace": "hwlab-v02", + "labels": { + "app.kubernetes.io/name": "hwlab-deepseek-proxy", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/service-id": "hwlab-deepseek-proxy" + } + }, + "data": { + "render-config.sh": "#!/bin/sh\nif [ -z \"${DEEPSEEK_API_KEY:-}\" ]; then\n echo \"DEEPSEEK_API_KEY is required\" >&2\n exit 1\nfi\ncat > /config/config.yml < \"$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": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api@sha256:d255b7c60197ccb3f2eb8f32a39f825bda4f8e0ad0096359625f61cf65afe656" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + ], + "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api@sha256:d255b7c60197ccb3f2eb8f32a39f825bda4f8e0ad0096359625f61cf65afe656", + "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@sha256:d255b7c60197ccb3f2eb8f32a39f825bda4f8e0ad0096359625f61cf65afe656", + "ports": [ + { + "name": "http", + "containerPort": 6667 + } + ], + "env": [ + { + "name": "HWLAB_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_PUBLIC_ENDPOINT", + "value": "http://74.48.78.17:19667" + }, + { + "name": "HWLAB_CLOUD_API_PORT", + "value": "6667" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api@sha256:d255b7c60197ccb3f2eb8f32a39f825bda4f8e0ad0096359625f61cf65afe656" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_RUNTIME_SUBSTITUTE_FORBIDDEN", + "value": "unidesk-backend,provider-gateway,microservice-proxy" + }, + { + "name": "HWLAB_CLOUD_DB_URL", + "valueFrom": { + "secretKeyRef": { + "name": "hwlab-cloud-api-v02-db", + "key": "database-url", + "optional": true + } + } + }, + { + "name": "HWLAB_CLOUD_DB_SSL_MODE", + "value": "disable" + }, + { + "name": "HWLAB_CLOUD_DB_CONTRACT", + "value": "v02-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-v02.svc.cluster.local:7101" + }, + { + "name": "HWLAB_M3_GATEWAY_SIMU_2_URL", + "value": "http://hwlab-gateway-simu-2.hwlab-v02.svc.cluster.local:7101" + }, + { + "name": "HWLAB_M3_PATCH_PANEL_URL", + "value": "http://hwlab-patch-panel.hwlab-v02.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-v02.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": "hwlab-v02.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-v02.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" + }, + { + "name": "OPENAI_API_KEY", + "valueFrom": { + "secretKeyRef": { + "name": "hwlab-v02-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-v02.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-v02.svc.cluster.local:7601" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + ], + "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 + } + ], + "imagePullPolicy": "IfNotPresent" + }, + { + "name": "hwlab-codex-api-forwarder", + "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api@sha256:d255b7c60197ccb3f2eb8f32a39f825bda4f8e0ad0096359625f61cf65afe656", + "command": [ + "node", + "/app/cmd/hwlab-codex-api-responses-forwarder/main.mjs" + ], + "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-v02.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-v02.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_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_PUBLIC_ENDPOINT", + "value": "http://74.48.78.17:19667" + }, + { + "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-v02-db", + "key": "database-url", + "optional": true + } + } + }, + { + "name": "HWLAB_CLOUD_DB_SSL_MODE", + "value": "disable" + }, + { + "name": "HWLAB_CLOUD_DB_CONTRACT", + "value": "v02-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-v02.svc.cluster.local:7101" + }, + { + "name": "HWLAB_M3_GATEWAY_SIMU_2_URL", + "value": "http://hwlab-gateway-simu-2.hwlab-v02.svc.cluster.local:7101" + }, + { + "name": "HWLAB_M3_PATCH_PANEL_URL", + "value": "http://hwlab-patch-panel.hwlab-v02.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-v02.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": "OPENAI_API_KEY", + "valueFrom": { + "secretKeyRef": { + "name": "hwlab-v02-code-agent-provider", + "key": "openai-api-key", + "optional": true + } + } + }, + { + "name": "HWLAB_CODE_AGENT_SKILLS_DIRS", + "value": "/app/skills" + }, + { + "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-v02.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_DEVICE_POD_URL", + "value": "http://hwlab-device-pod.hwlab-v02.svc.cluster.local:7601" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api@sha256:d255b7c60197ccb3f2eb8f32a39f825bda4f8e0ad0096359625f61cf65afe656" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + ], + "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 + }, + "imagePullPolicy": "IfNotPresent" + } + ], + "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-v02-code-agent-codex-auth", + "items": [ + { + "key": "auth.json", + "path": "auth.json" + } + ] + } + } + ] + } + } + } + }, + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "name": "hwlab-cloud-web", + "namespace": "hwlab-v02", + "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": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "unidesk.ai/g14-staging": "false" + }, + "annotations": { + "hwlab.pikastech.local/gitops-note": "HWLAB v0.2 GitOps target.", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + }, + "spec": { + "replicas": 1, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "hwlab-cloud-web", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02" + } + }, + "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": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + "annotations": { + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs" + } + }, + "spec": { + "containers": [ + { + "name": "hwlab-cloud-web", + "image": "127.0.0.1:5000/hwlab/hwlab-cloud-web@sha256:5cc2a6622e1cb478084fb73edcffc50b45db6c3acb3feef65a0e760fa73dc80d", + "ports": [ + { + "name": "http", + "containerPort": 8080 + } + ], + "env": [ + { + "name": "HWLAB_API_BASE_URL", + "value": "http://hwlab-cloud-api.hwlab-v02.svc.cluster.local:6667" + }, + { + "name": "HWLAB_CLOUD_WEB_PROXY_TIMEOUT_MS", + "value": "1260000" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-cloud-web@sha256:5cc2a6622e1cb478084fb73edcffc50b45db6c3acb3feef65a0e760fa73dc80d" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_PUBLIC_ENDPOINT", + "value": "http://74.48.78.17:19666" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "livenessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "imagePullPolicy": "IfNotPresent" + } + ] + } + } + } + }, + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "name": "hwlab-agent-mgr", + "namespace": "hwlab-v02", + "labels": { + "app.kubernetes.io/name": "hwlab-agent-mgr", + "hwlab.pikastech.local/service-id": "hwlab-agent-mgr", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "unidesk.ai/g14-staging": "false" + }, + "annotations": { + "hwlab.pikastech.local/gitops-note": "HWLAB v0.2 GitOps target.", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + }, + "spec": { + "replicas": 1, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "hwlab-agent-mgr", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02" + } + }, + "template": { + "metadata": { + "labels": { + "app.kubernetes.io/name": "hwlab-agent-mgr", + "hwlab.pikastech.local/service-id": "hwlab-agent-mgr", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + "annotations": { + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs" + } + }, + "spec": { + "containers": [ + { + "name": "hwlab-agent-mgr", + "image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr@sha256:1860909b745742647459356d3518ae267b444b8989690c4adaabf4fb166a68d1", + "ports": [ + { + "name": "http", + "containerPort": 7410 + } + ], + "env": [ + { + "name": "HWLAB_AGENT_SESSION_MODE", + "value": "control-plane" + }, + { + "name": "HWLAB_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-agent-mgr@sha256:1860909b745742647459356d3518ae267b444b8989690c4adaabf4fb166a68d1" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "livenessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "imagePullPolicy": "IfNotPresent" + } + ] + } + } + } + }, + { + "apiVersion": "batch/v1", + "kind": "Job", + "metadata": { + "name": "hwlab-agent-worker-template", + "namespace": "hwlab-v02", + "labels": { + "app.kubernetes.io/name": "hwlab-agent-worker", + "hwlab.pikastech.local/service-id": "hwlab-agent-worker", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "unidesk.ai/g14-staging": "false" + }, + "annotations": { + "hwlab.pikastech.local/gitops-note": "HWLAB v0.2 GitOps target.", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "argocd.argoproj.io/sync-options": "Force=true,Replace=true", + "argocd.argoproj.io/ignore-healthcheck": "true" + } + }, + "spec": { + "suspend": true, + "template": { + "metadata": { + "labels": { + "app.kubernetes.io/name": "hwlab-agent-worker", + "hwlab.pikastech.local/service-id": "hwlab-agent-worker", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + "annotations": { + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs" + } + }, + "spec": { + "restartPolicy": "Never", + "containers": [ + { + "name": "hwlab-agent-worker", + "image": "127.0.0.1:5000/hwlab/hwlab-agent-worker@sha256:a8603c67c27173b3b6ed66939fec51a61b50449879ceb270aa51884df15407cd", + "env": [ + { + "name": "HWLAB_AGENT_SESSION_MODE", + "value": "session-scoped" + }, + { + "name": "HWLAB_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-agent-worker@sha256:a8603c67c27173b3b6ed66939fec51a61b50449879ceb270aa51884df15407cd" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + ], + "imagePullPolicy": "IfNotPresent" + } + ] + } + } + } + }, + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "name": "hwlab-device-pod", + "namespace": "hwlab-v02", + "labels": { + "app.kubernetes.io/name": "hwlab-device-pod", + "hwlab.pikastech.local/service-id": "hwlab-device-pod", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "unidesk.ai/g14-staging": "false" + }, + "annotations": { + "hwlab.pikastech.local/gitops-note": "HWLAB v0.2 GitOps target.", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + }, + "spec": { + "replicas": 1, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "hwlab-device-pod", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02" + } + }, + "template": { + "metadata": { + "labels": { + "app.kubernetes.io/name": "hwlab-device-pod", + "hwlab.pikastech.local/service-id": "hwlab-device-pod", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + "annotations": { + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs" + } + }, + "spec": { + "containers": [ + { + "name": "hwlab-device-pod", + "image": "127.0.0.1:5000/hwlab/hwlab-device-pod@sha256:fb16323987ec5210ab958ae85a3cfaaaa6b2386e2e1be393fcafe59c2b52386a", + "ports": [ + { + "name": "http", + "containerPort": 7601 + } + ], + "env": [ + { + "name": "HWLAB_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_DEVICE_POD_ID", + "value": "device-pod-71-freq" + }, + { + "name": "HWLAB_DEVICE_POD_PORT", + "value": "7601" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-device-pod@sha256:fb16323987ec5210ab958ae85a3cfaaaa6b2386e2e1be393fcafe59c2b52386a" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "livenessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "imagePullPolicy": "IfNotPresent" + } + ] + } + } + } + }, + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "name": "hwlab-gateway", + "namespace": "hwlab-v02", + "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": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "unidesk.ai/g14-staging": "false" + }, + "annotations": { + "hwlab.pikastech.local/gitops-note": "HWLAB v0.2 GitOps target.", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + }, + "spec": { + "replicas": 0, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "hwlab-gateway", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02" + } + }, + "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": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + "annotations": { + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs" + } + }, + "spec": { + "containers": [ + { + "name": "hwlab-gateway", + "image": "127.0.0.1:5000/hwlab/hwlab-gateway@sha256:7999d18b5e1201a22f49b8853e666d5cf34a8c9d13eef133143b93f96d3eac70", + "ports": [ + { + "name": "http", + "containerPort": 7001 + } + ], + "env": [ + { + "name": "HWLAB_GATEWAY_MODE", + "value": "hardware-boundary" + }, + { + "name": "HWLAB_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-gateway@sha256:7999d18b5e1201a22f49b8853e666d5cf34a8c9d13eef133143b93f96d3eac70" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "livenessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "imagePullPolicy": "IfNotPresent" + } + ] + } + } + } + }, + { + "apiVersion": "apps/v1", + "kind": "StatefulSet", + "metadata": { + "name": "hwlab-gateway-simu", + "namespace": "hwlab-v02", + "labels": { + "app.kubernetes.io/name": "hwlab-gateway-simu", + "hwlab.pikastech.local/service-id": "hwlab-gateway-simu", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "unidesk.ai/g14-staging": "false" + }, + "annotations": { + "hwlab.pikastech.local/gitops-note": "HWLAB v0.2 GitOps target.", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + }, + "spec": { + "serviceName": "hwlab-gateway-simu", + "replicas": 2, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "hwlab-gateway-simu", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02" + } + }, + "template": { + "metadata": { + "labels": { + "app.kubernetes.io/name": "hwlab-gateway-simu", + "hwlab.pikastech.local/service-id": "hwlab-gateway-simu", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + "annotations": { + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs" + } + }, + "spec": { + "containers": [ + { + "name": "hwlab-gateway-simu", + "image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu@sha256:a70d0c075d0b859444d839cdd59292c87ac23b8ad7888d400b9e78a5473c527e", + "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-v02.svc.cluster.local:7201,http://hwlab-box-simu-2.hwlab-v02.svc.cluster.local:7201" + }, + { + "name": "HWLAB_GATEWAY_MODE", + "value": "simulator" + }, + { + "name": "HWLAB_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-gateway-simu@sha256:a70d0c075d0b859444d839cdd59292c87ac23b8ad7888d400b9e78a5473c527e" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "livenessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "imagePullPolicy": "IfNotPresent" + } + ] + } + } + } + }, + { + "apiVersion": "apps/v1", + "kind": "StatefulSet", + "metadata": { + "name": "hwlab-box-simu", + "namespace": "hwlab-v02", + "labels": { + "app.kubernetes.io/name": "hwlab-box-simu", + "hwlab.pikastech.local/service-id": "hwlab-box-simu", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "unidesk.ai/g14-staging": "false" + }, + "annotations": { + "hwlab.pikastech.local/gitops-note": "HWLAB v0.2 GitOps target.", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + }, + "spec": { + "serviceName": "hwlab-box-simu", + "replicas": 2, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "hwlab-box-simu", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02" + } + }, + "template": { + "metadata": { + "labels": { + "app.kubernetes.io/name": "hwlab-box-simu", + "hwlab.pikastech.local/service-id": "hwlab-box-simu", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + "annotations": { + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs" + } + }, + "spec": { + "containers": [ + { + "name": "hwlab-box-simu", + "image": "127.0.0.1:5000/hwlab/hwlab-box-simu@sha256:33780558a53e8b3e783b16384dbb1a9d797d7a6ba1c8d37ad0c38b8ca050d524", + "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" + }, + { + "name": "HWLAB_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-box-simu@sha256:33780558a53e8b3e783b16384dbb1a9d797d7a6ba1c8d37ad0c38b8ca050d524" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "livenessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "imagePullPolicy": "IfNotPresent" + } + ] + } + } + } + }, + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "name": "hwlab-patch-panel", + "namespace": "hwlab-v02", + "labels": { + "app.kubernetes.io/name": "hwlab-patch-panel", + "hwlab.pikastech.local/service-id": "hwlab-patch-panel", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "unidesk.ai/g14-staging": "false" + }, + "annotations": { + "hwlab.pikastech.local/gitops-note": "HWLAB v0.2 GitOps target.", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + }, + "spec": { + "replicas": 1, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "hwlab-patch-panel", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02" + } + }, + "template": { + "metadata": { + "labels": { + "app.kubernetes.io/name": "hwlab-patch-panel", + "hwlab.pikastech.local/service-id": "hwlab-patch-panel", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + "annotations": { + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs" + } + }, + "spec": { + "containers": [ + { + "name": "hwlab-patch-panel", + "image": "127.0.0.1:5000/hwlab/hwlab-patch-panel@sha256:5c6865464b08a15b49785fb7b3600a8f4b40e4e9e890066dd2aff766cef311d7", + "ports": [ + { + "name": "http", + "containerPort": 7301 + } + ], + "env": [ + { + "name": "HWLAB_PATCH_PANEL_ENDPOINT_MAP", + "value": "{\"res_boxsimu_2\":\"http://hwlab-box-simu-2.hwlab-v02.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\"}" + }, + { + "name": "HWLAB_PATCH_PANEL_MODE", + "value": "dev-skeleton" + }, + { + "name": "HWLAB_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-patch-panel@sha256:5c6865464b08a15b49785fb7b3600a8f4b40e4e9e890066dd2aff766cef311d7" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "livenessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "imagePullPolicy": "IfNotPresent" + } + ] + } + } + } + }, + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "name": "hwlab-router", + "namespace": "hwlab-v02", + "labels": { + "app.kubernetes.io/name": "hwlab-router", + "hwlab.pikastech.local/service-id": "hwlab-router", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "unidesk.ai/g14-staging": "false" + }, + "annotations": { + "hwlab.pikastech.local/gitops-note": "HWLAB v0.2 GitOps target.", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + }, + "spec": { + "replicas": 1, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "hwlab-router", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02" + } + }, + "template": { + "metadata": { + "labels": { + "app.kubernetes.io/name": "hwlab-router", + "hwlab.pikastech.local/service-id": "hwlab-router", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + "annotations": { + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs" + } + }, + "spec": { + "containers": [ + { + "name": "hwlab-router", + "image": "127.0.0.1:5000/hwlab/hwlab-router@sha256:d522f66bcddd142fe69a457315e254f027a53d708becc6b1bef6985dd4f55d70", + "ports": [ + { + "name": "http", + "containerPort": 7401 + } + ], + "env": [ + { + "name": "HWLAB_EDGE_PROXY_SERVICE", + "value": "hwlab-edge-proxy" + }, + { + "name": "HWLAB_ROUTER_MODE", + "value": "edge-reachability" + }, + { + "name": "HWLAB_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-router@sha256:d522f66bcddd142fe69a457315e254f027a53d708becc6b1bef6985dd4f55d70" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "livenessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "imagePullPolicy": "IfNotPresent" + } + ] + } + } + } + }, + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "name": "hwlab-tunnel-client", + "namespace": "hwlab-v02", + "labels": { + "app.kubernetes.io/name": "hwlab-tunnel-client", + "hwlab.pikastech.local/service-id": "hwlab-tunnel-client", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "unidesk.ai/g14-staging": "false" + }, + "annotations": { + "hwlab.pikastech.local/gitops-note": "HWLAB v0.2 GitOps target.", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + }, + "spec": { + "replicas": 0, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "hwlab-tunnel-client", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02" + } + }, + "template": { + "metadata": { + "labels": { + "app.kubernetes.io/name": "hwlab-tunnel-client", + "hwlab.pikastech.local/service-id": "hwlab-tunnel-client", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + "annotations": { + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs" + } + }, + "spec": { + "containers": [ + { + "name": "hwlab-tunnel-client", + "image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client@sha256:5dccc38e197400e96270d8957ca6ea618ad66c6b7157f276b17e2be561066818", + "ports": [ + { + "name": "http", + "containerPort": 7402 + } + ], + "env": [ + { + "name": "HWLAB_TUNNEL_MODE", + "value": "disabled-g14-gitops" + }, + { + "name": "HWLAB_FRP_SERVER_ADDR", + "value": "" + }, + { + "name": "HWLAB_FRP_PUBLIC_PORT", + "value": "0" + }, + { + "name": "HWLAB_FRP_WEB_PUBLIC_PORT", + "value": "0" + }, + { + "name": "HWLAB_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-tunnel-client@sha256:5dccc38e197400e96270d8957ca6ea618ad66c6b7157f276b17e2be561066818" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "livenessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "imagePullPolicy": "IfNotPresent" + } + ] + } + } + } + }, + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "name": "hwlab-edge-proxy", + "namespace": "hwlab-v02", + "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": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "unidesk.ai/g14-staging": "false" + }, + "annotations": { + "hwlab.pikastech.local/gitops-note": "HWLAB v0.2 GitOps target.", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + }, + "spec": { + "replicas": 1, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "hwlab-edge-proxy", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02" + } + }, + "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": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + "annotations": { + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs" + } + }, + "spec": { + "containers": [ + { + "name": "hwlab-edge-proxy", + "image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy@sha256:b6dc3ad003eb85b9e5a1d804efe58f4e38e67915cefc45a60934457398dc8331", + "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-v02.svc.cluster.local:6667" + }, + { + "name": "HWLAB_EDGE_PROXY_TIMEOUT_MS", + "value": "1260000" + }, + { + "name": "HWLAB_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-edge-proxy@sha256:b6dc3ad003eb85b9e5a1d804efe58f4e38e67915cefc45a60934457398dc8331" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_PUBLIC_ENDPOINT", + "value": "http://74.48.78.17:19667" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "livenessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "imagePullPolicy": "IfNotPresent" + } + ] + } + } + } + }, + { + "apiVersion": "batch/v1", + "kind": "Job", + "metadata": { + "name": "hwlab-cli-template", + "namespace": "hwlab-v02", + "labels": { + "app.kubernetes.io/name": "hwlab-cli", + "hwlab.pikastech.local/service-id": "hwlab-cli", + "hwlab.pikastech.local/activation": "manual", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "unidesk.ai/g14-staging": "false" + }, + "annotations": { + "hwlab.pikastech.local/gitops-note": "HWLAB v0.2 GitOps target.", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "argocd.argoproj.io/sync-options": "Force=true,Replace=true", + "argocd.argoproj.io/ignore-healthcheck": "true" + } + }, + "spec": { + "suspend": true, + "template": { + "metadata": { + "labels": { + "app.kubernetes.io/name": "hwlab-cli", + "hwlab.pikastech.local/service-id": "hwlab-cli", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + "annotations": { + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs" + } + }, + "spec": { + "restartPolicy": "Never", + "containers": [ + { + "name": "hwlab-cli", + "image": "127.0.0.1:5000/hwlab/hwlab-cli@sha256:491a8c33c732e63123c2e4967963db70c771180d3689033935f7f80ac596bf68", + "env": [ + { + "name": "HWLAB_CLI_ENDPOINT", + "value": "http://74.48.78.17:19667" + }, + { + "name": "HWLAB_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-cli@sha256:491a8c33c732e63123c2e4967963db70c771180d3689033935f7f80ac596bf68" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + ], + "imagePullPolicy": "IfNotPresent" + } + ] + } + } + } + }, + { + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": { + "name": "hwlab-agent-skills", + "namespace": "hwlab-v02", + "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": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "unidesk.ai/g14-staging": "false" + }, + "annotations": { + "hwlab.pikastech.local/gitops-note": "HWLAB v0.2 GitOps target.", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + }, + "spec": { + "replicas": 1, + "selector": { + "matchLabels": { + "app.kubernetes.io/name": "hwlab-agent-skills", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/environment": "v02", + "hwlab.pikastech.local/profile": "v02" + } + }, + "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": "v02", + "hwlab.pikastech.local/profile": "v02", + "hwlab.pikastech.local/gitops-target": "v02", + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + "annotations": { + "hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4", + "hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs" + } + }, + "spec": { + "containers": [ + { + "name": "hwlab-agent-skills", + "image": "127.0.0.1:5000/hwlab/hwlab-agent-skills@sha256:b968c475dc803ae3344d591f5a9b8835a2b0844a517912b62aab445e074619b2", + "ports": [ + { + "name": "http", + "containerPort": 7430 + } + ], + "env": [ + { + "name": "HWLAB_SKILLS_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_ENVIRONMENT", + "value": "v02" + }, + { + "name": "HWLAB_COMMIT_ID", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_IMAGE", + "value": "127.0.0.1:5000/hwlab/hwlab-agent-skills@sha256:b968c475dc803ae3344d591f5a9b8835a2b0844a517912b62aab445e074619b2" + }, + { + "name": "HWLAB_IMAGE_TAG", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + }, + { + "name": "HWLAB_GITOPS_TARGET", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_PROFILE", + "value": "v02" + }, + { + "name": "HWLAB_GITOPS_SOURCE_COMMIT", + "value": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4" + } + ], + "readinessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "livenessProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + } + }, + "imagePullPolicy": "IfNotPresent" + } + ] + } + } + } + } + ] +}