diff --git a/deploy/artifact-catalog.dev.json b/deploy/artifact-catalog.dev.json index e4650ee2..f85e30d4 100644 --- a/deploy/artifact-catalog.dev.json +++ b/deploy/artifact-catalog.dev.json @@ -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": { diff --git a/deploy/deploy.json b/deploy/deploy.json index 291510e3..e64d7489 100644 --- a/deploy/deploy.json +++ b/deploy/deploy.json @@ -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" } } ], diff --git a/deploy/k8s/base/workloads.yaml b/deploy/k8s/base/workloads.yaml index 4a82cdff..c1762337 100644 --- a/deploy/k8s/base/workloads.yaml +++ b/deploy/k8s/base/workloads.yaml @@ -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": { diff --git a/scripts/deploy-desired-state-plan.test.mjs b/scripts/deploy-desired-state-plan.test.mjs index 979e0fee..33ffe528 100644 --- a/scripts/deploy-desired-state-plan.test.mjs +++ b/scripts/deploy-desired-state-plan.test.mjs @@ -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, []); }); diff --git a/scripts/refresh-artifact-catalog.mjs b/scripts/refresh-artifact-catalog.mjs index 38981579..477e4c74 100644 --- a/scripts/refresh-artifact-catalog.mjs +++ b/scripts/refresh-artifact-catalog.mjs @@ -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 }); diff --git a/scripts/src/deploy-desired-state-plan.mjs b/scripts/src/deploy-desired-state-plan.mjs index 6f6675c7..3462d087 100644 --- a/scripts/src/deploy-desired-state-plan.mjs +++ b/scripts/src/deploy-desired-state-plan.mjs @@ -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) ?? []; diff --git a/scripts/src/dev-deploy-apply.mjs b/scripts/src/dev-deploy-apply.mjs index db1bc086..d3eeba5c 100755 --- a/scripts/src/dev-deploy-apply.mjs +++ b/scripts/src/dev-deploy-apply.mjs @@ -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, diff --git a/scripts/src/dev-deploy-apply.test.mjs b/scripts/src/dev-deploy-apply.test.mjs index 0d718546..8b2228e4 100644 --- a/scripts/src/dev-deploy-apply.test.mjs +++ b/scripts/src/dev-deploy-apply.test.mjs @@ -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", () => {