From 95fb8fa56a6796c2f60766008b6b943afdc49da7 Mon Sep 17 00:00:00 2001 From: UniDesk Web Probe Sentinel Date: Sun, 28 Jun 2026 02:53:03 +0000 Subject: [PATCH] deploy: render web-probe sentinel 96504d6a7448ef843aeca8d1cd7e7ec0c54047cf --- .../web-probe-sentinel/web-probe-sentinel.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/deploy/gitops/node/d518/web-probe-sentinel/web-probe-sentinel.yaml b/deploy/gitops/node/d518/web-probe-sentinel/web-probe-sentinel.yaml index 1e50991d..834008b1 100644 --- a/deploy/gitops/node/d518/web-probe-sentinel/web-probe-sentinel.yaml +++ b/deploy/gitops/node/d518/web-probe-sentinel/web-probe-sentinel.yaml @@ -1,15 +1,15 @@ -{apiVersion: v1,kind: ServiceAccount,metadata: {name: hwlab-web-probe-sentinel,namespace: hwlab-v03,labels: {app.kubernetes.io/name: hwlab-web-probe-sentinel,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-dsflash-go-tool-call-10x}}} +{apiVersion: v1,kind: ServiceAccount,metadata: {name: hwlab-web-probe-sentinel,namespace: hwlab-v03,labels: {app.kubernetes.io/name: hwlab-web-probe-sentinel,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-fake-echo-session-invariance-10x}}} --- -{apiVersion: v1,kind: PersistentVolumeClaim,metadata: {name: hwlab-web-probe-sentinel-state,namespace: hwlab-v03,labels: {app.kubernetes.io/name: hwlab-web-probe-sentinel,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-dsflash-go-tool-call-10x}},spec: {accessModes: [ReadWriteOnce],resources: {requests: {storage: 10Gi}}}} +{apiVersion: v1,kind: PersistentVolumeClaim,metadata: {name: hwlab-web-probe-sentinel-state,namespace: hwlab-v03,labels: {app.kubernetes.io/name: hwlab-web-probe-sentinel,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-fake-echo-session-invariance-10x}},spec: {accessModes: [ReadWriteOnce],resources: {requests: {storage: 10Gi}}}} --- -{apiVersion: v1,kind: ConfigMap,metadata: {name: hwlab-web-probe-sentinel-config,namespace: hwlab-v03,labels: {app.kubernetes.io/name: hwlab-web-probe-sentinel,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-dsflash-go-tool-call-10x}},data: {config-summary.json: "{\n \"specRef\": \"PJ2026-01060508 Web哨兵 draft-2026-06-27-p11-monitor-web-observability-dashboard\",\n \"node\": \"D518\",\n \"lane\": \"v03\",\n \"sentinelId\": \"workbench-dsflash-go-tool-call-10x\",\n \"publicBaseUrl\": \"https://monitor.pikapython.com/sentinels/d518-workbench-dsflash-go-tool-call-10x\",\n \"routePrefix\": \"/sentinels/d518-workbench-dsflash-go-tool-call-10x\",\n \"gitopsPath\": \"deploy/gitops/node/d518/web-probe-sentinel\",\n \"valuesRedacted\": true\n}"}} +{apiVersion: v1,kind: ConfigMap,metadata: {name: hwlab-web-probe-sentinel-config,namespace: hwlab-v03,labels: {app.kubernetes.io/name: hwlab-web-probe-sentinel,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-fake-echo-session-invariance-10x}},data: {config-summary.json: "{\n \"specRef\": \"PJ2026-01060508 Web哨兵 draft-2026-06-27-p11-monitor-web-observability-dashboard\",\n \"node\": \"D518\",\n \"lane\": \"v03\",\n \"sentinelId\": \"workbench-fake-echo-session-invariance-10x\",\n \"publicBaseUrl\": \"https://monitor.pikapython.com/sentinels/d518-workbench-fake-echo-session-invariance-10x\",\n \"routePrefix\": \"/sentinels/d518-workbench-fake-echo-session-invariance-10x\",\n \"gitopsPath\": \"deploy/gitops/node/d518/web-probe-sentinel\",\n \"valuesRedacted\": true\n}"}} --- -{apiVersion: apps/v1,kind: Deployment,metadata: {name: hwlab-web-probe-sentinel,namespace: hwlab-v03,labels: &labels {app.kubernetes.io/name: hwlab-web-probe-sentinel,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-dsflash-go-tool-call-10x}},spec: {replicas: 1,selector: {matchLabels: {app.kubernetes.io/name: hwlab-web-probe-sentinel}},template: {metadata: {labels: *labels},spec: {serviceAccountName: hwlab-web-probe-sentinel,containers: [{name: sentinel,image: 127.0.0.1:5000/hwlab/web-probe-sentinel@sha256:5f9ba99e751841c1d8ace003c2122a50c448f73f4b0d6e78c3cf85bcbd6324a3,imagePullPolicy: IfNotPresent,args: ["--node",D518,"--lane",v03,"--sentinel",workbench-dsflash-go-tool-call-10x,"--state-root",/var/lib/web-probe-sentinel,"--host",0.0.0.0,"--port","8080"],env: [{name: UNIDESK_WEB_PROBE_SENTINEL_ID,value: workbench-dsflash-go-tool-call-10x},{name: HWLAB_BOOTSTRAP_ADMIN_PASSWORD,valueFrom: {secretKeyRef: {name: hwlab-web-probe-sentinel-bootstrap,key: bootstrap-admin-password}}},{name: DSFLASH_GO_TOOL_CALL_10X_PROMPTS_JSON,valueFrom: {secretKeyRef: {name: hwlab-web-probe-sentinel-prompt-set,key: prompts.json}}}],ports: [{name: http,containerPort: 8080}],readinessProbe: {httpGet: {path: /api/health,port: http}},livenessProbe: {httpGet: {path: /api/health,port: http}},volumeMounts: [{name: state,mountPath: /var/lib/web-probe-sentinel}]}],volumes: [{name: state,persistentVolumeClaim: {claimName: hwlab-web-probe-sentinel-state}}]}}}} +{apiVersion: apps/v1,kind: Deployment,metadata: {name: hwlab-web-probe-sentinel,namespace: hwlab-v03,labels: &labels {app.kubernetes.io/name: hwlab-web-probe-sentinel,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-fake-echo-session-invariance-10x}},spec: {replicas: 1,selector: {matchLabels: {app.kubernetes.io/name: hwlab-web-probe-sentinel}},template: {metadata: {labels: *labels},spec: {serviceAccountName: hwlab-web-probe-sentinel,containers: [{name: sentinel,image: 127.0.0.1:5000/hwlab/web-probe-sentinel@sha256:18817ff2370e99c63f5259750a3054d50821a386447c37cebe9bcbba537a5d89,imagePullPolicy: IfNotPresent,args: ["--node",D518,"--lane",v03,"--sentinel",workbench-fake-echo-session-invariance-10x,"--state-root",/var/lib/web-probe-sentinel,"--host",0.0.0.0,"--port","8080"],env: [{name: UNIDESK_WEB_PROBE_SENTINEL_ID,value: workbench-fake-echo-session-invariance-10x},{name: HWLAB_BOOTSTRAP_ADMIN_PASSWORD,valueFrom: {secretKeyRef: {name: hwlab-web-probe-sentinel-bootstrap,key: bootstrap-admin-password}}},{name: FAKE_ECHO_SENTINEL_PROMPTS_JSON,valueFrom: {secretKeyRef: {name: hwlab-web-probe-sentinel-prompt-set,key: prompts.json}}}],ports: [{name: http,containerPort: 8080}],readinessProbe: {httpGet: {path: /api/health,port: http}},livenessProbe: {httpGet: {path: /api/health,port: http}},volumeMounts: [{name: state,mountPath: /var/lib/web-probe-sentinel}]}],volumes: [{name: state,persistentVolumeClaim: {claimName: hwlab-web-probe-sentinel-state}}]}}}} --- -{apiVersion: v1,kind: Service,metadata: {name: hwlab-web-probe-sentinel,namespace: hwlab-v03,labels: {app.kubernetes.io/name: hwlab-web-probe-sentinel,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-dsflash-go-tool-call-10x}},spec: {type: ClusterIP,selector: {app.kubernetes.io/name: hwlab-web-probe-sentinel},ports: [{name: http,port: 8080,targetPort: http}]}} +{apiVersion: v1,kind: Service,metadata: {name: hwlab-web-probe-sentinel,namespace: hwlab-v03,labels: {app.kubernetes.io/name: hwlab-web-probe-sentinel,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-fake-echo-session-invariance-10x}},spec: {type: ClusterIP,selector: {app.kubernetes.io/name: hwlab-web-probe-sentinel},ports: [{name: http,port: 8080,targetPort: http}]}} --- -{apiVersion: batch/v1,kind: CronJob,metadata: {name: hwlab-web-probe-sentinel-quick-verify,namespace: hwlab-v03,labels: &labels {app.kubernetes.io/name: hwlab-web-probe-sentinel-quick-verify,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/component: cadence-scheduler,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-dsflash-go-tool-call-10x},annotations: {unidesk.ai/cadence: 10m,unidesk.ai/target-validation-max-seconds: "300"}},spec: {schedule: "*/10 * * * *",concurrencyPolicy: Forbid,successfulJobsHistoryLimit: 3,failedJobsHistoryLimit: 5,startingDeadlineSeconds: 600,jobTemplate: {spec: {activeDeadlineSeconds: 360,ttlSecondsAfterFinished: 86400,backoffLimit: 0,template: {metadata: {labels: *labels},spec: {restartPolicy: Never,serviceAccountName: hwlab-web-probe-sentinel,containers: [{name: quick-verify,image: 127.0.0.1:5000/hwlab/web-probe-sentinel@sha256:5f9ba99e751841c1d8ace003c2122a50c448f73f4b0d6e78c3cf85bcbd6324a3,imagePullPolicy: IfNotPresent,command: [bun,scripts/cli.ts],args: [web-probe,sentinel,validate,"--node",D518,"--lane",v03,"--sentinel",workbench-dsflash-go-tool-call-10x,"--quick-verify","--confirm","--wait","--timeout-seconds","300"],env: [{name: UNIDESK_WEB_PROBE_SENTINEL_ID,value: workbench-dsflash-go-tool-call-10x},{name: HWLAB_BOOTSTRAP_ADMIN_PASSWORD,valueFrom: {secretKeyRef: {name: hwlab-web-probe-sentinel-bootstrap,key: bootstrap-admin-password}}},{name: DSFLASH_GO_TOOL_CALL_10X_PROMPTS_JSON,valueFrom: {secretKeyRef: {name: hwlab-web-probe-sentinel-prompt-set,key: prompts.json}}},{name: UNIDESK_WEB_PROBE_SENTINEL_DIRECT_SERVICE,value: "1"}]}]}}}}}} +{apiVersion: batch/v1,kind: CronJob,metadata: {name: hwlab-web-probe-sentinel-quick-verify,namespace: hwlab-v03,labels: &labels {app.kubernetes.io/name: hwlab-web-probe-sentinel-quick-verify,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/component: cadence-scheduler,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-fake-echo-session-invariance-10x},annotations: {unidesk.ai/cadence: 10m,unidesk.ai/target-validation-max-seconds: "300"}},spec: {schedule: "*/10 * * * *",concurrencyPolicy: Forbid,successfulJobsHistoryLimit: 3,failedJobsHistoryLimit: 5,startingDeadlineSeconds: 600,jobTemplate: {spec: {activeDeadlineSeconds: 360,ttlSecondsAfterFinished: 86400,backoffLimit: 0,template: {metadata: {labels: *labels},spec: {restartPolicy: Never,serviceAccountName: hwlab-web-probe-sentinel,containers: [{name: quick-verify,image: 127.0.0.1:5000/hwlab/web-probe-sentinel@sha256:18817ff2370e99c63f5259750a3054d50821a386447c37cebe9bcbba537a5d89,imagePullPolicy: IfNotPresent,command: [bun,scripts/cli.ts],args: [web-probe,sentinel,validate,"--node",D518,"--lane",v03,"--sentinel",workbench-fake-echo-session-invariance-10x,"--quick-verify","--confirm","--wait","--timeout-seconds","300"],env: [{name: UNIDESK_WEB_PROBE_SENTINEL_ID,value: workbench-fake-echo-session-invariance-10x},{name: HWLAB_BOOTSTRAP_ADMIN_PASSWORD,valueFrom: {secretKeyRef: {name: hwlab-web-probe-sentinel-bootstrap,key: bootstrap-admin-password}}},{name: FAKE_ECHO_SENTINEL_PROMPTS_JSON,valueFrom: {secretKeyRef: {name: hwlab-web-probe-sentinel-prompt-set,key: prompts.json}}},{name: UNIDESK_WEB_PROBE_SENTINEL_DIRECT_SERVICE,value: "1"}]}]}}}}}} --- -{apiVersion: apps/v1,kind: Deployment,metadata: {name: hwlab-web-probe-sentinel-frpc,namespace: hwlab-v03,labels: {app.kubernetes.io/name: hwlab-web-probe-sentinel,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-dsflash-go-tool-call-10x,app.kubernetes.io/component: tunnel}},spec: {replicas: 1,selector: {matchLabels: {app.kubernetes.io/name: hwlab-web-probe-sentinel-frpc}},template: {metadata: {labels: {app.kubernetes.io/name: hwlab-web-probe-sentinel-frpc,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-dsflash-go-tool-call-10x,app.kubernetes.io/component: tunnel},annotations: {unidesk.ai/public-base-url: https://monitor.pikapython.com/sentinels/d518-workbench-dsflash-go-tool-call-10x,unidesk.ai/frp-server: 82.156.23.220:22000,unidesk.ai/frp-remote-port: "22093"}},spec: {containers: [{name: frpc,image: 127.0.0.1:5000/hwlab/frpc:v0.68.1,imagePullPolicy: IfNotPresent,args: ["-c",/etc/frp/frpc.toml],volumeMounts: [{name: frpc-config,mountPath: /etc/frp/frpc.toml,subPath: frpc.toml,readOnly: true}]}],volumes: [{name: frpc-config,secret: {secretName: hwlab-web-probe-sentinel-frpc}}]}}}} +{apiVersion: apps/v1,kind: Deployment,metadata: {name: hwlab-web-probe-sentinel-frpc,namespace: hwlab-v03,labels: {app.kubernetes.io/name: hwlab-web-probe-sentinel,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-fake-echo-session-invariance-10x,app.kubernetes.io/component: tunnel}},spec: {replicas: 1,selector: {matchLabels: {app.kubernetes.io/name: hwlab-web-probe-sentinel-frpc}},template: {metadata: {labels: {app.kubernetes.io/name: hwlab-web-probe-sentinel-frpc,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-fake-echo-session-invariance-10x,app.kubernetes.io/component: tunnel},annotations: {unidesk.ai/public-base-url: https://monitor.pikapython.com/sentinels/d518-workbench-fake-echo-session-invariance-10x,unidesk.ai/frp-server: 82.156.23.220:22000,unidesk.ai/frp-remote-port: "22093"}},spec: {containers: [{name: frpc,image: 127.0.0.1:5000/hwlab/frpc:v0.68.1,imagePullPolicy: IfNotPresent,args: ["-c",/etc/frp/frpc.toml],volumeMounts: [{name: frpc-config,mountPath: /etc/frp/frpc.toml,subPath: frpc.toml,readOnly: true}]}],volumes: [{name: frpc-config,secret: {secretName: hwlab-web-probe-sentinel-frpc}}]}}}} --- -{apiVersion: networking.k8s.io/v1,kind: NetworkPolicy,metadata: {name: hwlab-web-probe-sentinel-egress,namespace: hwlab-v03,labels: {app.kubernetes.io/name: hwlab-web-probe-sentinel,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-dsflash-go-tool-call-10x}},spec: {podSelector: {matchLabels: {app.kubernetes.io/name: hwlab-web-probe-sentinel}},policyTypes: [Ingress,Egress],ingress: [{from: [{namespaceSelector: {}}],ports: [{protocol: TCP,port: 8080}]}],egress: [{to: [{namespaceSelector: {}}]}]}} +{apiVersion: networking.k8s.io/v1,kind: NetworkPolicy,metadata: {name: hwlab-web-probe-sentinel-egress,namespace: hwlab-v03,labels: {app.kubernetes.io/name: hwlab-web-probe-sentinel,app.kubernetes.io/part-of: hwlab-web-probe-sentinel,app.kubernetes.io/managed-by: unidesk,unidesk.ai/spec-ref: PJ2026-01060508,unidesk.ai/node: D518,unidesk.ai/lane: v03,unidesk.ai/web-probe-sentinel-id: workbench-fake-echo-session-invariance-10x}},spec: {podSelector: {matchLabels: {app.kubernetes.io/name: hwlab-web-probe-sentinel}},policyTypes: [Ingress,Egress],ingress: [{from: [{namespaceSelector: {}}],ports: [{protocol: TCP,port: 8080}]}],egress: [{to: [{namespaceSelector: {}}]}]}}