feat: add IDE choice — VSCode (default), Google Antigravity, SSH

- Add `ide` Helm value with options: vscode, antigravity, ssh
- Dockerfile: install Google Antigravity via apt and openssh-server
- scripts/startapp.sh: branch on IDE env var to launch the right app
- scripts/cont-init-sshd.sh: start sshd as root in SSH mode, set up
  authorized_keys from SSH_AUTHORIZED_KEYS env var
- chart/templates/deployment.yaml: pass IDE env var, conditional ports
  and probes (HTTP for VNC modes, TCP socket for SSH mode)
- chart/templates/service.yaml: expose port 5800 (VNC) or 22 (SSH)
- chart/values.yaml: add ide field with documentation
- README.md: document IDE choice, fix stale happyHomeDir references
- chart/Chart.yaml: bump to 0.1.5

Closes #10

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-20 13:49:31 -05:00
parent f33c7e1ae8
commit 298a1ce6ec
8 changed files with 138 additions and 15 deletions
+1 -1
View File
@@ -2,5 +2,5 @@ apiVersion: v2
name: devcontainer
description: Antigravity Dev Container with Happy Coder AI assistant
type: application
version: 0.1.4
version: 0.1.5
appVersion: "latest"
+21
View File
@@ -25,10 +25,18 @@ spec:
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
{{- if eq (.Values.ide | default "vscode") "ssh" }}
- containerPort: 22
name: ssh
protocol: TCP
{{- else }}
- containerPort: 5800
name: vnc-web
protocol: TCP
{{- end }}
env:
- name: IDE
value: {{ .Values.ide | default "vscode" | quote }}
- name: USER_ID
value: {{ .Values.userId | quote }}
- name: GROUP_ID
@@ -60,6 +68,7 @@ spec:
mountPath: /home
- name: workspace
mountPath: /workspace
{{- if ne (.Values.ide | default "vscode") "ssh" }}
livenessProbe:
httpGet:
path: /
@@ -72,6 +81,18 @@ spec:
port: 5800
initialDelaySeconds: 10
periodSeconds: 5
{{- else }}
livenessProbe:
tcpSocket:
port: 22
initialDelaySeconds: 15
periodSeconds: 10
readinessProbe:
tcpSocket:
port: 22
initialDelaySeconds: 5
periodSeconds: 5
{{- end }}
volumes:
- name: workspace
emptyDir: {}
+7
View File
@@ -6,9 +6,16 @@ metadata:
{{- include "antigravity.labels" . | nindent 4 }}
spec:
ports:
{{- if eq (.Values.ide | default "vscode") "ssh" }}
- port: 22
name: ssh
protocol: TCP
targetPort: ssh
{{- else }}
- port: 5800
name: vnc-web
protocol: TCP
targetPort: vnc-web
{{- end }}
selector:
{{- include "antigravity.labels" . | nindent 4 }}
+8
View File
@@ -9,6 +9,14 @@ image:
# GitHub repository to clone into /workspace
githubRepo: ""
# IDE to launch inside the container.
# Options:
# vscode — VSCode via VNC browser UI on port 5800 (default)
# antigravity — Google Antigravity (VSCode fork) via VNC on port 5800
# ssh — OpenSSH server on port 22 (no VNC GUI)
# Requires SSH_AUTHORIZED_KEYS in the env secret.
ide: vscode
# Happy Coder endpoints
happyServerUrl: "https://happy.farh.net"
happyWebappUrl: "https://happy-coder.farh.net"