From 3df60b81ccd9a2c56c2d52f89cea75fe149ac6d8 Mon Sep 17 00:00:00 2001 From: HWLAB node GitOps Bot Date: Fri, 12 Jun 2026 21:36:46 +0000 Subject: [PATCH] chore: promote node GitOps source 8969bdd --- deploy/artifact-catalog.v03.json | 94 +++--- .../node/d601/runtime-v03/deepseek-proxy.yaml | 67 ++-- .../d601/runtime-v03/external-postgres.yaml | 88 +++-- .../d601/runtime-v03/health-contract.yaml | 2 +- .../node/d601/runtime-v03/kustomization.yaml | 28 +- .../node/d601/runtime-v03/namespace.yaml | 2 +- .../node/d601/runtime-v03/node-frpc.yaml | 6 +- .../node/d601/runtime-v03/observability.yaml | 286 +--------------- .../gitops/node/d601/runtime-v03/openfga.yaml | 10 +- .../node/d601/runtime-v03/services.yaml | 10 +- .../node/d601/runtime-v03/workloads.yaml | 309 +++++++++++------- 11 files changed, 346 insertions(+), 556 deletions(-) diff --git a/deploy/artifact-catalog.v03.json b/deploy/artifact-catalog.v03.json index 15372ac8..c0431bf5 100644 --- a/deploy/artifact-catalog.v03.json +++ b/deploy/artifact-catalog.v03.json @@ -5,12 +5,12 @@ "profile": "v03", "namespace": "hwlab-v03", "endpoint": "https://hwlab-v03.74-48-78-17.nip.io", - "commitId": "f3e0ad796126da7a7721b538936c971b824c2486", + "commitId": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "artifactState": "published", "publish": { "ciPublished": true, "registryVerified": true, - "provenance": "node-ci-artifact:hwlab-v03-ci-poll-f3e0ad796126-collect", + "provenance": "node-ci-artifact:hwlab-v03-ci-poll-8969bdd1e4d8-collect", "note": "Digest fields were copied from a successful DEV artifact publish report for this source commit." }, "healthContract": { @@ -38,7 +38,7 @@ "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env:env-9495896df918", "imageTag": "env-9495896df918", "digest": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb", - "publishState": "published", + "publishState": "reused", "profile": "v03", "namespace": "hwlab-v03", "healthPath": "/health/live", @@ -49,12 +49,12 @@ "notPublishedReason": null, "buildCreatedAt": "2026-06-12T20:30:18.880Z", "buildSource": "git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB@env:9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", - "buildBackend": "buildkit-env-reuse", + "buildBackend": "reused-env-catalog", "componentCommitId": "56581a4373ef4273583e26e9938112f15fea15d6", "componentInputHash": "1939c4413344bc1d0c5398d776da55975eb179319ed1b81044ef288b27d1e043", "runtimeMode": "env-reuse-git-mirror-checkout", "envReuse": true, - "envChanged": true, + "envChanged": false, "codeChanged": false, "environmentImage": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env:env-9495896df918", "environmentDigest": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb", @@ -82,15 +82,17 @@ "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", "baseImageDigest": null, "buildArgsHash": "445d32282d642d5089290ffe5f621ccea3206cf1d9f11b24091f82a4434cbcd5", - "ciAffected": true, + "ciAffected": false, "ciReason": [ - "reuse-registry-missing" + "gitops-only-no-image-build" ], "reuse": { - "status": "not-reused", - "reason": "environment-affected" + "status": "ready", + "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env:env-9495896df918", + "digest": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb", + "reusedFrom": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, - "reusedFrom": "cc508eb657a455c738b9f2477b1d669af6163fa4863b400e371716b9f3ee39af" + "reusedFrom": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, { "serviceId": "hwlab-cloud-web", @@ -99,7 +101,7 @@ "image": "127.0.0.1:5000/hwlab/hwlab-cloud-web-env:env-9495896df918", "imageTag": "env-9495896df918", "digest": "sha256:eadedd8ea91fe0ab9d4b29b588a14906e52082c618d326954e7cc83b3da99b77", - "publishState": "published", + "publishState": "reused", "profile": "v03", "namespace": "hwlab-v03", "healthPath": "/health/live", @@ -110,12 +112,12 @@ "notPublishedReason": null, "buildCreatedAt": "2026-06-12T20:30:23.693Z", "buildSource": "git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB@env:9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", - "buildBackend": "buildkit-env-reuse", + "buildBackend": "reused-env-catalog", "componentCommitId": "56581a4373ef4273583e26e9938112f15fea15d6", "componentInputHash": "2222ac86ab645ddbf375d46f48b76625914cad5e6d2c3b2d0d51ca2cbc7ac16c", "runtimeMode": "env-reuse-git-mirror-checkout", "envReuse": true, - "envChanged": true, + "envChanged": false, "codeChanged": false, "environmentImage": "127.0.0.1:5000/hwlab/hwlab-cloud-web-env:env-9495896df918", "environmentDigest": "sha256:eadedd8ea91fe0ab9d4b29b588a14906e52082c618d326954e7cc83b3da99b77", @@ -143,15 +145,17 @@ "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", "baseImageDigest": null, "buildArgsHash": "39effb18af665e5e286cca9f84ef2a30f577ad11c9acca098589b7ee37f6950c", - "ciAffected": true, + "ciAffected": false, "ciReason": [ - "reuse-registry-missing" + "gitops-only-no-image-build" ], "reuse": { - "status": "not-reused", - "reason": "environment-affected" + "status": "ready", + "image": "127.0.0.1:5000/hwlab/hwlab-cloud-web-env:env-9495896df918", + "digest": "sha256:eadedd8ea91fe0ab9d4b29b588a14906e52082c618d326954e7cc83b3da99b77", + "reusedFrom": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, - "reusedFrom": "cc508eb657a455c738b9f2477b1d669af6163fa4863b400e371716b9f3ee39af" + "reusedFrom": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, { "serviceId": "hwlab-gateway", @@ -160,7 +164,7 @@ "image": "127.0.0.1:5000/hwlab/hwlab-gateway-env:env-9495896df918", "imageTag": "env-9495896df918", "digest": "sha256:e9b1dfdf18605498917a34dd0c71c6d5d1b91ef4ae073c5c21e2d5480b63abc8", - "publishState": "published", + "publishState": "reused", "profile": "v03", "namespace": "hwlab-v03", "healthPath": "/health/live", @@ -171,12 +175,12 @@ "notPublishedReason": null, "buildCreatedAt": "2026-06-12T20:30:18.928Z", "buildSource": "git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB@env:9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", - "buildBackend": "buildkit-env-reuse", + "buildBackend": "reused-env-catalog", "componentCommitId": "56581a4373ef4273583e26e9938112f15fea15d6", "componentInputHash": "5bce8935993559e2e6516171fe8fab213eb288e4a7de7337473e74fa13b687b9", "runtimeMode": "env-reuse-git-mirror-checkout", "envReuse": true, - "envChanged": true, + "envChanged": false, "codeChanged": false, "environmentImage": "127.0.0.1:5000/hwlab/hwlab-gateway-env:env-9495896df918", "environmentDigest": "sha256:e9b1dfdf18605498917a34dd0c71c6d5d1b91ef4ae073c5c21e2d5480b63abc8", @@ -204,15 +208,17 @@ "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", "baseImageDigest": null, "buildArgsHash": "3fed509f00ba3448138a999f51dad3d38b822bb4a5c152011e3e57526972fd41", - "ciAffected": true, + "ciAffected": false, "ciReason": [ - "reuse-registry-missing" + "gitops-only-no-image-build" ], "reuse": { - "status": "not-reused", - "reason": "environment-affected" + "status": "ready", + "image": "127.0.0.1:5000/hwlab/hwlab-gateway-env:env-9495896df918", + "digest": "sha256:e9b1dfdf18605498917a34dd0c71c6d5d1b91ef4ae073c5c21e2d5480b63abc8", + "reusedFrom": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, - "reusedFrom": "cc508eb657a455c738b9f2477b1d669af6163fa4863b400e371716b9f3ee39af" + "reusedFrom": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, { "serviceId": "hwlab-edge-proxy", @@ -221,7 +227,7 @@ "image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy-env:env-9495896df918", "imageTag": "env-9495896df918", "digest": "sha256:07e80adfbe753d88fb4037c21623badb7dad0d0c640121d16798ec121af06aa7", - "publishState": "published", + "publishState": "reused", "profile": "v03", "namespace": "hwlab-v03", "healthPath": "/health/live", @@ -232,12 +238,12 @@ "notPublishedReason": null, "buildCreatedAt": "2026-06-12T20:30:19.877Z", "buildSource": "git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB@env:9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", - "buildBackend": "buildkit-env-reuse", + "buildBackend": "reused-env-catalog", "componentCommitId": "56581a4373ef4273583e26e9938112f15fea15d6", "componentInputHash": "c0868e6f94cc7ddc1169bfccff149ced4d1db11ae64a58aefc570123e03a4f1d", "runtimeMode": "env-reuse-git-mirror-checkout", "envReuse": true, - "envChanged": true, + "envChanged": false, "codeChanged": false, "environmentImage": "127.0.0.1:5000/hwlab/hwlab-edge-proxy-env:env-9495896df918", "environmentDigest": "sha256:07e80adfbe753d88fb4037c21623badb7dad0d0c640121d16798ec121af06aa7", @@ -265,15 +271,17 @@ "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", "baseImageDigest": null, "buildArgsHash": "8ff027eecc22049f7a368c9d01ccdcff523b860538d1c284d01068a67395f8e7", - "ciAffected": true, + "ciAffected": false, "ciReason": [ - "reuse-registry-missing" + "gitops-only-no-image-build" ], "reuse": { - "status": "not-reused", - "reason": "environment-affected" + "status": "ready", + "image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy-env:env-9495896df918", + "digest": "sha256:07e80adfbe753d88fb4037c21623badb7dad0d0c640121d16798ec121af06aa7", + "reusedFrom": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, - "reusedFrom": "cc508eb657a455c738b9f2477b1d669af6163fa4863b400e371716b9f3ee39af" + "reusedFrom": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, { "serviceId": "hwlab-agent-skills", @@ -282,7 +290,7 @@ "image": "127.0.0.1:5000/hwlab/hwlab-agent-skills-env:env-9495896df918", "imageTag": "env-9495896df918", "digest": "sha256:ca8137d03351c8f9fd32a6b73ffec321a168c6af23d4d2503b5129906dd42480", - "publishState": "published", + "publishState": "reused", "profile": "v03", "namespace": "hwlab-v03", "healthPath": "/health/live", @@ -293,12 +301,12 @@ "notPublishedReason": null, "buildCreatedAt": "2026-06-12T20:30:19.907Z", "buildSource": "git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/HWLAB@env:9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", - "buildBackend": "buildkit-env-reuse", + "buildBackend": "reused-env-catalog", "componentCommitId": "56581a4373ef4273583e26e9938112f15fea15d6", "componentInputHash": "c65de456af26be9fe655c549fbbd2070d8bcc7fcf227d1c6f8b94b10df18c42d", "runtimeMode": "env-reuse-git-mirror-checkout", "envReuse": true, - "envChanged": true, + "envChanged": false, "codeChanged": false, "environmentImage": "127.0.0.1:5000/hwlab/hwlab-agent-skills-env:env-9495896df918", "environmentDigest": "sha256:ca8137d03351c8f9fd32a6b73ffec321a168c6af23d4d2503b5129906dd42480", @@ -326,15 +334,17 @@ "baseImageReference": "127.0.0.1:5000/hwlab/hwlab-node20-base:20-bookworm-slim", "baseImageDigest": null, "buildArgsHash": "d5e50a18e70c6a8b4896e527fa07b5dd2c85458ed9ef512c1d46775ef4e40a10", - "ciAffected": true, + "ciAffected": false, "ciReason": [ - "reuse-registry-missing" + "gitops-only-no-image-build" ], "reuse": { - "status": "not-reused", - "reason": "environment-affected" + "status": "ready", + "image": "127.0.0.1:5000/hwlab/hwlab-agent-skills-env:env-9495896df918", + "digest": "sha256:ca8137d03351c8f9fd32a6b73ffec321a168c6af23d4d2503b5129906dd42480", + "reusedFrom": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, - "reusedFrom": "cc508eb657a455c738b9f2477b1d669af6163fa4863b400e371716b9f3ee39af" + "reusedFrom": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" } ], "serviceInventory": { diff --git a/deploy/gitops/node/d601/runtime-v03/deepseek-proxy.yaml b/deploy/gitops/node/d601/runtime-v03/deepseek-proxy.yaml index db159b82..b7096f32 100644 --- a/deploy/gitops/node/d601/runtime-v03/deepseek-proxy.yaml +++ b/deploy/gitops/node/d601/runtime-v03/deepseek-proxy.yaml @@ -14,7 +14,7 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/gitops-target": "v03", "hwlab.pikastech.local/service-id": "hwlab-deepseek-proxy", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "hwlab.pikastech.local/monitoring": "enabled" } }, @@ -34,22 +34,22 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/gitops-target": "v03", "hwlab.pikastech.local/service-id": "hwlab-deepseek-proxy", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/moonbridge-source-ref": "1b99888d3dae889b79ee602cb875c7907f7e76f2", "hwlab.pikastech.local/bridge-service-id": "hwlab-cloud-api", - "hwlab.pikastech.local/source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", - "hwlab.pikastech.local/bridge-source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", - "hwlab.pikastech.local/bridge-image-tag": "env-b0c5874f30a9", - "hwlab.pikastech.local/bridge-image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d", + "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/bridge-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/bridge-image-tag": "env-9495896df918", + "hwlab.pikastech.local/bridge-image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb", "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/bridge-runtime-mode": "env-reuse-git-mirror-checkout", "hwlab.pikastech.local/bridge-boot-repo": "git@github.com:pikasTech/HWLAB.git", - "hwlab.pikastech.local/bridge-boot-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/bridge-boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/bridge-boot-sh": "deploy/runtime/boot/hwlab-deepseek-responses-bridge.sh", - "hwlab.pikastech.local/bridge-environment-digest": "sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d" + "hwlab.pikastech.local/bridge-environment-digest": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" } }, "spec": { @@ -67,31 +67,31 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/gitops-target": "v03", "hwlab.pikastech.local/service-id": "hwlab-deepseek-proxy", - "hwlab.pikastech.local/source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/bridge-source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/bridge-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/bridge-runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/bridge-boot-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "hwlab.pikastech.local/bridge-boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486" }, "annotations": { "hwlab.pikastech.local/bridge-service-id": "hwlab-cloud-api", - "hwlab.pikastech.local/source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", - "hwlab.pikastech.local/bridge-source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", - "hwlab.pikastech.local/bridge-image-tag": "env-b0c5874f30a9", - "hwlab.pikastech.local/bridge-image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d", + "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/bridge-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/bridge-image-tag": "env-9495896df918", + "hwlab.pikastech.local/bridge-image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb", "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", "hwlab.pikastech.local/bridge-runtime-mode": "env-reuse-git-mirror-checkout", "hwlab.pikastech.local/bridge-boot-repo": "git@github.com:pikasTech/HWLAB.git", - "hwlab.pikastech.local/bridge-boot-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/bridge-boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/bridge-boot-sh": "deploy/runtime/boot/hwlab-deepseek-responses-bridge.sh", - "hwlab.pikastech.local/bridge-environment-digest": "sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d" + "hwlab.pikastech.local/bridge-environment-digest": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" } }, "spec": { "initContainers": [ { "name": "moonbridge-config", - "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d", + "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb", "imagePullPolicy": "IfNotPresent", "command": [ "/bin/sh", @@ -136,7 +136,7 @@ "containers": [ { "name": "responses-bridge", - "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d", + "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb", "imagePullPolicy": "IfNotPresent", "env": [ { @@ -145,15 +145,15 @@ }, { "name": "HWLAB_COMMIT_ID", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d" + "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" }, { "name": "HWLAB_IMAGE_TAG", - "value": "env-b0c5874f30a9" + "value": "env-9495896df918" }, { "name": "HWLAB_DEEPSEEK_BRIDGE_UPSTREAM", @@ -173,7 +173,7 @@ }, { "name": "HWLAB_BOOT_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_BOOT_REF", @@ -189,15 +189,15 @@ }, { "name": "HWLAB_ENVIRONMENT_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env:env-b0c5874f30a9" + "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env:env-9495896df918" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", - "value": "sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d" + "value": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", - "value": "b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050" + "value": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, { "name": "HWLAB_CODE_INPUT_HASH", @@ -205,7 +205,7 @@ }, { "name": "HWLAB_IMAGE_DIGEST", - "value": "sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d" + "value": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" } ], "ports": [ @@ -229,6 +229,17 @@ }, "initialDelaySeconds": 20, "periodSeconds": 20 + }, + "startupProbe": { + "httpGet": { + "path": "/health/readiness", + "port": "http" + }, + "initialDelaySeconds": 10, + "periodSeconds": 10, + "timeoutSeconds": 2, + "failureThreshold": 30, + "successThreshold": 1 } }, { @@ -376,7 +387,7 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/gitops-target": "v03", "hwlab.pikastech.local/service-id": "hwlab-deepseek-proxy", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "hwlab.pikastech.local/monitoring": "enabled" } }, diff --git a/deploy/gitops/node/d601/runtime-v03/external-postgres.yaml b/deploy/gitops/node/d601/runtime-v03/external-postgres.yaml index 8a4b22ea..92afb9c2 100644 --- a/deploy/gitops/node/d601/runtime-v03/external-postgres.yaml +++ b/deploy/gitops/node/d601/runtime-v03/external-postgres.yaml @@ -1,51 +1,37 @@ -apiVersion: v1 -kind: List -items: - - apiVersion: v1 - kind: Service - metadata: - name: pk01-platform-postgres - namespace: hwlab-v03 - labels: - app.kubernetes.io/name: pk01-platform-postgres - app.kubernetes.io/part-of: hwlab - hwlab.pikastech.local/component: platform-db-bridge - hwlab.pikastech.local/environment: v03 - hwlab.pikastech.local/gitops-target: v03 - hwlab.pikastech.local/profile: v03 - hwlab.pikastech.local/source-commit: f3e0ad796126da7a7721b538936c971b824c2486 - annotations: - hwlab.pikastech.local/rendered-by: scripts/gitops-render.mjs - spec: - type: ClusterIP - ports: - - name: postgres - port: 5432 - targetPort: 5432 - protocol: TCP - - apiVersion: discovery.k8s.io/v1 - kind: EndpointSlice - metadata: - name: pk01-platform-postgres-host - namespace: hwlab-v03 - labels: - app.kubernetes.io/name: pk01-platform-postgres - app.kubernetes.io/part-of: hwlab - hwlab.pikastech.local/component: platform-db-bridge - hwlab.pikastech.local/environment: v03 - hwlab.pikastech.local/gitops-target: v03 - hwlab.pikastech.local/profile: v03 - hwlab.pikastech.local/source-commit: f3e0ad796126da7a7721b538936c971b824c2486 - kubernetes.io/service-name: pk01-platform-postgres - annotations: - hwlab.pikastech.local/rendered-by: scripts/gitops-render.mjs - addressType: IPv4 - ports: - - name: postgres - port: 5432 - protocol: TCP - endpoints: - - addresses: - - 82.156.23.220 - conditions: - ready: true +{ + "apiVersion": "v1", + "kind": "List", + "items": [ + { + "apiVersion": "v1", + "kind": "Service", + "metadata": { + "name": "g14-platform-postgres", + "namespace": "hwlab-v03", + "labels": { + "app.kubernetes.io/name": "g14-platform-postgres", + "app.kubernetes.io/part-of": "hwlab", + "hwlab.pikastech.local/component": "platform-db-bridge", + "hwlab.pikastech.local/environment": "v03", + "hwlab.pikastech.local/gitops-target": "v03", + "hwlab.pikastech.local/profile": "v03", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad" + }, + "annotations": { + "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs" + } + }, + "spec": { + "type": "ClusterIP", + "ports": [ + { + "name": "postgres", + "port": 5432, + "targetPort": 5432, + "protocol": "TCP" + } + ] + } + } + ] +} diff --git a/deploy/gitops/node/d601/runtime-v03/health-contract.yaml b/deploy/gitops/node/d601/runtime-v03/health-contract.yaml index f8593d0b..6f2ab2bf 100644 --- a/deploy/gitops/node/d601/runtime-v03/health-contract.yaml +++ b/deploy/gitops/node/d601/runtime-v03/health-contract.yaml @@ -8,7 +8,7 @@ "app.kubernetes.io/name": "hwlab-v03-health-contract", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "hwlab.pikastech.local/environment": "v03" }, "annotations": { diff --git a/deploy/gitops/node/d601/runtime-v03/kustomization.yaml b/deploy/gitops/node/d601/runtime-v03/kustomization.yaml index fb3ada56..4d8e672a 100644 --- a/deploy/gitops/node/d601/runtime-v03/kustomization.yaml +++ b/deploy/gitops/node/d601/runtime-v03/kustomization.yaml @@ -1,12 +1,16 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: hwlab-v03 -resources: - - namespace.yaml - - services.yaml - - health-contract.yaml - - workloads.yaml - - deepseek-proxy.yaml - - external-postgres.yaml - - openfga.yaml - - node-frpc.yaml +{ + "apiVersion": "kustomize.config.k8s.io/v1beta1", + "kind": "Kustomization", + "namespace": "hwlab-v03", + "resources": [ + "namespace.yaml", + "services.yaml", + "health-contract.yaml", + "workloads.yaml", + "deepseek-proxy.yaml", + "external-postgres.yaml", + "openfga.yaml", + "observability.yaml", + "node-frpc.yaml" + ] +} diff --git a/deploy/gitops/node/d601/runtime-v03/namespace.yaml b/deploy/gitops/node/d601/runtime-v03/namespace.yaml index b0cbca4a..e9d2a8c3 100644 --- a/deploy/gitops/node/d601/runtime-v03/namespace.yaml +++ b/deploy/gitops/node/d601/runtime-v03/namespace.yaml @@ -7,7 +7,7 @@ "app.kubernetes.io/part-of": "hwlab", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "hwlab.pikastech.local/environment": "v03" }, "annotations": { diff --git a/deploy/gitops/node/d601/runtime-v03/node-frpc.yaml b/deploy/gitops/node/d601/runtime-v03/node-frpc.yaml index 1ccc16c7..370fb05d 100644 --- a/deploy/gitops/node/d601/runtime-v03/node-frpc.yaml +++ b/deploy/gitops/node/d601/runtime-v03/node-frpc.yaml @@ -14,7 +14,7 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/gitops-target": "v03", "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486" + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad" } }, "data": { @@ -33,7 +33,7 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/gitops-target": "v03", "hwlab.pikastech.local/profile": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486" + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad" } }, "spec": { @@ -63,7 +63,7 @@ "containers": [ { "name": "frpc", - "image": "fatedier/frpc:v0.68.1", + "image": "127.0.0.1:5000/hwlab/frpc:v0.68.1", "imagePullPolicy": "IfNotPresent", "args": [ "-c", diff --git a/deploy/gitops/node/d601/runtime-v03/observability.yaml b/deploy/gitops/node/d601/runtime-v03/observability.yaml index d32ff6fb..e5cd00f6 100644 --- a/deploy/gitops/node/d601/runtime-v03/observability.yaml +++ b/deploy/gitops/node/d601/runtime-v03/observability.yaml @@ -10,7 +10,7 @@ "namespace": "hwlab-v03", "labels": { "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "app.kubernetes.io/part-of": "hwlab", @@ -23,290 +23,6 @@ "data": { "metrics-sidecar.mjs": "import { createServer, request as httpRequest } from \"node:http\";\nimport { request as httpsRequest } from \"node:https\";\nimport { realpathSync } from \"node:fs\";\nimport { pathToFileURL } from \"node:url\";\n\nconst DEFAULT_PORT = 9100;\nconst DEFAULT_TARGET_TIMEOUT_MS = 2000;\nconst DEFAULT_EXTRA_METRICS_MAX_BYTES = 64 * 1024;\nconst startedAtMs = Date.now();\n\nexport function sanitizeLabelValue(value, fallback = \"unknown\") {\n const text = String(value ?? \"\").trim();\n const sanitized = text.replace(/[^A-Za-z0-9_.:-]/gu, \"_\").slice(0, 120);\n return sanitized || fallback;\n}\n\nexport function escapeLabelValue(value) {\n return String(value ?? \"\").replace(/\\\\/gu, \"\\\\\\\\\").replace(/\\n/gu, \"\\\\n\").replace(/\"/gu, \"\\\\\\\"\");\n}\n\nfunction metricLabels(env) {\n const service = sanitizeLabelValue(env.HWLAB_METRICS_SERVICE_ID || env.HWLAB_SERVICE_ID);\n const namespace = sanitizeLabelValue(env.HWLAB_METRICS_NAMESPACE || env.POD_NAMESPACE || \"hwlab-v02\");\n const gitopsTarget = sanitizeLabelValue(env.HWLAB_METRICS_GITOPS_TARGET || env.HWLAB_GITOPS_TARGET || \"v02\");\n return `service=\"${escapeLabelValue(service)}\",namespace=\"${escapeLabelValue(namespace)}\",gitops_target=\"${escapeLabelValue(gitopsTarget)}\"`;\n}\n\nexport function requestTarget({ targetUrl, timeoutMs = DEFAULT_TARGET_TIMEOUT_MS, collectBody = false, maxBodyBytes = DEFAULT_EXTRA_METRICS_MAX_BYTES } = {}) {\n const configured = typeof targetUrl === \"string\" && targetUrl.trim().length > 0;\n if (!configured) return Promise.resolve({ configured: false, success: false, statusCode: 0, durationSeconds: 0 });\n\n let url;\n try {\n url = new URL(targetUrl);\n } catch {\n return Promise.resolve({ configured: true, success: false, statusCode: 0, durationSeconds: 0 });\n }\n\n const requestImpl = url.protocol === \"https:\" ? httpsRequest : url.protocol === \"http:\" ? httpRequest : null;\n if (!requestImpl) return Promise.resolve({ configured: true, success: false, statusCode: 0, durationSeconds: 0 });\n\n const started = Date.now();\n return new Promise((resolve) => {\n const finish = (result) => resolve({\n configured: true,\n success: false,\n statusCode: 0,\n durationSeconds: (Date.now() - started) / 1000,\n ...result\n });\n const request = requestImpl(url, { method: \"GET\", timeout: timeoutMs }, (response) => {\n const chunks = [];\n let bytes = 0;\n if (collectBody) {\n response.on(\"data\", (chunk) => {\n const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);\n bytes += buffer.length;\n if (bytes <= maxBodyBytes) chunks.push(buffer);\n });\n } else {\n response.resume();\n }\n response.on(\"end\", () => finish({\n success: Boolean(response.statusCode && response.statusCode >= 200 && response.statusCode < 300),\n statusCode: response.statusCode || 0,\n body: collectBody ? Buffer.concat(chunks).toString(\"utf8\") : undefined,\n bodyBytes: collectBody ? Math.min(bytes, maxBodyBytes) : 0,\n truncated: collectBody ? bytes > maxBodyBytes : false\n }));\n });\n request.on(\"timeout\", () => request.destroy());\n request.on(\"error\", () => finish({}));\n request.end();\n });\n}\n\nexport async function probeExtraMetrics({ targetUrl, timeoutMs = DEFAULT_TARGET_TIMEOUT_MS, maxBodyBytes = DEFAULT_EXTRA_METRICS_MAX_BYTES, probeImpl = requestTarget } = {}) {\n const configured = typeof targetUrl === \"string\" && targetUrl.trim().length > 0;\n if (!configured || typeof probeImpl !== \"function\") {\n return { configured: false, success: false, statusCode: 0, durationSeconds: 0, text: \"\" };\n }\n try {\n const result = await probeImpl({ targetUrl, timeoutMs, collectBody: true, maxBodyBytes });\n return {\n configured: true,\n success: Boolean(result.success),\n statusCode: result.statusCode || 0,\n durationSeconds: result.durationSeconds || 0,\n text: result.success ? sanitizeExtraMetricsText(result.body || \"\") : \"\"\n };\n } catch {\n return { configured: true, success: false, statusCode: 0, durationSeconds: 0, text: \"\" };\n }\n}\n\nexport function sanitizeExtraMetricsText(text) {\n const lines = String(text ?? \"\").split(/\\r?\\n/gu);\n return lines.filter((line) => {\n if (!line) return true;\n if (/^#\\s+(?:HELP|TYPE)\\s+hwlab_[A-Za-z_:][A-Za-z0-9_:]*\\b/u.test(line)) return true;\n return /^hwlab_[A-Za-z_:][A-Za-z0-9_:]*(?:\\{[^\\n{}]*\\})?\\s+[-+0-9.eE]+$/u.test(line);\n }).join(\"\\n\");\n}\n\nexport async function probeTarget({ targetUrl, timeoutMs = DEFAULT_TARGET_TIMEOUT_MS, probeImpl = requestTarget } = {}) {\n const configured = typeof targetUrl === \"string\" && targetUrl.trim().length > 0;\n if (!configured || typeof probeImpl !== \"function\") {\n return { configured: false, success: false, statusCode: 0, durationSeconds: 0 };\n }\n try {\n return await probeImpl({ targetUrl, timeoutMs });\n } catch {\n const started = Date.now();\n return { configured: true, success: false, statusCode: 0, durationSeconds: (Date.now() - started) / 1000 };\n }\n}\n\nexport function buildMetricsText({ env = process.env, probe = null, extraMetrics = null, now = Date.now() } = {}) {\n const labels = metricLabels(env);\n const uptimeSeconds = Math.max(0, (now - startedAtMs) / 1000);\n const healthProbe = probe ?? { configured: false, success: false, statusCode: 0, durationSeconds: 0 };\n const extraProbe = extraMetrics ?? { configured: false, success: false, statusCode: 0, durationSeconds: 0, text: \"\" };\n const lines = [\n \"# HELP hwlab_service_up HWLAB metrics sidecar availability.\",\n \"# TYPE hwlab_service_up gauge\",\n `hwlab_service_up{${labels}} 1`,\n \"# HELP hwlab_service_info Static HWLAB service metrics identity without high-cardinality request identifiers.\",\n \"# TYPE hwlab_service_info gauge\",\n `hwlab_service_info{${labels}} 1`,\n \"# HELP hwlab_service_process_uptime_seconds Metrics sidecar process uptime in seconds.\",\n \"# TYPE hwlab_service_process_uptime_seconds gauge\",\n `hwlab_service_process_uptime_seconds{${labels}} ${uptimeSeconds.toFixed(3)}`,\n \"# HELP hwlab_service_health_probe_configured Whether the sidecar has a cluster-local health probe target.\",\n \"# TYPE hwlab_service_health_probe_configured gauge\",\n `hwlab_service_health_probe_configured{${labels}} ${healthProbe.configured ? 1 : 0}`,\n \"# HELP hwlab_service_health_probe_success Whether the most recent cluster-local health probe succeeded.\",\n \"# TYPE hwlab_service_health_probe_success gauge\",\n `hwlab_service_health_probe_success{${labels}} ${healthProbe.success ? 1 : 0}`,\n \"# HELP hwlab_service_health_probe_status_code Most recent cluster-local health probe HTTP status code, or 0 when unavailable.\",\n \"# TYPE hwlab_service_health_probe_status_code gauge\",\n `hwlab_service_health_probe_status_code{${labels}} ${Number.isInteger(healthProbe.statusCode) ? healthProbe.statusCode : 0}`,\n \"# HELP hwlab_service_health_probe_duration_seconds Most recent cluster-local health probe duration in seconds.\",\n \"# TYPE hwlab_service_health_probe_duration_seconds gauge\",\n `hwlab_service_health_probe_duration_seconds{${labels}} ${Number(healthProbe.durationSeconds || 0).toFixed(3)}`,\n \"# HELP hwlab_service_extra_metrics_configured Whether the sidecar has an additional cluster-local metrics target.\",\n \"# TYPE hwlab_service_extra_metrics_configured gauge\",\n `hwlab_service_extra_metrics_configured{${labels}} ${extraProbe.configured ? 1 : 0}`,\n \"# HELP hwlab_service_extra_metrics_success Whether the most recent additional metrics fetch succeeded.\",\n \"# TYPE hwlab_service_extra_metrics_success gauge\",\n `hwlab_service_extra_metrics_success{${labels}} ${extraProbe.success ? 1 : 0}`,\n \"# HELP hwlab_service_extra_metrics_status_code Most recent additional metrics HTTP status code, or 0 when unavailable.\",\n \"# TYPE hwlab_service_extra_metrics_status_code gauge\",\n `hwlab_service_extra_metrics_status_code{${labels}} ${Number.isInteger(extraProbe.statusCode) ? extraProbe.statusCode : 0}`,\n \"# HELP hwlab_service_extra_metrics_duration_seconds Most recent additional metrics fetch duration in seconds.\",\n \"# TYPE hwlab_service_extra_metrics_duration_seconds gauge\",\n `hwlab_service_extra_metrics_duration_seconds{${labels}} ${Number(extraProbe.durationSeconds || 0).toFixed(3)}`,\n \"\"\n ];\n if (extraProbe.text) {\n lines.push(extraProbe.text.trimEnd(), \"\");\n }\n return lines.join(\"\\n\");\n}\n\nfunction sendJson(response, statusCode, body) {\n const payload = JSON.stringify(body) + \"\\n\";\n response.writeHead(statusCode, {\n \"content-type\": \"application/json; charset=utf-8\",\n \"content-length\": Buffer.byteLength(payload)\n });\n response.end(payload);\n}\n\nexport function createMetricsSidecarServer({ env = process.env, probeImpl = requestTarget } = {}) {\n return createServer(async (request, response) => {\n const url = new URL(request.url || \"/\", \"http://hwlab-metrics.local\");\n if (request.method === \"GET\" && (url.pathname === \"/health\" || url.pathname === \"/health/live\")) {\n sendJson(response, 200, {\n serviceId: sanitizeLabelValue(env.HWLAB_METRICS_SERVICE_ID || env.HWLAB_SERVICE_ID),\n status: \"ok\",\n metricsPath: \"/metrics\"\n });\n return;\n }\n if (request.method === \"GET\" && url.pathname === \"/metrics\") {\n const timeoutMs = Number.parseInt(env.HWLAB_METRICS_TARGET_TIMEOUT_MS || \"\", 10) || DEFAULT_TARGET_TIMEOUT_MS;\n const probe = await probeTarget({ targetUrl: env.HWLAB_METRICS_TARGET_URL, timeoutMs, probeImpl });\n const extraTimeoutMs = Number.parseInt(env.HWLAB_METRICS_EXTRA_TIMEOUT_MS || \"\", 10) || DEFAULT_TARGET_TIMEOUT_MS;\n const extraMetrics = await probeExtraMetrics({ targetUrl: env.HWLAB_METRICS_EXTRA_URL, timeoutMs: extraTimeoutMs, probeImpl });\n const payload = buildMetricsText({ env, probe, extraMetrics });\n response.writeHead(200, {\n \"content-type\": \"text/plain; version=0.0.4; charset=utf-8\",\n \"content-length\": Buffer.byteLength(payload)\n });\n response.end(payload);\n return;\n }\n sendJson(response, 404, { error: \"not_found\", path: url.pathname });\n });\n}\n\nexport function startMetricsSidecar({ env = process.env } = {}) {\n const port = Number.parseInt(env.HWLAB_METRICS_PORT || env.PORT || \"\", 10) || DEFAULT_PORT;\n const server = createMetricsSidecarServer({ env });\n server.listen(port, \"0.0.0.0\", () => {\n process.stdout.write(JSON.stringify({ serviceId: env.HWLAB_METRICS_SERVICE_ID || \"hwlab-unknown\", status: \"metrics-listening\", port }) + \"\\n\");\n });\n return server;\n}\n\nexport function isMainModule({ moduleUrl = import.meta.url, argvPath = process.argv[1], realpath = realpathSync } = {}) {\n if (!argvPath) return false;\n if (moduleUrl === pathToFileURL(argvPath).href) return true;\n try {\n return moduleUrl === pathToFileURL(realpath(argvPath)).href;\n } catch {\n return false;\n }\n}\n\nif (isMainModule()) {\n startMetricsSidecar();\n}\n" } - }, - { - "apiVersion": "monitoring.coreos.com/v1", - "kind": "ServiceMonitor", - "metadata": { - "name": "hwlab-v03-hwlab-cloud-api", - "namespace": "hwlab-v03", - "labels": { - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/service-id": "hwlab-cloud-api" - }, - "annotations": { - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs" - } - }, - "spec": { - "namespaceSelector": { - "matchNames": [ - "hwlab-v03" - ] - }, - "selector": { - "matchLabels": { - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/service-id": "hwlab-cloud-api" - } - }, - "targetLabels": [ - "hwlab.pikastech.local/gitops-target", - "hwlab.pikastech.local/service-id" - ], - "endpoints": [ - { - "port": "metrics", - "path": "/metrics", - "interval": "30s", - "scrapeTimeout": "10s" - } - ] - } - }, - { - "apiVersion": "monitoring.coreos.com/v1", - "kind": "ServiceMonitor", - "metadata": { - "name": "hwlab-v03-hwlab-cloud-web", - "namespace": "hwlab-v03", - "labels": { - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/service-id": "hwlab-cloud-web" - }, - "annotations": { - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs" - } - }, - "spec": { - "namespaceSelector": { - "matchNames": [ - "hwlab-v03" - ] - }, - "selector": { - "matchLabels": { - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/service-id": "hwlab-cloud-web" - } - }, - "targetLabels": [ - "hwlab.pikastech.local/gitops-target", - "hwlab.pikastech.local/service-id" - ], - "endpoints": [ - { - "port": "metrics", - "path": "/metrics", - "interval": "30s", - "scrapeTimeout": "10s" - } - ] - } - }, - { - "apiVersion": "monitoring.coreos.com/v1", - "kind": "ServiceMonitor", - "metadata": { - "name": "hwlab-v03-hwlab-edge-proxy", - "namespace": "hwlab-v03", - "labels": { - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/service-id": "hwlab-edge-proxy" - }, - "annotations": { - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs" - } - }, - "spec": { - "namespaceSelector": { - "matchNames": [ - "hwlab-v03" - ] - }, - "selector": { - "matchLabels": { - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/service-id": "hwlab-edge-proxy" - } - }, - "targetLabels": [ - "hwlab.pikastech.local/gitops-target", - "hwlab.pikastech.local/service-id" - ], - "endpoints": [ - { - "port": "metrics", - "path": "/metrics", - "interval": "30s", - "scrapeTimeout": "10s" - } - ] - } - }, - { - "apiVersion": "monitoring.coreos.com/v1", - "kind": "ServiceMonitor", - "metadata": { - "name": "hwlab-v03-hwlab-agent-skills", - "namespace": "hwlab-v03", - "labels": { - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/service-id": "hwlab-agent-skills" - }, - "annotations": { - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs" - } - }, - "spec": { - "namespaceSelector": { - "matchNames": [ - "hwlab-v03" - ] - }, - "selector": { - "matchLabels": { - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/service-id": "hwlab-agent-skills" - } - }, - "targetLabels": [ - "hwlab.pikastech.local/gitops-target", - "hwlab.pikastech.local/service-id" - ], - "endpoints": [ - { - "port": "metrics", - "path": "/metrics", - "interval": "30s", - "scrapeTimeout": "10s" - } - ] - } - }, - { - "apiVersion": "monitoring.coreos.com/v1", - "kind": "ServiceMonitor", - "metadata": { - "name": "hwlab-v03-hwlab-deepseek-proxy", - "namespace": "hwlab-v03", - "labels": { - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/service-id": "hwlab-deepseek-proxy" - }, - "annotations": { - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs" - } - }, - "spec": { - "namespaceSelector": { - "matchNames": [ - "hwlab-v03" - ] - }, - "selector": { - "matchLabels": { - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/monitoring": "enabled", - "hwlab.pikastech.local/service-id": "hwlab-deepseek-proxy" - } - }, - "targetLabels": [ - "hwlab.pikastech.local/gitops-target", - "hwlab.pikastech.local/service-id" - ], - "endpoints": [ - { - "port": "metrics", - "path": "/metrics", - "interval": "30s", - "scrapeTimeout": "10s" - } - ] - } - }, - { - "apiVersion": "monitoring.coreos.com/v1", - "kind": "PrometheusRule", - "metadata": { - "name": "hwlab-v03-observability", - "namespace": "hwlab-v03", - "labels": { - "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", - "hwlab.pikastech.local/environment": "v03", - "hwlab.pikastech.local/profile": "v03", - "app.kubernetes.io/part-of": "hwlab", - "hwlab.pikastech.local/monitoring": "enabled" - }, - "annotations": { - "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs" - } - }, - "spec": { - "groups": [ - { - "name": "hwlab-v03-observability", - "rules": [ - { - "alert": "HWLABV03MetricsTargetDown", - "expr": "up{namespace=\"hwlab-v03\"} == 0", - "for": "5m", - "labels": { - "severity": "warning", - "lane": "v03" - }, - "annotations": { - "summary": "HWLAB v0.3 metrics target is down", - "description": "Prometheus cannot scrape a HWLAB v0.3 metrics target." - } - }, - { - "alert": "HWLABV03ServiceHealthProbeFailed", - "expr": "hwlab_service_health_probe_success{namespace=\"hwlab-v03\"} == 0", - "for": "5m", - "labels": { - "severity": "warning", - "lane": "v03" - }, - "annotations": { - "summary": "HWLAB v0.2 service health probe failed", - "description": "The metrics sidecar cannot reach the service health endpoint inside the pod network." - } - } - ] - } - ] - } } ] } diff --git a/deploy/gitops/node/d601/runtime-v03/openfga.yaml b/deploy/gitops/node/d601/runtime-v03/openfga.yaml index b55d497b..b91d635a 100644 --- a/deploy/gitops/node/d601/runtime-v03/openfga.yaml +++ b/deploy/gitops/node/d601/runtime-v03/openfga.yaml @@ -16,7 +16,7 @@ "hwlab.pikastech.local/gitops-target": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/service-id": "hwlab-openfga", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486" + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad" }, "annotations": { "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", @@ -37,7 +37,7 @@ "hwlab.pikastech.local/gitops-target": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/service-id": "hwlab-openfga", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486" + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad" }, "annotations": { "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs" @@ -113,7 +113,7 @@ "hwlab.pikastech.local/gitops-target": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/service-id": "hwlab-openfga", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486" + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad" }, "annotations": { "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", @@ -137,7 +137,7 @@ "hwlab.pikastech.local/gitops-target": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/service-id": "hwlab-openfga", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486" + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad" }, "annotations": { "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs" @@ -248,7 +248,7 @@ "hwlab.pikastech.local/gitops-target": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/service-id": "hwlab-openfga", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486" + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad" }, "annotations": { "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", diff --git a/deploy/gitops/node/d601/runtime-v03/services.yaml b/deploy/gitops/node/d601/runtime-v03/services.yaml index 5de32d10..83aa5f48 100644 --- a/deploy/gitops/node/d601/runtime-v03/services.yaml +++ b/deploy/gitops/node/d601/runtime-v03/services.yaml @@ -12,7 +12,7 @@ "app.kubernetes.io/name": "hwlab-cloud-api", "hwlab.pikastech.local/service-id": "hwlab-cloud-api", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/monitoring": "enabled" @@ -50,7 +50,7 @@ "app.kubernetes.io/name": "hwlab-cloud-web", "hwlab.pikastech.local/service-id": "hwlab-cloud-web", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/monitoring": "enabled" @@ -89,7 +89,7 @@ "hwlab.pikastech.local/service-id": "hwlab-gateway", "hwlab.pikastech.local/activation": "manual", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03" }, @@ -121,7 +121,7 @@ "app.kubernetes.io/name": "hwlab-agent-skills", "hwlab.pikastech.local/service-id": "hwlab-agent-skills", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/monitoring": "enabled" @@ -159,7 +159,7 @@ "app.kubernetes.io/name": "hwlab-edge-proxy", "hwlab.pikastech.local/service-id": "hwlab-edge-proxy", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/monitoring": "enabled" diff --git a/deploy/gitops/node/d601/runtime-v03/workloads.yaml b/deploy/gitops/node/d601/runtime-v03/workloads.yaml index 081fe13c..50b9418e 100644 --- a/deploy/gitops/node/d601/runtime-v03/workloads.yaml +++ b/deploy/gitops/node/d601/runtime-v03/workloads.yaml @@ -13,14 +13,14 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "unidesk.ai/node-staging": "false" }, "name": "hwlab-user-skills", "namespace": "hwlab-v03", "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486" + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad" } }, "spec": { @@ -47,13 +47,13 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486" + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad" } }, "spec": { @@ -78,23 +78,23 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", - "hwlab.pikastech.local/artifact-source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", - "hwlab.pikastech.local/source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", - "hwlab.pikastech.local/artifact-source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", - "hwlab.pikastech.local/boot-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-cloud-api.sh", - "hwlab.pikastech.local/environment-digest": "sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d", - "hwlab.pikastech.local/environment-input-hash": "b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050", + "hwlab.pikastech.local/environment-digest": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb", + "hwlab.pikastech.local/environment-input-hash": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", "hwlab.pikastech.local/code-input-hash": "e2d48031bdb318a3bf175c7eb33c62963c94aaebe20d15445b3a4690bfb2530e" } }, @@ -103,7 +103,7 @@ "containers": [ { "name": "hwlab-cloud-api", - "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d", + "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb", "ports": [ { "name": "http", @@ -125,15 +125,15 @@ }, { "name": "HWLAB_COMMIT_ID", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d" + "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" }, { "name": "HWLAB_IMAGE_TAG", - "value": "env-b0c5874f30a9" + "value": "env-9495896df918" }, { "name": "HWLAB_RUNTIME_SUBSTITUTE_FORBIDDEN", @@ -309,11 +309,11 @@ }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_SOURCE_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_RUNTIME_MODE", @@ -325,7 +325,7 @@ }, { "name": "HWLAB_BOOT_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_BOOT_REF", @@ -341,15 +341,15 @@ }, { "name": "HWLAB_ENVIRONMENT_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env:env-b0c5874f30a9" + "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env:env-9495896df918" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", - "value": "sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d" + "value": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", - "value": "b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050" + "value": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, { "name": "HWLAB_CODE_INPUT_HASH", @@ -357,11 +357,11 @@ }, { "name": "HWLAB_IMAGE_DIGEST", - "value": "sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d" + "value": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID", - "value": "D601" + "value": "G14" }, { "name": "HWLAB_OPENFGA_MODE", @@ -404,11 +404,21 @@ "mountPath": "/data/user-skills" } ], - "imagePullPolicy": "IfNotPresent" + "imagePullPolicy": "IfNotPresent", + "startupProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2, + "failureThreshold": 30, + "successThreshold": 1 + } }, { "name": "hwlab-codex-api-forwarder", - "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d", + "image": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb", "ports": [ { "name": "codex-api", @@ -598,15 +608,15 @@ }, { "name": "HWLAB_COMMIT_ID", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d" + "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env@sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" }, { "name": "HWLAB_IMAGE_TAG", - "value": "env-b0c5874f30a9" + "value": "env-9495896df918" }, { "name": "HWLAB_GITOPS_TARGET", @@ -618,11 +628,11 @@ }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_SOURCE_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_RUNTIME_MODE", @@ -634,7 +644,7 @@ }, { "name": "HWLAB_BOOT_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_BOOT_REF", @@ -650,15 +660,15 @@ }, { "name": "HWLAB_ENVIRONMENT_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env:env-b0c5874f30a9" + "value": "127.0.0.1:5000/hwlab/hwlab-cloud-api-env:env-9495896df918" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", - "value": "sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d" + "value": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", - "value": "b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050" + "value": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, { "name": "HWLAB_CODE_INPUT_HASH", @@ -666,11 +676,11 @@ }, { "name": "HWLAB_IMAGE_DIGEST", - "value": "sha256:4291c2884e03a7895e2be1f6a5e5b929f3e09fe91da243f5c463ef692377d33d" + "value": "sha256:bf29c6a72e12f599973c51da86cde12ae501fe7c998d95f1d3fde02e54be5ecb" }, { "name": "HWLAB_CODE_AGENT_AGENTRUN_PROVIDER_ID", - "value": "D601" + "value": "G14" }, { "name": "HWLAB_OPENFGA_MODE", @@ -716,7 +726,20 @@ "timeoutSeconds": 2 }, "volumeMounts": [], - "imagePullPolicy": "IfNotPresent" + "imagePullPolicy": "IfNotPresent", + "startupProbe": { + "exec": { + "command": [ + "node", + "-e", + "fetch('http://127.0.0.1:49280/health/readiness').then((response) => process.exit(response.ok ? 0 : 1)).catch(() => process.exit(1))" + ] + }, + "timeoutSeconds": 2, + "periodSeconds": 10, + "failureThreshold": 30, + "successThreshold": 1 + } }, { "name": "hwlab-metrics", @@ -822,13 +845,13 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486" + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad" } }, "spec": { @@ -850,23 +873,23 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", - "hwlab.pikastech.local/artifact-source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", - "hwlab.pikastech.local/source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", - "hwlab.pikastech.local/artifact-source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", - "hwlab.pikastech.local/boot-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-cloud-web.sh", - "hwlab.pikastech.local/environment-digest": "sha256:a53c710c92c5253c1feca456294058c6a1e45ff6b6e0440ebc0794ad24e4337c", - "hwlab.pikastech.local/environment-input-hash": "b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050", + "hwlab.pikastech.local/environment-digest": "sha256:eadedd8ea91fe0ab9d4b29b588a14906e52082c618d326954e7cc83b3da99b77", + "hwlab.pikastech.local/environment-input-hash": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", "hwlab.pikastech.local/code-input-hash": "fc88b16995fd65a887e8840762cfa656058fc4f5a8f099ec7762354b70918985" } }, @@ -874,7 +897,7 @@ "containers": [ { "name": "hwlab-cloud-web", - "image": "127.0.0.1:5000/hwlab/hwlab-cloud-web-env@sha256:a53c710c92c5253c1feca456294058c6a1e45ff6b6e0440ebc0794ad24e4337c", + "image": "127.0.0.1:5000/hwlab/hwlab-cloud-web-env@sha256:eadedd8ea91fe0ab9d4b29b588a14906e52082c618d326954e7cc83b3da99b77", "ports": [ { "name": "http", @@ -892,15 +915,15 @@ }, { "name": "HWLAB_COMMIT_ID", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-cloud-web-env@sha256:a53c710c92c5253c1feca456294058c6a1e45ff6b6e0440ebc0794ad24e4337c" + "value": "127.0.0.1:5000/hwlab/hwlab-cloud-web-env@sha256:eadedd8ea91fe0ab9d4b29b588a14906e52082c618d326954e7cc83b3da99b77" }, { "name": "HWLAB_IMAGE_TAG", - "value": "env-b0c5874f30a9" + "value": "env-9495896df918" }, { "name": "HWLAB_ENVIRONMENT", @@ -916,7 +939,7 @@ }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_RUNTIME_MODE", @@ -928,7 +951,7 @@ }, { "name": "HWLAB_BOOT_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_BOOT_REF", @@ -944,15 +967,15 @@ }, { "name": "HWLAB_ENVIRONMENT_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-cloud-web-env:env-b0c5874f30a9" + "value": "127.0.0.1:5000/hwlab/hwlab-cloud-web-env:env-9495896df918" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", - "value": "sha256:a53c710c92c5253c1feca456294058c6a1e45ff6b6e0440ebc0794ad24e4337c" + "value": "sha256:eadedd8ea91fe0ab9d4b29b588a14906e52082c618d326954e7cc83b3da99b77" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", - "value": "b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050" + "value": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, { "name": "HWLAB_CODE_INPUT_HASH", @@ -960,7 +983,7 @@ }, { "name": "HWLAB_IMAGE_DIGEST", - "value": "sha256:a53c710c92c5253c1feca456294058c6a1e45ff6b6e0440ebc0794ad24e4337c" + "value": "sha256:eadedd8ea91fe0ab9d4b29b588a14906e52082c618d326954e7cc83b3da99b77" }, { "name": "HWLAB_PUBLIC_ENDPOINT", @@ -979,7 +1002,17 @@ "port": "http" } }, - "imagePullPolicy": "IfNotPresent" + "imagePullPolicy": "IfNotPresent", + "startupProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2, + "failureThreshold": 30, + "successThreshold": 1 + } }, { "name": "hwlab-metrics", @@ -1072,12 +1105,12 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "unidesk.ai/node-staging": "false" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486" + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad" } }, "spec": { @@ -1099,21 +1132,21 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", - "hwlab.pikastech.local/artifact-source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486" }, "annotations": { - "hwlab.pikastech.local/source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", - "hwlab.pikastech.local/artifact-source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", - "hwlab.pikastech.local/boot-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-gateway.sh", - "hwlab.pikastech.local/environment-digest": "sha256:30aabe46d235788ebd7c59258f8b47217a6e79a9b1360a765db10d7f85fef1f3", - "hwlab.pikastech.local/environment-input-hash": "b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050", + "hwlab.pikastech.local/environment-digest": "sha256:e9b1dfdf18605498917a34dd0c71c6d5d1b91ef4ae073c5c21e2d5480b63abc8", + "hwlab.pikastech.local/environment-input-hash": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", "hwlab.pikastech.local/code-input-hash": "9693556c71091e3e85d61efc6ef7d62e1064fba145ec83b3b9c196477f0b2870" } }, @@ -1121,7 +1154,7 @@ "containers": [ { "name": "hwlab-gateway", - "image": "127.0.0.1:5000/hwlab/hwlab-gateway-env@sha256:30aabe46d235788ebd7c59258f8b47217a6e79a9b1360a765db10d7f85fef1f3", + "image": "127.0.0.1:5000/hwlab/hwlab-gateway-env@sha256:e9b1dfdf18605498917a34dd0c71c6d5d1b91ef4ae073c5c21e2d5480b63abc8", "ports": [ { "name": "http", @@ -1139,15 +1172,15 @@ }, { "name": "HWLAB_COMMIT_ID", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-gateway-env@sha256:30aabe46d235788ebd7c59258f8b47217a6e79a9b1360a765db10d7f85fef1f3" + "value": "127.0.0.1:5000/hwlab/hwlab-gateway-env@sha256:e9b1dfdf18605498917a34dd0c71c6d5d1b91ef4ae073c5c21e2d5480b63abc8" }, { "name": "HWLAB_IMAGE_TAG", - "value": "env-b0c5874f30a9" + "value": "env-9495896df918" }, { "name": "HWLAB_GITOPS_TARGET", @@ -1159,7 +1192,7 @@ }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_RUNTIME_MODE", @@ -1171,7 +1204,7 @@ }, { "name": "HWLAB_BOOT_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_BOOT_REF", @@ -1187,15 +1220,15 @@ }, { "name": "HWLAB_ENVIRONMENT_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-gateway-env:env-b0c5874f30a9" + "value": "127.0.0.1:5000/hwlab/hwlab-gateway-env:env-9495896df918" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", - "value": "sha256:30aabe46d235788ebd7c59258f8b47217a6e79a9b1360a765db10d7f85fef1f3" + "value": "sha256:e9b1dfdf18605498917a34dd0c71c6d5d1b91ef4ae073c5c21e2d5480b63abc8" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", - "value": "b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050" + "value": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, { "name": "HWLAB_CODE_INPUT_HASH", @@ -1203,7 +1236,7 @@ }, { "name": "HWLAB_IMAGE_DIGEST", - "value": "sha256:30aabe46d235788ebd7c59258f8b47217a6e79a9b1360a765db10d7f85fef1f3" + "value": "sha256:e9b1dfdf18605498917a34dd0c71c6d5d1b91ef4ae073c5c21e2d5480b63abc8" } ], "readinessProbe": { @@ -1218,7 +1251,17 @@ "port": "http" } }, - "imagePullPolicy": "IfNotPresent" + "imagePullPolicy": "IfNotPresent", + "startupProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2, + "failureThreshold": 30, + "successThreshold": 1 + } } ] } @@ -1238,13 +1281,13 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486" + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad" } }, "spec": { @@ -1266,23 +1309,23 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", - "hwlab.pikastech.local/artifact-source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", - "hwlab.pikastech.local/source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", - "hwlab.pikastech.local/artifact-source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", - "hwlab.pikastech.local/boot-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-edge-proxy.sh", - "hwlab.pikastech.local/environment-digest": "sha256:0679fba942cb6b4580fb5dc1d24f6e37942a333c98050d262a41dffa4f82fe6a", - "hwlab.pikastech.local/environment-input-hash": "b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050", + "hwlab.pikastech.local/environment-digest": "sha256:07e80adfbe753d88fb4037c21623badb7dad0d0c640121d16798ec121af06aa7", + "hwlab.pikastech.local/environment-input-hash": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", "hwlab.pikastech.local/code-input-hash": "feaa7c30c37eb42248165bd2f574362dc91908d531d79f4211733b32929b1fa6" } }, @@ -1290,7 +1333,7 @@ "containers": [ { "name": "hwlab-edge-proxy", - "image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy-env@sha256:0679fba942cb6b4580fb5dc1d24f6e37942a333c98050d262a41dffa4f82fe6a", + "image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy-env@sha256:07e80adfbe753d88fb4037c21623badb7dad0d0c640121d16798ec121af06aa7", "ports": [ { "name": "http", @@ -1316,15 +1359,15 @@ }, { "name": "HWLAB_COMMIT_ID", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-edge-proxy-env@sha256:0679fba942cb6b4580fb5dc1d24f6e37942a333c98050d262a41dffa4f82fe6a" + "value": "127.0.0.1:5000/hwlab/hwlab-edge-proxy-env@sha256:07e80adfbe753d88fb4037c21623badb7dad0d0c640121d16798ec121af06aa7" }, { "name": "HWLAB_IMAGE_TAG", - "value": "env-b0c5874f30a9" + "value": "env-9495896df918" }, { "name": "HWLAB_GITOPS_TARGET", @@ -1336,7 +1379,7 @@ }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_RUNTIME_MODE", @@ -1348,7 +1391,7 @@ }, { "name": "HWLAB_BOOT_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_BOOT_REF", @@ -1364,15 +1407,15 @@ }, { "name": "HWLAB_ENVIRONMENT_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-edge-proxy-env:env-b0c5874f30a9" + "value": "127.0.0.1:5000/hwlab/hwlab-edge-proxy-env:env-9495896df918" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", - "value": "sha256:0679fba942cb6b4580fb5dc1d24f6e37942a333c98050d262a41dffa4f82fe6a" + "value": "sha256:07e80adfbe753d88fb4037c21623badb7dad0d0c640121d16798ec121af06aa7" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", - "value": "b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050" + "value": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, { "name": "HWLAB_CODE_INPUT_HASH", @@ -1380,7 +1423,7 @@ }, { "name": "HWLAB_IMAGE_DIGEST", - "value": "sha256:0679fba942cb6b4580fb5dc1d24f6e37942a333c98050d262a41dffa4f82fe6a" + "value": "sha256:07e80adfbe753d88fb4037c21623badb7dad0d0c640121d16798ec121af06aa7" }, { "name": "HWLAB_PUBLIC_ENDPOINT", @@ -1399,7 +1442,17 @@ "port": "http" } }, - "imagePullPolicy": "IfNotPresent" + "imagePullPolicy": "IfNotPresent", + "startupProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2, + "failureThreshold": 30, + "successThreshold": 1 + } }, { "name": "hwlab-metrics", @@ -1491,13 +1544,13 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad", "unidesk.ai/node-staging": "false", "hwlab.pikastech.local/monitoring": "enabled" }, "annotations": { "hwlab.pikastech.local/gitops-note": "node DEV GitOps target.", - "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486" + "hwlab.pikastech.local/source-commit": "8969bdd1e4d8ddf7372fa1ce98c386e80740fcad" } }, "spec": { @@ -1519,23 +1572,23 @@ "hwlab.pikastech.local/environment": "v03", "hwlab.pikastech.local/profile": "v03", "hwlab.pikastech.local/gitops-target": "v03", - "hwlab.pikastech.local/source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", - "hwlab.pikastech.local/artifact-source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/monitoring": "enabled", "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", - "hwlab.pikastech.local/boot-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486" }, "annotations": { "hwlab.pikastech.local/metrics-sidecar-sha256": "782e26256b5a5cddff52a165a0eb5f852973eee1aac1b19acac4a313db7968f4", - "hwlab.pikastech.local/source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", - "hwlab.pikastech.local/artifact-source-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", + "hwlab.pikastech.local/artifact-source-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/rendered-by": "scripts/gitops-render.mjs", "hwlab.pikastech.local/runtime-mode": "env-reuse-git-mirror-checkout", "hwlab.pikastech.local/boot-repo": "git@github.com:pikasTech/HWLAB.git", - "hwlab.pikastech.local/boot-commit": "e1566e22c882b98de00041fafccffa2ffdc02ee6", + "hwlab.pikastech.local/boot-commit": "f3e0ad796126da7a7721b538936c971b824c2486", "hwlab.pikastech.local/boot-sh": "deploy/runtime/boot/hwlab-agent-skills.sh", - "hwlab.pikastech.local/environment-digest": "sha256:f5e71b0e02756f25ea1e82c36dc34aa79caeb17e25d222e94f1be44106b19664", - "hwlab.pikastech.local/environment-input-hash": "b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050", + "hwlab.pikastech.local/environment-digest": "sha256:ca8137d03351c8f9fd32a6b73ffec321a168c6af23d4d2503b5129906dd42480", + "hwlab.pikastech.local/environment-input-hash": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a", "hwlab.pikastech.local/code-input-hash": "369ca524ae4010fb5d9adfd30b4290808a035804b4674755bc193fee743f3d5a" } }, @@ -1543,7 +1596,7 @@ "containers": [ { "name": "hwlab-agent-skills", - "image": "127.0.0.1:5000/hwlab/hwlab-agent-skills-env@sha256:f5e71b0e02756f25ea1e82c36dc34aa79caeb17e25d222e94f1be44106b19664", + "image": "127.0.0.1:5000/hwlab/hwlab-agent-skills-env@sha256:ca8137d03351c8f9fd32a6b73ffec321a168c6af23d4d2503b5129906dd42480", "ports": [ { "name": "http", @@ -1553,7 +1606,7 @@ "env": [ { "name": "HWLAB_SKILLS_COMMIT_ID", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_ENVIRONMENT", @@ -1561,15 +1614,15 @@ }, { "name": "HWLAB_COMMIT_ID", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-agent-skills-env@sha256:f5e71b0e02756f25ea1e82c36dc34aa79caeb17e25d222e94f1be44106b19664" + "value": "127.0.0.1:5000/hwlab/hwlab-agent-skills-env@sha256:ca8137d03351c8f9fd32a6b73ffec321a168c6af23d4d2503b5129906dd42480" }, { "name": "HWLAB_IMAGE_TAG", - "value": "env-b0c5874f30a9" + "value": "env-9495896df918" }, { "name": "HWLAB_GITOPS_TARGET", @@ -1581,7 +1634,7 @@ }, { "name": "HWLAB_GITOPS_SOURCE_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_RUNTIME_MODE", @@ -1593,7 +1646,7 @@ }, { "name": "HWLAB_BOOT_COMMIT", - "value": "e1566e22c882b98de00041fafccffa2ffdc02ee6" + "value": "f3e0ad796126da7a7721b538936c971b824c2486" }, { "name": "HWLAB_BOOT_REF", @@ -1609,15 +1662,15 @@ }, { "name": "HWLAB_ENVIRONMENT_IMAGE", - "value": "127.0.0.1:5000/hwlab/hwlab-agent-skills-env:env-b0c5874f30a9" + "value": "127.0.0.1:5000/hwlab/hwlab-agent-skills-env:env-9495896df918" }, { "name": "HWLAB_ENVIRONMENT_DIGEST", - "value": "sha256:f5e71b0e02756f25ea1e82c36dc34aa79caeb17e25d222e94f1be44106b19664" + "value": "sha256:ca8137d03351c8f9fd32a6b73ffec321a168c6af23d4d2503b5129906dd42480" }, { "name": "HWLAB_ENVIRONMENT_INPUT_HASH", - "value": "b0c5874f30a91469c823685cbb8dbb5b9875b4430cf914d2fd741f52f8531050" + "value": "9495896df9181f06492b0a0f8673eb5dd7e951b756e66e35bda0fd101a14e74a" }, { "name": "HWLAB_CODE_INPUT_HASH", @@ -1625,7 +1678,7 @@ }, { "name": "HWLAB_IMAGE_DIGEST", - "value": "sha256:f5e71b0e02756f25ea1e82c36dc34aa79caeb17e25d222e94f1be44106b19664" + "value": "sha256:ca8137d03351c8f9fd32a6b73ffec321a168c6af23d4d2503b5129906dd42480" } ], "readinessProbe": { @@ -1640,7 +1693,17 @@ "port": "http" } }, - "imagePullPolicy": "IfNotPresent" + "imagePullPolicy": "IfNotPresent", + "startupProbe": { + "httpGet": { + "path": "/health/live", + "port": "http" + }, + "periodSeconds": 10, + "timeoutSeconds": 2, + "failureThreshold": 30, + "successThreshold": 1 + } }, { "name": "hwlab-metrics",