fix: promote fad9fc9 dev artifacts

This commit is contained in:
Codex
2026-05-24 07:21:17 +00:00
parent fad9fc9809
commit cc62d5f270
8 changed files with 190 additions and 129 deletions
+81 -81
View File
@@ -5,13 +5,13 @@
"profile": "dev",
"namespace": "hwlab-dev",
"endpoint": "http://74.48.78.17:16667",
"commitId": "48dfbf9",
"commitId": "fad9fc9",
"artifactState": "published",
"publish": {
"ciPublished": true,
"registryVerified": true,
"provenance": "ci-artifact:dev-artifacts.json",
"note": "Digest fields were copied from a successful DEV artifact publish artifact for this source commit; repository report files are not used."
"provenance": "ci-artifact:ci-publish-20260524T071015-23d785",
"note": "Digest fields were copied from a successful DEV artifact publish report for this source commit."
},
"healthContract": {
"method": "GET",
@@ -66,10 +66,10 @@
"services": [
{
"serviceId": "hwlab-cloud-api",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:15a9dec43d0ad6b750ea4eda860c1c157c6502441732c1de20ef3b92696d0dfc",
"commitId": "fad9fc9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:fad9fc9",
"imageTag": "fad9fc9",
"digest": "sha256:2cc48ca2bd0e260d7ea6df1e1a791df6615a87da3d89f4b11103735a1e2d9b63",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
@@ -79,15 +79,15 @@
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
"buildCreatedAt": "2026-05-24T07:10:17.590Z",
"buildSource": "pikasTech/HWLAB@fad9fc9809af16057780e2eaac7599353dc905ac"
},
{
"serviceId": "hwlab-cloud-web",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:fc1841a6e3e8d427d23b5a0187abbe9d73208e3ad2c638e31b9512aaf075699f",
"commitId": "fad9fc9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:fad9fc9",
"imageTag": "fad9fc9",
"digest": "sha256:f72f9ba17182496198b2ed0b55dabfe7977191bcea5fc03e98cf1f3bb1494b83",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
@@ -97,15 +97,15 @@
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
"buildCreatedAt": "2026-05-24T07:10:17.590Z",
"buildSource": "pikasTech/HWLAB@fad9fc9809af16057780e2eaac7599353dc905ac"
},
{
"serviceId": "hwlab-agent-mgr",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:bdb3dffd0a82e7cf1c48de3d130cbd6e733c242dd5667be4ba098a46888a13d6",
"commitId": "fad9fc9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:fad9fc9",
"imageTag": "fad9fc9",
"digest": "sha256:6926aa5785b2e5a5f042afeb833511ee6d1e061de38eb62e84a172e71fdba7c2",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
@@ -115,15 +115,15 @@
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
"buildCreatedAt": "2026-05-24T07:10:17.590Z",
"buildSource": "pikasTech/HWLAB@fad9fc9809af16057780e2eaac7599353dc905ac"
},
{
"serviceId": "hwlab-agent-worker",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:902590cd05c9af8dcf347b74c05e1fb9fb399eefa54d91ff105dd2fa276ae785",
"commitId": "fad9fc9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:fad9fc9",
"imageTag": "fad9fc9",
"digest": "sha256:f39e571fa585a94f8bb037bf1ea52c178e74deb058a1011bf4a9a67afc79cef1",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
@@ -133,15 +133,15 @@
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
"buildCreatedAt": "2026-05-24T07:10:17.590Z",
"buildSource": "pikasTech/HWLAB@fad9fc9809af16057780e2eaac7599353dc905ac"
},
{
"serviceId": "hwlab-gateway",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:015916d05ccbd8448e3f32d754335f7c221aaaadf5ae2b63007d7698f7583d04",
"commitId": "fad9fc9",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:fad9fc9",
"imageTag": "fad9fc9",
"digest": "sha256:9e8272f23882b2624166e2123320bac46f41a067c097e9513b29c6c7bbe4fa01",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
@@ -151,15 +151,15 @@
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
"buildCreatedAt": "2026-05-24T07:10:17.590Z",
"buildSource": "pikasTech/HWLAB@fad9fc9809af16057780e2eaac7599353dc905ac"
},
{
"serviceId": "hwlab-gateway-simu",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:74793df73dfeb27fc45b1085ac1c29839f6545ccfea79d033dfddc89d6f3a553",
"commitId": "fad9fc9",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:fad9fc9",
"imageTag": "fad9fc9",
"digest": "sha256:cecfe86d1558edfb0b1cc885094be6f73ad32157f4716bfa7890d0c16e937bf4",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
@@ -169,15 +169,15 @@
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
"buildCreatedAt": "2026-05-24T07:10:17.590Z",
"buildSource": "pikasTech/HWLAB@fad9fc9809af16057780e2eaac7599353dc905ac"
},
{
"serviceId": "hwlab-box-simu",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:89d80def71130db7e0f4d9a0ec1dadfcb5d8963bd1f13b71c67eab0a301efb94",
"commitId": "fad9fc9",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:fad9fc9",
"imageTag": "fad9fc9",
"digest": "sha256:2fbf86a56877d72d8e226f41c970fc54c64f376cc1bc1ad8a28287cc87c7427d",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
@@ -187,15 +187,15 @@
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
"buildCreatedAt": "2026-05-24T07:10:17.590Z",
"buildSource": "pikasTech/HWLAB@fad9fc9809af16057780e2eaac7599353dc905ac"
},
{
"serviceId": "hwlab-patch-panel",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:160a47204b2263e750cbf412f0d266047eeb6baf8b2be839e5d1987fc6082fea",
"commitId": "fad9fc9",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:fad9fc9",
"imageTag": "fad9fc9",
"digest": "sha256:55126e8f520910552ea8ff1c694680f6bfcccc9feb0f82481b203e32cf11d1f2",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
@@ -205,15 +205,15 @@
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
"buildCreatedAt": "2026-05-24T07:10:17.590Z",
"buildSource": "pikasTech/HWLAB@fad9fc9809af16057780e2eaac7599353dc905ac"
},
{
"serviceId": "hwlab-router",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-router:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:0ab02340575ec7e910427f8ea06db2b8f8095922e207ae5e11a64c065fa26df7",
"commitId": "fad9fc9",
"image": "127.0.0.1:5000/hwlab/hwlab-router:fad9fc9",
"imageTag": "fad9fc9",
"digest": "sha256:74d53f1f3838026a7ad79370a216d319f319bc475b12c91b89b5953d6134a038",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
@@ -223,15 +223,15 @@
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
"buildCreatedAt": "2026-05-24T07:10:17.590Z",
"buildSource": "pikasTech/HWLAB@fad9fc9809af16057780e2eaac7599353dc905ac"
},
{
"serviceId": "hwlab-tunnel-client",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:75af6caa96ec03d3f4130e512052f666d75b1e5470fa67f8f66f355e1068e43f",
"commitId": "fad9fc9",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:fad9fc9",
"imageTag": "fad9fc9",
"digest": "sha256:d529f99d679c84997f3946b52e06569000a096e0b50d86a9a47ca3e796663923",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
@@ -241,15 +241,15 @@
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
"buildCreatedAt": "2026-05-24T07:10:17.590Z",
"buildSource": "pikasTech/HWLAB@fad9fc9809af16057780e2eaac7599353dc905ac"
},
{
"serviceId": "hwlab-edge-proxy",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:f8b954ad76ab0162e3df0edc26c115f6c697f8f5c4e9d93e24112285b57b9b05",
"commitId": "fad9fc9",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:fad9fc9",
"imageTag": "fad9fc9",
"digest": "sha256:c2d23e8980cc8461b146a18c612da04caf02fb7bbd835b528f0eab73193c2224",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
@@ -259,15 +259,15 @@
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
"buildCreatedAt": "2026-05-24T07:10:17.590Z",
"buildSource": "pikasTech/HWLAB@fad9fc9809af16057780e2eaac7599353dc905ac"
},
{
"serviceId": "hwlab-cli",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:ae6564b6b0f8ceaf35ab5d2e7f7c04ca8f5e51aa7daedb01e4a6aa31e4bcc16b",
"commitId": "fad9fc9",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:fad9fc9",
"imageTag": "fad9fc9",
"digest": "sha256:ddf18a6e151327134cae38b3dd9e52649aee98bfd564cdec7829505048b48077",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
@@ -277,15 +277,15 @@
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
"buildCreatedAt": "2026-05-24T07:10:17.590Z",
"buildSource": "pikasTech/HWLAB@fad9fc9809af16057780e2eaac7599353dc905ac"
},
{
"serviceId": "hwlab-agent-skills",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:6fc9b4fda9bea32607774a24d72ecc7999007d910d17e11764abce2bdc35c03d",
"commitId": "fad9fc9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:fad9fc9",
"imageTag": "fad9fc9",
"digest": "sha256:fb61209f9b72613fa6e764ad0638580defb614820257074b1c3eb44832f935a5",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
@@ -295,8 +295,8 @@
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
"buildCreatedAt": "2026-05-24T07:10:17.590Z",
"buildSource": "pikasTech/HWLAB@fad9fc9809af16057780e2eaac7599353dc905ac"
}
],
"serviceInventory": {
+21 -21
View File
@@ -1,7 +1,7 @@
{
"manifestVersion": "v1",
"environment": "dev",
"commitId": "48dfbf9",
"commitId": "fad9fc9",
"namespace": "hwlab-dev",
"endpoint": "http://74.48.78.17:16667",
"health": {
@@ -181,7 +181,7 @@
"services": [
{
"serviceId": "hwlab-cloud-api",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:fad9fc9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -189,9 +189,9 @@
"env": {
"HWLAB_ENVIRONMENT": "dev",
"HWLAB_PUBLIC_ENDPOINT": "http://74.48.78.17:16667",
"HWLAB_COMMIT_ID": "48dfbf9",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-api:48dfbf9",
"HWLAB_IMAGE_TAG": "48dfbf9",
"HWLAB_COMMIT_ID": "fad9fc9",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-api:fad9fc9",
"HWLAB_IMAGE_TAG": "fad9fc9",
"HWLAB_RUNTIME_SUBSTITUTE_FORBIDDEN": "unidesk-backend,provider-gateway,microservice-proxy",
"HWLAB_CLOUD_DB_URL": "secretRef:hwlab-cloud-api-dev-db/database-url",
"HWLAB_CLOUD_DB_SSL_MODE": "disable",
@@ -222,7 +222,7 @@
},
{
"serviceId": "hwlab-cloud-web",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:fad9fc9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -231,14 +231,14 @@
"HWLAB_ENVIRONMENT": "dev",
"HWLAB_API_BASE_URL": "http://hwlab-cloud-api.hwlab-dev.svc.cluster.local:6667",
"HWLAB_CLOUD_WEB_PROXY_TIMEOUT_MS": "180000",
"HWLAB_COMMIT_ID": "48dfbf9",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"HWLAB_IMAGE_TAG": "48dfbf9"
"HWLAB_COMMIT_ID": "fad9fc9",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-web:fad9fc9",
"HWLAB_IMAGE_TAG": "fad9fc9"
}
},
{
"serviceId": "hwlab-agent-mgr",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:fad9fc9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -250,7 +250,7 @@
},
{
"serviceId": "hwlab-agent-worker",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:fad9fc9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -262,7 +262,7 @@
},
{
"serviceId": "hwlab-gateway",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:fad9fc9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -274,7 +274,7 @@
},
{
"serviceId": "hwlab-gateway-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:fad9fc9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -294,7 +294,7 @@
},
{
"serviceId": "hwlab-box-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:fad9fc9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -313,7 +313,7 @@
},
{
"serviceId": "hwlab-patch-panel",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:fad9fc9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -334,7 +334,7 @@
},
{
"serviceId": "hwlab-router",
"image": "127.0.0.1:5000/hwlab/hwlab-router:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-router:fad9fc9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -346,7 +346,7 @@
},
{
"serviceId": "hwlab-tunnel-client",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:fad9fc9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -360,7 +360,7 @@
},
{
"serviceId": "hwlab-edge-proxy",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:fad9fc9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -373,7 +373,7 @@
},
{
"serviceId": "hwlab-cli",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:fad9fc9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -384,13 +384,13 @@
},
{
"serviceId": "hwlab-agent-skills",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:fad9fc9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
"replicas": 1,
"env": {
"HWLAB_SKILLS_COMMIT_ID": "48dfbf9"
"HWLAB_SKILLS_COMMIT_ID": "fad9fc9"
}
}
],
+20 -20
View File
@@ -31,7 +31,7 @@
"containers": [
{
"name": "hwlab-cloud-api",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:fad9fc9",
"ports": [
{
"name": "http",
@@ -49,15 +49,15 @@
},
{
"name": "HWLAB_COMMIT_ID",
"value": "48dfbf9"
"value": "fad9fc9"
},
{
"name": "HWLAB_IMAGE",
"value": "127.0.0.1:5000/hwlab/hwlab-cloud-api:48dfbf9"
"value": "127.0.0.1:5000/hwlab/hwlab-cloud-api:fad9fc9"
},
{
"name": "HWLAB_IMAGE_TAG",
"value": "48dfbf9"
"value": "fad9fc9"
},
{
"name": "HWLAB_RUNTIME_SUBSTITUTE_FORBIDDEN",
@@ -279,7 +279,7 @@
"containers": [
{
"name": "hwlab-cloud-web",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:fad9fc9",
"ports": [
{
"name": "http",
@@ -297,15 +297,15 @@
},
{
"name": "HWLAB_COMMIT_ID",
"value": "48dfbf9"
"value": "fad9fc9"
},
{
"name": "HWLAB_IMAGE",
"value": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9"
"value": "127.0.0.1:5000/hwlab/hwlab-cloud-web:fad9fc9"
},
{
"name": "HWLAB_IMAGE_TAG",
"value": "48dfbf9"
"value": "fad9fc9"
}
],
"readinessProbe": {
@@ -355,7 +355,7 @@
"containers": [
{
"name": "hwlab-agent-mgr",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:fad9fc9",
"ports": [
{
"name": "http",
@@ -411,7 +411,7 @@
"containers": [
{
"name": "hwlab-agent-worker",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:fad9fc9",
"env": [
{
"name": "HWLAB_AGENT_SESSION_MODE",
@@ -454,7 +454,7 @@
"containers": [
{
"name": "hwlab-gateway",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:fad9fc9",
"ports": [
{
"name": "http",
@@ -515,7 +515,7 @@
"containers": [
{
"name": "hwlab-gateway-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:fad9fc9",
"ports": [
{
"name": "http",
@@ -588,7 +588,7 @@
"containers": [
{
"name": "hwlab-box-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:fad9fc9",
"ports": [
{
"name": "http",
@@ -656,7 +656,7 @@
"containers": [
{
"name": "hwlab-patch-panel",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:fad9fc9",
"ports": [
{
"name": "http",
@@ -720,7 +720,7 @@
"containers": [
{
"name": "hwlab-router",
"image": "127.0.0.1:5000/hwlab/hwlab-router:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-router:fad9fc9",
"ports": [
{
"name": "http",
@@ -780,7 +780,7 @@
"containers": [
{
"name": "hwlab-tunnel-client",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:fad9fc9",
"ports": [
{
"name": "http",
@@ -852,7 +852,7 @@
"containers": [
{
"name": "hwlab-edge-proxy",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:fad9fc9",
"ports": [
{
"name": "http",
@@ -917,7 +917,7 @@
"containers": [
{
"name": "hwlab-cli",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:fad9fc9",
"env": [
{
"name": "HWLAB_CLI_ENDPOINT",
@@ -959,7 +959,7 @@
"containers": [
{
"name": "hwlab-agent-skills",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:fad9fc9",
"ports": [
{
"name": "http",
@@ -969,7 +969,7 @@
"env": [
{
"name": "HWLAB_SKILLS_COMMIT_ID",
"value": "48dfbf9"
"value": "fad9fc9"
}
],
"readinessProbe": {
+30 -3
View File
@@ -54,6 +54,9 @@ async function makeFixture({
HWLAB_CODE_AGENT_PROVIDER: "codex-stdio",
HWLAB_CODE_AGENT_MODEL: "gpt-5.5",
HWLAB_CODE_AGENT_OPENAI_BASE_URL: providerBaseUrl,
CODEX_HOME: "/codex-home",
NO_PROXY: "hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com",
no_proxy: "hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com",
OPENAI_API_KEY: "secretRef:hwlab-code-agent-provider/openai-api-key"
}
: {};
@@ -63,6 +66,9 @@ async function makeFixture({
{ name: "HWLAB_CODE_AGENT_PROVIDER", value: "codex-stdio" },
{ name: "HWLAB_CODE_AGENT_MODEL", value: "gpt-5.5" },
{ name: "HWLAB_CODE_AGENT_OPENAI_BASE_URL", value: providerBaseUrl },
{ name: "CODEX_HOME", value: "/codex-home" },
{ name: "NO_PROXY", value: "hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com" },
{ name: "no_proxy", value: "hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com" },
{
name: "OPENAI_API_KEY",
valueFrom: {
@@ -177,9 +183,27 @@ async function makeFixture({
...workloadDbEntries,
...workloadProviderEnv
]
: []
: [],
...(serviceId === "hwlab-cloud-api" && workloadCodeAgentProviderEnv
? {
volumeMounts: [
{ 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 }
]
}
: {})
}
]
],
...(serviceId === "hwlab-cloud-api" && workloadCodeAgentProviderEnv
? {
volumes: [
{ name: "hwlab-code-agent-codex-home", emptyDir: {} },
{ name: "hwlab-code-agent-codex-config", configMap: { name: "hwlab-code-agent-codex-config", items: [{ key: "config.toml", path: "config.toml" }] } },
{ name: "hwlab-code-agent-codex-auth", secret: { secretName: "hwlab-code-agent-codex-auth", items: [{ key: "auth.json", path: "auth.json" }] } }
]
}
: {})
}
}
}
@@ -220,9 +244,12 @@ test("passes when cloud-api preserves provider env and DEV egress contract", asy
assert.equal(plan.codeAgentProvider.ready, true);
assert.equal(plan.codeAgentProvider.provider, "codex-stdio");
assert.equal(plan.codeAgentProvider.runtimeProvider, "openai-responses");
assert.equal(plan.codeAgentProvider.backend, "hwlab-cloud-api/codex-mcp-stdio");
assert.equal(plan.codeAgentProvider.backend, "hwlab-cloud-api/codex-app-server-stdio");
assert.equal(plan.codeAgentProvider.secretRef.present, true);
assert.equal(plan.codeAgentProvider.egress.deployMatchesDevProxy, true);
assert.equal(plan.codeAgentProvider.codexHome.present, true);
assert.equal(plan.codeAgentProvider.codexHome.configMapPresent, true);
assert.equal(plan.codeAgentProvider.codexHome.authSecretPresent, true);
assert.deepEqual(plan.diagnostics, []);
});
+7 -1
View File
@@ -309,6 +309,12 @@ function refreshDocuments({ deploy, catalog, workloads, target, publishRecords,
return refreshedServices;
}
function publishReportProvenance(publishReport, fallbackPath) {
const producer = publishReport?.artifactPublish?.producer;
if (producer?.kind && producer?.runId) return `${producer.kind}:${producer.runId}`;
return fallbackPath;
}
async function main() {
const args = parseArgs(process.argv.slice(2));
if (args.help) {
@@ -336,7 +342,7 @@ async function main() {
target,
publishRecords,
serviceInventory,
provenancePath: args.publishReportPath ?? defaultPublishReportPath,
provenancePath: publishReportProvenance(publishReport, args.publishReportPath ?? defaultPublishReportPath),
registryPrefix: publishReport?.artifactPublish?.registryPrefix ?? defaultRegistryPrefix
});
+5 -1
View File
@@ -438,7 +438,11 @@ function indexWorkloads(workloads) {
containerIndex,
containerName: container?.name ?? "unknown",
image: container?.image ?? null,
env: envListToObject(container?.env),
env: {
...envListToObject(container?.env),
__volumeMounts: Array.isArray(container?.volumeMounts) ? container.volumeMounts : [],
__volumes: Array.isArray(item?.spec?.template?.spec?.volumes) ? item.spec.template.spec.volumes : []
},
path: `${workloadsPath}.${item?.kind ?? "Workload"}.${item?.metadata?.name ?? serviceId}.containers[${containerIndex}]`
};
const list = byService.get(serviceId) ?? [];
+6 -1
View File
@@ -1090,7 +1090,10 @@ function workloadEnvByServiceId(workloads, serviceId) {
for (const item of listItems(workloads)) {
for (const container of containersFor(item)) {
if (serviceIdFor(item, container) !== serviceId) continue;
return new Map((container.env ?? []).filter((entry) => entry?.name).map((entry) => [entry.name, entry]));
const env = new Map((container.env ?? []).filter((entry) => entry?.name).map((entry) => [entry.name, entry]));
env.__volumeMounts = Array.isArray(container.volumeMounts) ? container.volumeMounts : [];
env.__volumes = Array.isArray(item?.spec?.template?.spec?.volumes) ? item.spec.template.spec.volumes : [];
return env;
}
}
return new Map();
@@ -1107,6 +1110,8 @@ export function inspectCodeAgentProviderDesiredState(deploy, workloads) {
export function inspectCodeAgentProviderLiveDeployment(deployment) {
const container = containerForDeployment(deployment, "hwlab-cloud-api");
const workloadEnv = new Map((container?.env ?? []).filter((entry) => entry?.name).map((entry) => [entry.name, entry]));
workloadEnv.__volumeMounts = Array.isArray(container?.volumeMounts) ? container.volumeMounts : [];
workloadEnv.__volumes = Array.isArray(deployment?.spec?.template?.spec?.volumes) ? deployment.spec.template.spec.volumes : [];
const inspection = inspectCodeAgentProviderWorkloadEnv(workloadEnv);
return {
...inspection,
+20 -1
View File
@@ -35,6 +35,9 @@ function codeAgentDeploy(env = {}) {
HWLAB_CODE_AGENT_PROVIDER: "codex-stdio",
HWLAB_CODE_AGENT_MODEL: "gpt-5.5",
HWLAB_CODE_AGENT_OPENAI_BASE_URL: codeAgentBaseUrl,
CODEX_HOME: "/codex-home",
NO_PROXY: "hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com",
no_proxy: "hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com",
OPENAI_API_KEY: "secretRef:hwlab-code-agent-provider/openai-api-key",
...env
}
@@ -66,6 +69,9 @@ function codeAgentWorkloads(envOverrides = []) {
{ name: "HWLAB_CODE_AGENT_PROVIDER", value: "codex-stdio" },
{ name: "HWLAB_CODE_AGENT_MODEL", value: "gpt-5.5" },
{ name: "HWLAB_CODE_AGENT_OPENAI_BASE_URL", value: codeAgentBaseUrl },
{ name: "CODEX_HOME", value: "/codex-home" },
{ name: "NO_PROXY", value: "hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com" },
{ name: "no_proxy", value: "hyueapi.com,.hyueapi.com,hyui.com,.hyui.com,127.0.0.1,localhost,::1,api.minimaxi.com,.minimaxi.com" },
{
name: "OPENAI_API_KEY",
valueFrom: {
@@ -76,8 +82,18 @@ function codeAgentWorkloads(envOverrides = []) {
}
},
...envOverrides
],
volumeMounts: [
{ 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 }
]
}
],
volumes: [
{ name: "hwlab-code-agent-codex-home", emptyDir: {} },
{ name: "hwlab-code-agent-codex-config", configMap: { name: "hwlab-code-agent-codex-config", items: [{ key: "config.toml", path: "config.toml" }] } },
{ name: "hwlab-code-agent-codex-auth", secret: { secretName: "hwlab-code-agent-codex-auth", items: [{ key: "auth.json", path: "auth.json" }] } }
]
}
}
@@ -362,11 +378,14 @@ test("Code Agent provider desired state preserves Secret ref and egress base URL
assert.equal(inspection.status, "pass");
assert.equal(inspection.provider, "codex-stdio");
assert.equal(inspection.runtimeProvider, "openai-responses");
assert.equal(inspection.backend, "hwlab-cloud-api/codex-mcp-stdio");
assert.equal(inspection.backend, "hwlab-cloud-api/codex-app-server-stdio");
assert.equal(inspection.secretRef.present, true);
assert.equal(inspection.secretMaterialRead, false);
assert.equal(inspection.egress.deployMatchesDevProxy, true);
assert.equal(inspection.egress.workloadMatchesDevProxy, true);
assert.equal(inspection.codexHome.present, true);
assert.equal(inspection.codexHome.configMapPresent, true);
assert.equal(inspection.codexHome.authSecretPresent, true);
});
test("Code Agent provider desired state blocks direct public OpenAI base URL", () => {