apiVersion: apps/v1 kind: Deployment metadata: name: shannon-router namespace: shannon labels: app: shannon-router spec: replicas: 1 selector: matchLabels: app: shannon-router template: metadata: labels: app: shannon-router spec: containers: - name: router image: node:20-slim command: - sh - -c - | apt-get update && apt-get install -y gettext-base && npm install -g @musistudio/claude-code-router && mkdir -p /root/.claude-code-router && envsubst < /config/router-config.json > /root/.claude-code-router/config.json && ccr start ports: - containerPort: 3456 envFrom: - secretRef: name: shannon-credentials env: - name: HOST value: "0.0.0.0" volumeMounts: - name: config mountPath: /config readOnly: true readinessProbe: httpGet: path: /health port: 3456 initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 5 resources: requests: memory: 128Mi cpu: 100m volumes: - name: config configMap: name: shannon-router-config --- apiVersion: v1 kind: Service metadata: name: shannon-router namespace: shannon spec: selector: app: shannon-router ports: - port: 3456 targetPort: 3456