Files
pikasTech-unidesk/src/components/microservices/k3sctl-adapter/k3s/dev/unidesk-dev-code-queue.k8s.yaml
T
2026-05-18 03:57:33 +00:00

734 lines
25 KiB
YAML

apiVersion: v1
kind: Service
metadata:
name: code-queue-scheduler-dev
namespace: unidesk-dev
labels:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: scheduler
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/instance: code-queue-scheduler-dev
unidesk.ai/environment: dev
unidesk.ai/deployment-mode: k3sctl-managed
unidesk.ai/deploy-service-id: code-queue
spec:
type: ClusterIP
selector:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: scheduler
app.kubernetes.io/instance: code-queue-scheduler-dev
unidesk.ai/environment: dev
unidesk.ai/deploy-service-id: code-queue
ports:
- name: http
port: 4222
targetPort: http
---
apiVersion: v1
kind: Service
metadata:
name: code-queue-read-dev
namespace: unidesk-dev
labels:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: read
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/instance: code-queue-read-dev
unidesk.ai/environment: dev
unidesk.ai/deployment-mode: k3sctl-managed
unidesk.ai/deploy-service-id: code-queue
spec:
type: ClusterIP
selector:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: read
app.kubernetes.io/instance: code-queue-read-dev
unidesk.ai/environment: dev
unidesk.ai/deploy-service-id: code-queue
ports:
- name: http
port: 4222
targetPort: http
---
apiVersion: v1
kind: Service
metadata:
name: code-queue-write-dev
namespace: unidesk-dev
labels:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: write
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/instance: code-queue-write-dev
unidesk.ai/environment: dev
unidesk.ai/deployment-mode: k3sctl-managed
unidesk.ai/deploy-service-id: code-queue
spec:
type: ClusterIP
selector:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: write
app.kubernetes.io/instance: code-queue-write-dev
unidesk.ai/environment: dev
unidesk.ai/deploy-service-id: code-queue
ports:
- name: http
port: 4222
targetPort: http
---
apiVersion: v1
kind: Service
metadata:
name: d601-dev-provider-egress-proxy
namespace: unidesk-dev
labels:
app.kubernetes.io/name: provider-egress-proxy
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/instance: d601-dev-provider-egress-proxy
unidesk.ai/environment: dev
unidesk.ai/provider-id: D601-dev
unidesk.ai/deploy-service-id: code-queue
spec:
type: ClusterIP
selector:
app.kubernetes.io/name: provider-egress-proxy
app.kubernetes.io/instance: d601-dev-provider-egress-proxy
unidesk.ai/environment: dev
unidesk.ai/provider-id: D601-dev
unidesk.ai/deploy-service-id: code-queue
ports:
- name: http
port: 18789
targetPort: http
---
apiVersion: v1
kind: ConfigMap
metadata:
name: d601-dev-provider-egress-proxy
namespace: unidesk-dev
labels:
app.kubernetes.io/name: provider-egress-proxy
app.kubernetes.io/part-of: unidesk
unidesk.ai/environment: dev
unidesk.ai/provider-id: D601-dev
unidesk.ai/deploy-service-id: code-queue
data:
provider-egress-proxy.js: |
const net = require("node:net");
const listenPort = Number(process.env.PROVIDER_EGRESS_LISTEN_PORT || 18790);
const upstreamHost = process.env.PROVIDER_EGRESS_UPSTREAM_HOST || "127.0.0.1";
const upstreamPort = Number(process.env.PROVIDER_EGRESS_UPSTREAM_PORT || 18789);
function closeBoth(left, right) {
left.destroy();
right.destroy();
}
net.createServer((client) => {
const upstream = net.connect({ host: upstreamHost, port: upstreamPort });
client.pipe(upstream);
upstream.pipe(client);
client.on("error", () => closeBoth(client, upstream));
upstream.on("error", () => closeBoth(client, upstream));
}).listen(listenPort, "0.0.0.0", () => {
console.log(JSON.stringify({
ts: new Date().toISOString(),
service: "provider-egress-proxy-dev",
level: "info",
message: "listening",
data: { listenPort, upstream: `${upstreamHost}:${upstreamPort}` },
}));
});
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: d601-dev-provider-egress-proxy
namespace: unidesk-dev
labels:
app.kubernetes.io/name: provider-egress-proxy
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/instance: d601-dev-provider-egress-proxy
unidesk.ai/environment: dev
unidesk.ai/provider-id: D601-dev
unidesk.ai/deployment-mode: k3sctl-managed
unidesk.ai/deploy-service-id: code-queue
annotations:
unidesk.ai/deploy-ref: origin/deploy/dev
unidesk.ai/image-source: deploy-dev-commit
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app.kubernetes.io/name: provider-egress-proxy
app.kubernetes.io/instance: d601-dev-provider-egress-proxy
unidesk.ai/environment: dev
unidesk.ai/provider-id: D601-dev
unidesk.ai/deploy-service-id: code-queue
template:
metadata:
labels:
app.kubernetes.io/name: provider-egress-proxy
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/instance: d601-dev-provider-egress-proxy
unidesk.ai/environment: dev
unidesk.ai/provider-id: D601-dev
unidesk.ai/node-id: D601
unidesk.ai/deploy-service-id: code-queue
spec:
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
nodeSelector:
unidesk.ai/node-id: D601
containers:
- name: provider-egress-proxy
image: unidesk-code-queue:dev-placeholder
imagePullPolicy: IfNotPresent
command:
- bun
- /etc/unidesk-provider-egress/provider-egress-proxy.js
ports:
- name: http
containerPort: 18791
env:
- name: PROVIDER_EGRESS_LISTEN_PORT
value: "18791"
- name: PROVIDER_EGRESS_UPSTREAM_HOST
value: "127.0.0.1"
- name: PROVIDER_EGRESS_UPSTREAM_PORT
value: "18789"
- name: UNIDESK_DEPLOY_SERVICE_ID
value: code-queue
- name: UNIDESK_DEPLOY_REPO
value: https://github.com/pikasTech/unidesk
- name: UNIDESK_DEPLOY_COMMIT
value: replace-with-deploy-dev-commit
- name: UNIDESK_DEPLOY_REQUESTED_COMMIT
value: replace-with-deploy-dev-commit
volumeMounts:
- name: script
mountPath: /etc/unidesk-provider-egress
readOnly: true
readinessProbe:
tcpSocket:
port: http
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 12
livenessProbe:
tcpSocket:
port: http
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 6
resources:
requests:
cpu: 25m
memory: 64Mi
limits:
cpu: 100m
memory: 128Mi
volumes:
- name: script
configMap:
name: d601-dev-provider-egress-proxy
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: code-queue-scheduler-dev
namespace: unidesk-dev
labels:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: scheduler
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/instance: code-queue-scheduler-dev
unidesk.ai/environment: dev
unidesk.ai/deployment-mode: k3sctl-managed
unidesk.ai/deploy-service-id: code-queue
annotations:
unidesk.ai/deploy-ref: origin/deploy/dev
unidesk.ai/image-source: deploy-dev-commit
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: scheduler
app.kubernetes.io/instance: code-queue-scheduler-dev
unidesk.ai/environment: dev
unidesk.ai/deploy-service-id: code-queue
template:
metadata:
labels:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: scheduler
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/instance: code-queue-scheduler-dev
unidesk.ai/environment: dev
unidesk.ai/node-id: D601
unidesk.ai/deploy-service-id: code-queue
spec:
nodeSelector:
unidesk.ai/node-id: D601
terminationGracePeriodSeconds: 30
containers:
- name: code-queue
image: unidesk-code-queue:dev-placeholder
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 4222
envFrom:
- configMapRef:
name: unidesk-dev-runtime-config
- secretRef:
name: unidesk-dev-runtime-secrets
env:
- name: HOST
value: "0.0.0.0"
- name: PORT
value: "4222"
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: unidesk-dev-runtime-secrets
key: DATABASE_URL
- name: UNIDESK_DATABASE_NAME
value: unidesk_dev
- name: UNIDESK_DEPLOY_SERVICE_ID
value: code-queue
- name: UNIDESK_DEPLOY_REPO
value: https://github.com/pikasTech/unidesk
- name: UNIDESK_DEPLOY_COMMIT
value: replace-with-deploy-dev-commit
- name: UNIDESK_DEPLOY_REQUESTED_COMMIT
value: replace-with-deploy-dev-commit
- name: CODE_QUEUE_DEPLOY_COMMIT
value: replace-with-deploy-dev-commit
- name: CODE_QUEUE_DEPLOY_REQUESTED_COMMIT
value: replace-with-deploy-dev-commit
- name: CODE_QUEUE_INSTANCE_ID
value: D601-dev
- name: CODE_QUEUE_SERVICE_ROLE
value: scheduler
- name: CODE_QUEUE_SCHEDULER_ENABLED
value: "true"
- name: CODE_QUEUE_SCHEDULER_POLL_INTERVAL_MS
value: "3000"
- name: CODE_QUEUE_DATABASE_POOL_MAX
value: "2"
- name: CODE_QUEUE_MAX_ACTIVE_QUEUES
value: "1"
- name: CODE_QUEUE_SANDBOX
value: danger-full-access
- name: CODE_QUEUE_APPROVAL_POLICY
value: never
- name: CODE_QUEUE_EGRESS_PROXY_ENABLED
value: "true"
- name: CODE_QUEUE_EGRESS_PROXY_URL
value: http://d601-dev-provider-egress-proxy.unidesk-dev.svc.cluster.local:18789
- name: CODE_QUEUE_EGRESS_PROXY_NO_PROXY
value: localhost,127.0.0.1,::1,host.docker.internal,d601-dev-provider-egress-proxy,d601-dev-provider-egress-proxy.unidesk-dev,d601-dev-provider-egress-proxy.unidesk-dev.svc,d601-dev-provider-egress-proxy.unidesk-dev.svc.cluster.local,postgres-dev,postgres-dev.unidesk-dev,postgres-dev.unidesk-dev.svc,postgres-dev.unidesk-dev.svc.cluster.local,backend-core-dev,frontend-dev
- name: HTTP_PROXY
value: http://d601-dev-provider-egress-proxy.unidesk-dev.svc.cluster.local:18789
- name: HTTPS_PROXY
value: http://d601-dev-provider-egress-proxy.unidesk-dev.svc.cluster.local:18789
- name: ALL_PROXY
value: http://d601-dev-provider-egress-proxy.unidesk-dev.svc.cluster.local:18789
- name: http_proxy
value: http://d601-dev-provider-egress-proxy.unidesk-dev.svc.cluster.local:18789
- name: https_proxy
value: http://d601-dev-provider-egress-proxy.unidesk-dev.svc.cluster.local:18789
- name: all_proxy
value: http://d601-dev-provider-egress-proxy.unidesk-dev.svc.cluster.local:18789
- name: NO_PROXY
value: localhost,127.0.0.1,::1,host.docker.internal,d601-dev-provider-egress-proxy,d601-dev-provider-egress-proxy.unidesk-dev,d601-dev-provider-egress-proxy.unidesk-dev.svc,d601-dev-provider-egress-proxy.unidesk-dev.svc.cluster.local,postgres-dev,postgres-dev.unidesk-dev,postgres-dev.unidesk-dev.svc,postgres-dev.unidesk-dev.svc.cluster.local,backend-core-dev,frontend-dev
- name: no_proxy
value: localhost,127.0.0.1,::1,host.docker.internal,d601-dev-provider-egress-proxy,d601-dev-provider-egress-proxy.unidesk-dev,d601-dev-provider-egress-proxy.unidesk-dev.svc,d601-dev-provider-egress-proxy.unidesk-dev.svc.cluster.local,postgres-dev,postgres-dev.unidesk-dev,postgres-dev.unidesk-dev.svc,postgres-dev.unidesk-dev.svc.cluster.local,backend-core-dev,frontend-dev
- name: OA_EVENT_FLOW_BASE_URL
value: http://127.0.0.1:9
- name: CODE_QUEUE_NOTIFY_CLAUDEQQ_ENABLED
value: "false"
- name: CODE_QUEUE_CODEX_SQLITE_LOG_EXPORT_ENABLED
value: "false"
- name: NODE_OPTIONS
value: --max-old-space-size=1024
- name: LOG_FILE
value: /var/log/unidesk-dev/code-queue-scheduler-dev.jsonl
volumeMounts:
- name: docker-sock
mountPath: /var/run/docker.sock
- name: workspace
mountPath: /workspace-dev
- name: workspace
mountPath: /home/ubuntu/unidesk-dev-workspace
- name: repo
mountPath: /root/unidesk
readOnly: true
- name: codex-config
mountPath: /root/.codex/config.toml
readOnly: true
- name: codex-auth
mountPath: /root/.codex/auth.json
readOnly: true
- name: ssh-dir
mountPath: /root/.ssh
readOnly: true
- name: logs
mountPath: /var/log/unidesk-dev
- name: state
mountPath: /var/lib/unidesk-dev/code-queue
readinessProbe:
httpGet:
path: /health
port: http
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 20
livenessProbe:
httpGet:
path: /live
port: http
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 6
startupProbe:
httpGet:
path: /live
port: http
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 60
resources:
requests:
cpu: 150m
memory: 384Mi
limits:
cpu: 800m
memory: 5Gi
volumes:
- name: docker-sock
hostPath:
path: /var/run/docker.sock
type: Socket
- name: workspace
hostPath:
path: /home/ubuntu/unidesk-dev-workspace
type: DirectoryOrCreate
- name: repo
hostPath:
path: /home/ubuntu/unidesk-dev-code-queue-deploy/code-queue
type: Directory
- name: codex-config
hostPath:
path: /home/ubuntu/.codex/config.toml
type: File
- name: codex-auth
hostPath:
path: /home/ubuntu/.codex/auth.json
type: File
- name: ssh-dir
hostPath:
path: /home/ubuntu/.ssh
type: Directory
- name: logs
hostPath:
path: /home/ubuntu/unidesk-dev-code-queue-deploy/state/logs
type: DirectoryOrCreate
- name: state
hostPath:
path: /home/ubuntu/unidesk-dev-code-queue-deploy/state/code-queue
type: DirectoryOrCreate
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: code-queue-read-dev
namespace: unidesk-dev
labels:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: read
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/instance: code-queue-read-dev
unidesk.ai/environment: dev
unidesk.ai/deployment-mode: k3sctl-managed
unidesk.ai/deploy-service-id: code-queue
annotations:
unidesk.ai/deploy-ref: origin/deploy/dev
unidesk.ai/image-source: deploy-dev-commit
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: read
app.kubernetes.io/instance: code-queue-read-dev
unidesk.ai/environment: dev
unidesk.ai/deploy-service-id: code-queue
template:
metadata:
labels:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: read
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/instance: code-queue-read-dev
unidesk.ai/environment: dev
unidesk.ai/node-id: D601
unidesk.ai/deploy-service-id: code-queue
spec:
nodeSelector:
unidesk.ai/node-id: D601
terminationGracePeriodSeconds: 20
containers:
- name: code-queue
image: unidesk-code-queue:dev-placeholder
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 4222
envFrom:
- configMapRef:
name: unidesk-dev-runtime-config
- secretRef:
name: unidesk-dev-runtime-secrets
env:
- name: HOST
value: "0.0.0.0"
- name: PORT
value: "4222"
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: unidesk-dev-runtime-secrets
key: DATABASE_URL
- name: UNIDESK_DATABASE_NAME
value: unidesk_dev
- name: UNIDESK_DEPLOY_SERVICE_ID
value: code-queue
- name: UNIDESK_DEPLOY_REPO
value: https://github.com/pikasTech/unidesk
- name: UNIDESK_DEPLOY_COMMIT
value: replace-with-deploy-dev-commit
- name: UNIDESK_DEPLOY_REQUESTED_COMMIT
value: replace-with-deploy-dev-commit
- name: CODE_QUEUE_DEPLOY_COMMIT
value: replace-with-deploy-dev-commit
- name: CODE_QUEUE_DEPLOY_REQUESTED_COMMIT
value: replace-with-deploy-dev-commit
- name: CODE_QUEUE_INSTANCE_ID
value: D601-dev-read
- name: CODE_QUEUE_SERVICE_ROLE
value: read
- name: CODE_QUEUE_SCHEDULER_ENABLED
value: "false"
- name: CODE_QUEUE_DATABASE_POOL_MAX
value: "2"
- name: CODE_QUEUE_EGRESS_PROXY_ENABLED
value: "false"
- name: CODE_QUEUE_NOTIFY_CLAUDEQQ_ENABLED
value: "false"
- name: CODE_QUEUE_CODEX_SQLITE_LOG_EXPORT_ENABLED
value: "false"
- name: NODE_OPTIONS
value: --max-old-space-size=512
- name: LOG_FILE
value: /var/log/unidesk-dev/code-queue-read-dev.jsonl
volumeMounts:
- name: repo
mountPath: /root/unidesk
readOnly: true
- name: logs
mountPath: /var/log/unidesk-dev
- name: state
mountPath: /var/lib/unidesk-dev/code-queue
readinessProbe:
httpGet:
path: /live
port: http
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 20
livenessProbe:
httpGet:
path: /live
port: http
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 6
startupProbe:
httpGet:
path: /live
port: http
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 60
resources:
requests:
cpu: 80m
memory: 192Mi
limits:
cpu: 250m
memory: 768Mi
volumes:
- name: repo
hostPath:
path: /home/ubuntu/unidesk-dev-code-queue-deploy/code-queue
type: Directory
- name: logs
hostPath:
path: /home/ubuntu/unidesk-dev-code-queue-deploy/state/logs
type: DirectoryOrCreate
- name: state
hostPath:
path: /home/ubuntu/unidesk-dev-code-queue-deploy/state/code-queue
type: DirectoryOrCreate
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: code-queue-write-dev
namespace: unidesk-dev
labels:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: write
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/instance: code-queue-write-dev
unidesk.ai/environment: dev
unidesk.ai/deployment-mode: k3sctl-managed
unidesk.ai/deploy-service-id: code-queue
annotations:
unidesk.ai/deploy-ref: origin/deploy/dev
unidesk.ai/image-source: deploy-dev-commit
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: write
app.kubernetes.io/instance: code-queue-write-dev
unidesk.ai/environment: dev
unidesk.ai/deploy-service-id: code-queue
template:
metadata:
labels:
app.kubernetes.io/name: code-queue
app.kubernetes.io/component: write
app.kubernetes.io/part-of: unidesk
app.kubernetes.io/instance: code-queue-write-dev
unidesk.ai/environment: dev
unidesk.ai/node-id: D601
unidesk.ai/deploy-service-id: code-queue
spec:
nodeSelector:
unidesk.ai/node-id: D601
terminationGracePeriodSeconds: 20
containers:
- name: code-queue
image: unidesk-code-queue:dev-placeholder
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 4222
envFrom:
- configMapRef:
name: unidesk-dev-runtime-config
- secretRef:
name: unidesk-dev-runtime-secrets
env:
- name: HOST
value: "0.0.0.0"
- name: PORT
value: "4222"
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: unidesk-dev-runtime-secrets
key: DATABASE_URL
- name: UNIDESK_DATABASE_NAME
value: unidesk_dev
- name: UNIDESK_DEPLOY_SERVICE_ID
value: code-queue
- name: UNIDESK_DEPLOY_REPO
value: https://github.com/pikasTech/unidesk
- name: UNIDESK_DEPLOY_COMMIT
value: replace-with-deploy-dev-commit
- name: UNIDESK_DEPLOY_REQUESTED_COMMIT
value: replace-with-deploy-dev-commit
- name: CODE_QUEUE_DEPLOY_COMMIT
value: replace-with-deploy-dev-commit
- name: CODE_QUEUE_DEPLOY_REQUESTED_COMMIT
value: replace-with-deploy-dev-commit
- name: CODE_QUEUE_INSTANCE_ID
value: D601-dev-write
- name: CODE_QUEUE_SERVICE_ROLE
value: write
- name: CODE_QUEUE_SCHEDULER_ENABLED
value: "false"
- name: CODE_QUEUE_DATABASE_POOL_MAX
value: "2"
- name: CODE_QUEUE_EGRESS_PROXY_ENABLED
value: "false"
- name: CODE_QUEUE_NOTIFY_CLAUDEQQ_ENABLED
value: "false"
- name: CODE_QUEUE_CODEX_SQLITE_LOG_EXPORT_ENABLED
value: "false"
- name: NODE_OPTIONS
value: --max-old-space-size=512
- name: LOG_FILE
value: /var/log/unidesk-dev/code-queue-write-dev.jsonl
volumeMounts:
- name: repo
mountPath: /root/unidesk
readOnly: true
- name: logs
mountPath: /var/log/unidesk-dev
- name: state
mountPath: /var/lib/unidesk-dev/code-queue
readinessProbe:
httpGet:
path: /health
port: http
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 20
livenessProbe:
httpGet:
path: /live
port: http
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 6
startupProbe:
httpGet:
path: /live
port: http
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 60
resources:
requests:
cpu: 80m
memory: 192Mi
limits:
cpu: 250m
memory: 768Mi
volumes:
- name: repo
hostPath:
path: /home/ubuntu/unidesk-dev-code-queue-deploy/code-queue
type: Directory
- name: logs
hostPath:
path: /home/ubuntu/unidesk-dev-code-queue-deploy/state/logs
type: DirectoryOrCreate
- name: state
hostPath:
path: /home/ubuntu/unidesk-dev-code-queue-deploy/state/code-queue
type: DirectoryOrCreate