chore: promote G14 GitOps source 5fdfc9f

This commit is contained in:
HWLAB G14 GitOps Bot
2026-05-28 10:10:49 +00:00
commit 19eafcdacf
10 changed files with 3914 additions and 0 deletions
+670
View File
@@ -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
}
]
}
}
@@ -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"
}
}
@@ -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 <<EOF\nmode: \"Transform\"\nlog:\n level: \"info\"\n format: \"text\"\nserver:\n addr: \"0.0.0.0:4001\"\npersistence:\n active_provider: db_sqlite\nextensions:\n db_sqlite:\n enabled: true\n config:\n path: /data/moonbridge.db\n wal: true\n busy_timeout_ms: 5000\n max_open_conns: 1\n metrics:\n enabled: true\n config:\n default_limit: 100\n max_limit: 1000\n deepseek_v4:\n config:\n reinforce_instructions: true\n reinforce_prompt: \"[System Reminder]: Please pay close attention to the system instructions, AGENTS.md files, and any other context provided. Follow them carefully and completely in your response.\\n[User]:\"\ncache:\n mode: \"explicit\"\n ttl: \"5m\"\n prompt_caching: true\n automatic_prompt_cache: false\n explicit_cache_breakpoints: true\n allow_retention_downgrade: false\n max_breakpoints: 4\n min_cache_tokens: 1024\n expected_reuse: 2\n minimum_value_score: 2048\n min_breakpoint_tokens: 1024\ndefaults:\n model: \"deepseek-chat\"\n max_tokens: 8192\ntrace:\n enabled: false\nmodels:\n deepseek-chat:\n context_window: 128000\n max_output_tokens: 8192\n display_name: \"deepseek-chat\"\n description: \"DeepSeek via Moon Bridge\"\n default_reasoning_level: null\n supported_reasoning_levels: []\n extensions:\n deepseek_v4:\n enabled: true\nproviders:\n deepseek:\n base_url: \"https://api.deepseek.com/anthropic\"\n api_key: \"${DEEPSEEK_API_KEY}\"\n version: \"2023-06-01\"\n user_agent: \"moonbridge/1.0\"\n offers:\n - model: deepseek-chat\nroutes:\n deepseek-chat:\n model: deepseek-chat\n provider: deepseek\nEOF\n"
}
},
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "hwlab-deepseek-proxy",
"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"
},
"annotations": {
"hwlab.pikastech.local/moonbridge-source-ref": "1b99888d3dae889b79ee602cb875c7907f7e76f2",
"hwlab.pikastech.local/bridge-service-id": "hwlab-cloud-api",
"hwlab.pikastech.local/bridge-source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4",
"hwlab.pikastech.local/bridge-image-tag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4",
"hwlab.pikastech.local/bridge-image": "127.0.0.1:5000/hwlab/hwlab-cloud-api@sha256:d255b7c60197ccb3f2eb8f32a39f825bda4f8e0ad0096359625f61cf65afe656"
}
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"app.kubernetes.io/name": "hwlab-deepseek-proxy"
}
},
"template": {
"metadata": {
"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"
},
"annotations": {
"hwlab.pikastech.local/bridge-service-id": "hwlab-cloud-api",
"hwlab.pikastech.local/bridge-source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4",
"hwlab.pikastech.local/bridge-image-tag": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4",
"hwlab.pikastech.local/bridge-image": "127.0.0.1:5000/hwlab/hwlab-cloud-api@sha256:d255b7c60197ccb3f2eb8f32a39f825bda4f8e0ad0096359625f61cf65afe656"
}
},
"spec": {
"initContainers": [
{
"name": "moonbridge-config",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api@sha256:d255b7c60197ccb3f2eb8f32a39f825bda4f8e0ad0096359625f61cf65afe656",
"imagePullPolicy": "IfNotPresent",
"command": [
"/bin/sh",
"-eu",
"/scripts/render-config.sh"
],
"env": [
{
"name": "DEEPSEEK_API_KEY",
"valueFrom": {
"secretKeyRef": {
"name": "hwlab-v02-code-agent-provider",
"key": "openai-api-key",
"optional": true
}
}
}
],
"volumeMounts": [
{
"name": "moonbridge-scripts",
"mountPath": "/scripts",
"readOnly": true
},
{
"name": "moonbridge-config",
"mountPath": "/config"
}
]
}
],
"containers": [
{
"name": "responses-bridge",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api@sha256:d255b7c60197ccb3f2eb8f32a39f825bda4f8e0ad0096359625f61cf65afe656",
"imagePullPolicy": "IfNotPresent",
"command": [
"node",
"/app/cmd/hwlab-deepseek-responses-bridge/main.mjs"
],
"env": [
{
"name": "PORT",
"value": "4000"
},
{
"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_DEEPSEEK_BRIDGE_UPSTREAM",
"value": "http://127.0.0.1:4001"
},
{
"name": "HWLAB_DEEPSEEK_BRIDGE_MODEL",
"value": "deepseek-chat"
}
],
"ports": [
{
"name": "http",
"containerPort": 4000
}
],
"readinessProbe": {
"httpGet": {
"path": "/health/readiness",
"port": "http"
},
"initialDelaySeconds": 10,
"periodSeconds": 10
},
"livenessProbe": {
"httpGet": {
"path": "/health/liveliness",
"port": "http"
},
"initialDelaySeconds": 20,
"periodSeconds": 20
}
},
{
"name": "moonbridge",
"image": "127.0.0.1:5000/hwlab/moonbridge:1b99888d3dae",
"imagePullPolicy": "IfNotPresent",
"args": [
"-config",
"/config/config.yml"
],
"ports": [
{
"name": "moonbridge-http",
"containerPort": 4001
}
],
"readinessProbe": {
"httpGet": {
"path": "/v1/models",
"port": "moonbridge-http"
},
"initialDelaySeconds": 10,
"periodSeconds": 10
},
"livenessProbe": {
"httpGet": {
"path": "/v1/models",
"port": "moonbridge-http"
},
"initialDelaySeconds": 20,
"periodSeconds": 20
},
"volumeMounts": [
{
"name": "moonbridge-config",
"mountPath": "/config",
"readOnly": true
},
{
"name": "moonbridge-data",
"mountPath": "/data"
}
]
}
],
"volumes": [
{
"name": "moonbridge-scripts",
"configMap": {
"name": "hwlab-deepseek-proxy-config"
}
},
{
"name": "moonbridge-config",
"emptyDir": {}
},
{
"name": "moonbridge-data",
"emptyDir": {}
}
]
}
}
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-deepseek-proxy",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-deepseek-proxy"
},
"ports": [
{
"name": "http",
"port": 4000,
"targetPort": "http"
}
]
}
}
]
}
@@ -0,0 +1,86 @@
{
"apiVersion": "v1",
"kind": "List",
"items": [
{
"apiVersion": "v1",
"kind": "ConfigMap",
"metadata": {
"name": "hwlab-v02-frpc-config",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-v02-frpc",
"app.kubernetes.io/part-of": "hwlab",
"hwlab.pikastech.local/environment": "v02",
"hwlab.pikastech.local/gitops-target": "v02",
"hwlab.pikastech.local/profile": "v02"
}
},
"data": {
"frpc.toml": "serverAddr = \"74.48.78.17\"\nserverPort = 7000\nloginFailExit = true\n\n[[proxies]]\nname = \"hwlab-v02-cloud-web\"\ntype = \"tcp\"\nlocalIP = \"hwlab-cloud-web.hwlab-v02.svc.cluster.local\"\nlocalPort = 8080\nremotePort = 19666\n\n[[proxies]]\nname = \"hwlab-v02-edge-proxy\"\ntype = \"tcp\"\nlocalIP = \"hwlab-edge-proxy.hwlab-v02.svc.cluster.local\"\nlocalPort = 6667\nremotePort = 19667\n"
}
},
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "hwlab-v02-frpc",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-v02-frpc",
"app.kubernetes.io/part-of": "hwlab",
"hwlab.pikastech.local/environment": "v02",
"hwlab.pikastech.local/gitops-target": "v02",
"hwlab.pikastech.local/profile": "v02"
}
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"app.kubernetes.io/name": "hwlab-v02-frpc"
}
},
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-v02-frpc",
"app.kubernetes.io/part-of": "hwlab",
"hwlab.pikastech.local/environment": "v02",
"hwlab.pikastech.local/gitops-target": "v02",
"hwlab.pikastech.local/profile": "v02"
}
},
"spec": {
"containers": [
{
"name": "frpc",
"image": "fatedier/frpc:v0.68.1",
"imagePullPolicy": "IfNotPresent",
"args": [
"-c",
"/etc/frp/frpc.toml"
],
"volumeMounts": [
{
"name": "config",
"mountPath": "/etc/frp",
"readOnly": true
}
]
}
],
"volumes": [
{
"name": "config",
"configMap": {
"name": "hwlab-v02-frpc-config"
}
}
]
}
}
}
}
]
}
@@ -0,0 +1,32 @@
{
"apiVersion": "v1",
"kind": "ConfigMap",
"metadata": {
"name": "hwlab-v02-health-contract",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-v02-health-contract",
"hwlab.pikastech.local/profile": "v02",
"hwlab.pikastech.local/gitops-target": "v02",
"hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4",
"hwlab.pikastech.local/environment": "v02"
},
"annotations": {
"hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs"
}
},
"data": {
"endpoint": "http://74.48.78.17:19667",
"cloud-api": "GET /health/live through http://74.48.78.17:19667",
"cloud-api-db": "DEV DB config gate requires HWLAB_CLOUD_DB_URL from Secret hwlab-cloud-api-dev-db/database-url and HWLAB_CLOUD_DB_SSL_MODE=disable. Runtime readiness dials the redacted host parsed from the Secret URL and reports endpointSource=secret-url-host. cloud-api-db is an optional desired alias only until this repo owns Service plus Endpoint or EndpointSlice manifests and rollout/apply contract; health reports env presence, env injection, redacted connection attempt/result, and liveConnected without exposing secret values",
"cloud-web": "GET /health/live on http://74.48.78.17:19666; consumes cloud-api only",
"agent": "hwlab-agent-mgr readiness gates worker template creation; hwlab-agent-worker is suspended until a session is scheduled",
"sim": "hwlab-gateway-simu:7101 and hwlab-box-simu:7201 expose /health/live for DEV smoke",
"patch-panel": "hwlab-patch-panel:7301 exposes /health/live and owns patch panel state",
"router": "hwlab-router:7401 exposes /health/live and owns edge reachability routing",
"tunnel-client": "disabled for G14 GitOps; no FRP or production traffic tunnel is required",
"edge-proxy": "hwlab-edge-proxy:6667 exposes /health/live and proxies DEV endpoint traffic to hwlab-cloud-api",
"runtime-substitute-policy": "Do not replace HWLAB runtime with UniDesk backend, provider-gateway, or microservice proxy",
"device-pod": "hwlab-device-pod:7601 exposes /health/live and serves fake Device Pod summary/events for the Cloud Workbench right sidebar"
}
}
@@ -0,0 +1,15 @@
{
"apiVersion": "kustomize.config.k8s.io/v1beta1",
"kind": "Kustomization",
"namespace": "hwlab-v02",
"resources": [
"namespace.yaml",
"code-agent-codex-config.yaml",
"services.yaml",
"health-contract.yaml",
"workloads.yaml",
"deepseek-proxy.yaml",
"postgres.yaml",
"g14-frpc.yaml"
]
}
@@ -0,0 +1,17 @@
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"name": "hwlab-v02",
"labels": {
"app.kubernetes.io/part-of": "hwlab",
"hwlab.pikastech.local/profile": "v02",
"hwlab.pikastech.local/gitops-target": "v02",
"hwlab.pikastech.local/source-commit": "5fdfc9f82ae0fb7fc6fd08da7cb9d072f0b567a4",
"hwlab.pikastech.local/environment": "v02"
},
"annotations": {
"hwlab.pikastech.local/rendered-by": "scripts/g14-gitops-render.mjs"
}
}
}
+171
View File
@@ -0,0 +1,171 @@
{
"apiVersion": "v1",
"kind": "List",
"items": [
{
"apiVersion": "v1",
"kind": "ConfigMap",
"metadata": {
"name": "hwlab-v02-postgres-init",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-v02-postgres",
"app.kubernetes.io/part-of": "hwlab",
"hwlab.pikastech.local/environment": "v02",
"hwlab.pikastech.local/gitops-target": "v02",
"hwlab.pikastech.local/profile": "v02"
}
},
"data": {
"0001_cloud_core_skeleton.sql": "-- HWLAB L1 Cloud Core schema skeleton.\n-- This file is source schema only; applying it to DEV/PROD is a separate\n-- operator action and is not performed by source tests or smokes.\n\nCREATE TABLE IF NOT EXISTS projects (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL DEFAULT '',\n status TEXT NOT NULL DEFAULT 'pending',\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS gateway_sessions (\n id TEXT PRIMARY KEY,\n project_id TEXT,\n gateway_service_id TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'pending',\n started_at TEXT,\n ended_at TEXT,\n gateway_session_json TEXT NOT NULL DEFAULT '{}'\n);\n\nCREATE TABLE IF NOT EXISTS box_resources (\n id TEXT PRIMARY KEY,\n project_id TEXT,\n gateway_session_id TEXT,\n resource_state TEXT NOT NULL DEFAULT 'available',\n labels_json TEXT NOT NULL DEFAULT '{}',\n resource_json TEXT NOT NULL DEFAULT '{}',\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS box_capabilities (\n id TEXT PRIMARY KEY,\n box_resource_id TEXT NOT NULL,\n capability_type TEXT NOT NULL,\n capability_json TEXT NOT NULL DEFAULT '{}',\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS wiring_configs (\n id TEXT PRIMARY KEY,\n project_id TEXT,\n wiring_json TEXT NOT NULL DEFAULT '{}',\n status TEXT NOT NULL DEFAULT 'pending',\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS patch_panel_status (\n id TEXT PRIMARY KEY,\n gateway_session_id TEXT,\n wiring_config_id TEXT,\n status_json TEXT NOT NULL DEFAULT '{}',\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS hardware_operations (\n id TEXT PRIMARY KEY,\n project_id TEXT,\n requested_by TEXT,\n operation_type TEXT NOT NULL,\n operation_json TEXT NOT NULL DEFAULT '{}',\n status TEXT NOT NULL DEFAULT 'requested',\n requested_at TEXT NOT NULL,\n updated_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS audit_events (\n id TEXT PRIMARY KEY,\n request_id TEXT NOT NULL,\n actor TEXT NOT NULL,\n source TEXT NOT NULL,\n operation TEXT NOT NULL,\n target TEXT NOT NULL,\n result TEXT NOT NULL,\n timestamp TEXT NOT NULL,\n event_json TEXT NOT NULL DEFAULT '{}'\n);\n\nCREATE TABLE IF NOT EXISTS agent_sessions (\n id TEXT PRIMARY KEY,\n project_id TEXT,\n agent_id TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'pending',\n started_at TEXT,\n ended_at TEXT\n);\n\nCREATE TABLE IF NOT EXISTS worker_sessions (\n id TEXT PRIMARY KEY,\n agent_session_id TEXT,\n worker_id TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'pending',\n started_at TEXT,\n ended_at TEXT\n);\n\nCREATE TABLE IF NOT EXISTS agent_trace_events (\n id TEXT PRIMARY KEY,\n trace_id TEXT NOT NULL,\n agent_session_id TEXT,\n worker_session_id TEXT,\n level TEXT NOT NULL DEFAULT 'info',\n message TEXT NOT NULL DEFAULT '',\n event_json TEXT NOT NULL DEFAULT '{}',\n occurred_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS evidence_records (\n id TEXT PRIMARY KEY,\n project_id TEXT,\n operation_id TEXT,\n evidence_type TEXT NOT NULL,\n uri TEXT NOT NULL DEFAULT '',\n metadata_json TEXT NOT NULL DEFAULT '{}',\n created_at TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS hwlab_schema_migrations (\n id TEXT PRIMARY KEY,\n schema_version TEXT NOT NULL,\n applied_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,\n migration_json TEXT NOT NULL DEFAULT '{}'\n);\n\nINSERT INTO hwlab_schema_migrations (id, schema_version, applied_at, migration_json)\nVALUES (\n '0001_cloud_core_skeleton',\n 'runtime-durable-postgres-v1',\n CURRENT_TIMESTAMP,\n '{\"path\":\"internal/db/migrations/0001_cloud_core_skeleton.sql\",\"runtime\":\"cloud-api\"}'\n)\nON CONFLICT (id) DO UPDATE SET\n schema_version = EXCLUDED.schema_version,\n migration_json = EXCLUDED.migration_json;\n"
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-v02-postgres",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-v02-postgres",
"app.kubernetes.io/part-of": "hwlab",
"hwlab.pikastech.local/environment": "v02",
"hwlab.pikastech.local/gitops-target": "v02",
"hwlab.pikastech.local/profile": "v02"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-v02-postgres"
},
"ports": [
{
"name": "postgres",
"port": 5432,
"targetPort": "postgres"
}
]
}
},
{
"apiVersion": "apps/v1",
"kind": "StatefulSet",
"metadata": {
"name": "hwlab-v02-postgres",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-v02-postgres",
"app.kubernetes.io/part-of": "hwlab",
"hwlab.pikastech.local/environment": "v02",
"hwlab.pikastech.local/gitops-target": "v02",
"hwlab.pikastech.local/profile": "v02"
}
},
"spec": {
"serviceName": "hwlab-v02-postgres",
"replicas": 1,
"selector": {
"matchLabels": {
"app.kubernetes.io/name": "hwlab-v02-postgres"
}
},
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "hwlab-v02-postgres",
"app.kubernetes.io/part-of": "hwlab",
"hwlab.pikastech.local/environment": "v02",
"hwlab.pikastech.local/gitops-target": "v02",
"hwlab.pikastech.local/profile": "v02"
}
},
"spec": {
"containers": [
{
"name": "postgres",
"image": "127.0.0.1:5000/hwlab/postgres:16-alpine",
"imagePullPolicy": "IfNotPresent",
"env": [
{
"name": "POSTGRES_DB",
"value": "hwlab_v02"
},
{
"name": "POSTGRES_USER",
"value": "hwlab_v02"
},
{
"name": "POSTGRES_PASSWORD",
"valueFrom": {
"secretKeyRef": {
"name": "hwlab-v02-postgres",
"key": "POSTGRES_PASSWORD"
}
}
}
],
"ports": [
{
"name": "postgres",
"containerPort": 5432
}
],
"readinessProbe": {
"tcpSocket": {
"port": "postgres"
},
"initialDelaySeconds": 5,
"periodSeconds": 10
},
"livenessProbe": {
"tcpSocket": {
"port": "postgres"
},
"initialDelaySeconds": 30,
"periodSeconds": 20
},
"volumeMounts": [
{
"name": "data",
"mountPath": "/var/lib/postgresql/data"
},
{
"name": "init",
"mountPath": "/docker-entrypoint-initdb.d",
"readOnly": true
}
]
}
],
"volumes": [
{
"name": "init",
"configMap": {
"name": "hwlab-v02-postgres-init"
}
}
]
}
},
"volumeClaimTemplates": [
{
"metadata": {
"name": "data"
},
"spec": {
"accessModes": [
"ReadWriteOnce"
],
"resources": {
"requests": {
"storage": "8Gi"
}
}
}
}
]
}
}
]
}
+556
View File
@@ -0,0 +1,556 @@
{
"apiVersion": "v1",
"kind": "List",
"items": [
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-cloud-api",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-cloud-api",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-cloud-api"
},
"ports": [
{
"name": "http",
"port": 6667,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-gateway-simu-1",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-gateway-simu",
"hwlab.pikastech.local/service-id": "hwlab-gateway-simu",
"hwlab.pikastech.local/instance-id": "gwsimu_1",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"statefulset.kubernetes.io/pod-name": "hwlab-gateway-simu-0"
},
"ports": [
{
"name": "http",
"port": 7101,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-gateway-simu-2",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-gateway-simu",
"hwlab.pikastech.local/service-id": "hwlab-gateway-simu",
"hwlab.pikastech.local/instance-id": "gwsimu_2",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"statefulset.kubernetes.io/pod-name": "hwlab-gateway-simu-1"
},
"ports": [
{
"name": "http",
"port": 7101,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-cloud-web",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-cloud-web",
"hwlab.pikastech.local/service-id": "hwlab-cloud-web",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-cloud-web"
},
"ports": [
{
"name": "http",
"port": 8080,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-box-simu-1",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-box-simu",
"hwlab.pikastech.local/service-id": "hwlab-box-simu",
"hwlab.pikastech.local/instance-id": "res_boxsimu_1",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"statefulset.kubernetes.io/pod-name": "hwlab-box-simu-0"
},
"ports": [
{
"name": "http",
"port": 7201,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-box-simu-2",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-box-simu",
"hwlab.pikastech.local/service-id": "hwlab-box-simu",
"hwlab.pikastech.local/instance-id": "res_boxsimu_2",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"statefulset.kubernetes.io/pod-name": "hwlab-box-simu-1"
},
"ports": [
{
"name": "http",
"port": 7201,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"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",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-gateway"
},
"ports": [
{
"name": "http",
"port": 7001,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-cli",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-cli",
"hwlab.pikastech.local/service-id": "hwlab-cli",
"hwlab.pikastech.local/activation": "manual",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-cli"
},
"ports": [
{
"name": "http",
"port": 7501,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-agent-skills",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-agent-skills",
"hwlab.pikastech.local/service-id": "hwlab-agent-skills",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-agent-skills"
},
"ports": [
{
"name": "http",
"port": 7430,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-agent-mgr",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-agent-mgr",
"hwlab.pikastech.local/service-id": "hwlab-agent-mgr",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-agent-mgr"
},
"ports": [
{
"name": "http",
"port": 7410,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-device-pod",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-device-pod",
"hwlab.pikastech.local/service-id": "hwlab-device-pod",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-device-pod"
},
"ports": [
{
"name": "http",
"port": 7601,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-gateway-simu",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-gateway-simu",
"hwlab.pikastech.local/service-id": "hwlab-gateway-simu",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-gateway-simu"
},
"ports": [
{
"name": "http",
"port": 7101,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-box-simu",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-box-simu",
"hwlab.pikastech.local/service-id": "hwlab-box-simu",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-box-simu"
},
"ports": [
{
"name": "http",
"port": 7201,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-patch-panel",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-patch-panel",
"hwlab.pikastech.local/service-id": "hwlab-patch-panel",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-patch-panel"
},
"ports": [
{
"name": "http",
"port": 7301,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-router",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-router",
"hwlab.pikastech.local/service-id": "hwlab-router",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-router"
},
"ports": [
{
"name": "http",
"port": 7401,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-tunnel-client",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-tunnel-client",
"hwlab.pikastech.local/service-id": "hwlab-tunnel-client",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-tunnel-client"
},
"ports": [
{
"name": "http",
"port": 7402,
"targetPort": "http"
}
]
}
},
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"name": "hwlab-edge-proxy",
"namespace": "hwlab-v02",
"labels": {
"app.kubernetes.io/name": "hwlab-edge-proxy",
"hwlab.pikastech.local/service-id": "hwlab-edge-proxy",
"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"
}
},
"spec": {
"type": "ClusterIP",
"selector": {
"app.kubernetes.io/name": "hwlab-edge-proxy"
},
"ports": [
{
"name": "http",
"port": 6667,
"targetPort": "http"
}
]
}
}
]
}
File diff suppressed because it is too large Load Diff