--- apiVersion: apps/v1 kind: Deployment metadata: name: devcontainer-${NAME} spec: template: metadata: labels: app: devcontainer instance: ${NAME} spec: securityContext: fsGroup: 1000 fsGroupChangePolicy: "OnRootMismatch" containers: - name: devcontainer image: ghcr.io/cpfarhood/devcontainer:latest imagePullPolicy: Always ports: - containerPort: 5800 name: vnc-web protocol: TCP volumeMounts: - name: userhome mountPath: /home - name: workspace mountPath: /workspace env: # User/Group IDs for the claude user - name: USER_ID value: "1000" - name: GROUP_ID value: "1000" # VNC display settings - name: DISPLAY_WIDTH value: "1920" - name: DISPLAY_HEIGHT value: "1080" - name: SECURE_CONNECTION value: "0" - name: HAPPY_HOME_DIR value: "/home/user/.happy" - name: HAPPY_EXPERIMENTAL value: "true" envFrom: - configMapRef: name: ${ENV_CONFIGMAP} - secretRef: name: ${ENV_SECRETS} resources: requests: memory: "2Gi" cpu: "1000m" limits: memory: "8Gi" cpu: "4000m" livenessProbe: httpGet: path: / port: 5800 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: path: / port: 5800 initialDelaySeconds: 10 periodSeconds: 5 volumes: - name: workspace emptyDir: {} - name: userhome persistentVolumeClaim: claimName: userhome-${NAME}