Add decision-center k3s artifact consumer paths

This commit is contained in:
Codex
2026-05-19 16:22:03 +00:00
parent 2a21f6cda3
commit b2f16f235b
13 changed files with 543 additions and 161 deletions
@@ -41,7 +41,7 @@ services:
K3SCTL_NATIVE_SERVICE_URL_MDTODO: "${K3SCTL_NATIVE_SERVICE_URL_MDTODO:-}"
K3SCTL_NATIVE_SERVICE_URL_DECISION_CENTER: "${K3SCTL_NATIVE_SERVICE_URL_DECISION_CENTER:-}"
K3SCTL_NATIVE_SERVICE_URL_DEVOPS: "${K3SCTL_NATIVE_SERVICE_URL_DEVOPS:-}"
K3SCTL_MANIFEST_PATHS: "${K3SCTL_MANIFEST_PATHS:-k3s/code-queue.k3s.json,k3s/mdtodo.k3s.json,k3s/claudeqq.k3s.json,k3s/decision-center.k3s.json,k3s/dev/unidesk-dev-core.k3s.json}"
K3SCTL_MANIFEST_PATHS: "${K3SCTL_MANIFEST_PATHS:-k3s/code-queue.k3s.json,k3s/mdtodo.k3s.json,k3s/claudeqq.k3s.json,k3s/decision-center.k3s.json,k3s/dev/unidesk-dev-core.k3s.json,k3s/dev/unidesk-dev-decision-center.k3s.json}"
K3SCTL_SERVICES_JSON: "${K3SCTL_SERVICES_JSON:-[]}"
UNIDESK_LOG_RETENTION_BYTES: "${UNIDESK_LOG_RETENTION_BYTES:-512MiB}"
volumes:
@@ -0,0 +1,37 @@
{
"apiVersion": "unidesk.ai/k3s/v1",
"kind": "ManagedKubernetesService",
"metadata": {
"name": "decision-center-dev",
"namespace": "unidesk-dev"
},
"spec": {
"adapterServiceId": "k3sctl-adapter",
"controlPlane": {
"type": "kubernetes",
"cluster": "unidesk-k3s",
"context": "unidesk-k3s"
},
"route": {
"kind": "kubernetes-service",
"serviceName": "decision-center-dev",
"servicePort": 4277
},
"activeInstanceId": "D601-dev-decision-center",
"singleWriter": true,
"expectedNodeIds": [
"D601"
],
"instances": [
{
"id": "D601-dev-decision-center",
"nodeId": "D601",
"role": "primary",
"baseUrl": "kubernetes://unidesk-dev/services/decision-center-dev:4277",
"healthPath": "/health",
"healthMode": "service-proxy"
}
],
"requireAllInstancesHealthy": true
}
}
@@ -0,0 +1,122 @@
apiVersion: v1
kind: Service
metadata:
name: decision-center-dev
namespace: unidesk-dev
labels:
app.kubernetes.io/name: decision-center
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/component: decision-center
unidesk.ai/environment: dev
unidesk.ai/deployment-mode: k3sctl-managed
spec:
type: ClusterIP
selector:
app.kubernetes.io/name: decision-center
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/component: decision-center
unidesk.ai/environment: dev
ports:
- name: http
port: 4277
targetPort: http
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: decision-center-dev
namespace: unidesk-dev
labels:
app.kubernetes.io/name: decision-center
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/component: decision-center
unidesk.ai/environment: dev
unidesk.ai/deployment-mode: k3sctl-managed
annotations:
unidesk.ai/deploy-ref: deploy.json#environments.dev.services.decision-center
unidesk.ai/deploy-service-id: decision-center
unidesk.ai/image-source: deploy-env-commit
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app.kubernetes.io/name: decision-center
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/component: decision-center
unidesk.ai/environment: dev
template:
metadata:
labels:
app.kubernetes.io/name: decision-center
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/component: decision-center
unidesk.ai/environment: dev
unidesk.ai/node-id: D601
unidesk.ai/deploy-service-id: decision-center
spec:
nodeSelector:
unidesk.ai/node-id: D601
terminationGracePeriodSeconds: 15
containers:
- name: decision-center
image: unidesk-decision-center:dev-placeholder
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 4277
env:
- name: HOST
value: "0.0.0.0"
- name: PORT
value: "4277"
- name: DATABASE_URL
value: "postgres://unidesk:unidesk_dev_password@d601-tcp-egress-gateway.unidesk.svc.cluster.local:15432/unidesk_dev"
- name: DATABASE_POOL_MAX
value: "2"
- name: UNIDESK_DEPLOY_SERVICE_ID
value: decision-center
- name: UNIDESK_DEPLOY_REPO
value: https://github.com/pikasTech/unidesk
- name: UNIDESK_DEPLOY_COMMIT
value: replace-with-deploy-env-commit
- name: UNIDESK_DEPLOY_REQUESTED_COMMIT
value: replace-with-deploy-env-commit
- name: LOG_FILE
value: /var/log/unidesk-dev/decision-center-dev.jsonl
volumeMounts:
- name: logs
mountPath: /var/log/unidesk-dev
readinessProbe:
httpGet:
path: /health
port: http
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 18
livenessProbe:
httpGet:
path: /live
port: http
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 6
startupProbe:
httpGet:
path: /live
port: http
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 30
resources:
requests:
cpu: 50m
memory: 96Mi
limits:
memory: 512Mi
volumes:
- name: logs
hostPath:
path: /home/ubuntu/cq-deploy/.state/decision-center-dev/logs
type: DirectoryOrCreate
@@ -291,7 +291,7 @@ function mergeServices(services: ManagedService[]): ManagedService[] {
}
function readConfig(): RuntimeConfig {
const paths = manifestPaths(envString("K3SCTL_MANIFEST_PATHS", "k3s/code-queue.k3s.json,k3s/mdtodo.k3s.json,k3s/claudeqq.k3s.json,k3s/decision-center.k3s.json,k3s/dev/unidesk-dev-core.k3s.json"));
const paths = manifestPaths(envString("K3SCTL_MANIFEST_PATHS", "k3s/code-queue.k3s.json,k3s/mdtodo.k3s.json,k3s/claudeqq.k3s.json,k3s/decision-center.k3s.json,k3s/dev/unidesk-dev-core.k3s.json,k3s/dev/unidesk-dev-decision-center.k3s.json"));
const inlineServices = parseServices(envString("K3SCTL_SERVICES_JSON", "[]"));
const manifestServices = readManifestServices(paths);
return {