refactor: make SSH additive boolean, add ide=none

SSH is now a standalone `ssh: true/false` value that starts sshd on
port 22 *in addition to* whatever IDE is running, rather than replacing
it. The `ide` value loses the `ssh` option and gains `none` (keep
container alive with no GUI IDE, useful when ssh: true is the only
access method).

- chart/values.yaml: replace `ide: ssh` with `ssh: false` boolean
- chart/templates/deployment.yaml: expose port 22 when ssh=true,
  port 5800 when ide!=none; probes use HTTP (VNC) or TCP socket (SSH-only)
- chart/templates/service.yaml: include both ports when both enabled
- scripts/cont-init-sshd.sh: check SSH=true instead of IDE=ssh
- scripts/startapp.sh: add ide=none case (sleep infinity), drop ssh case
- chart/Chart.yaml: bump to 0.1.6
- README.md: update IDE choice and SSH access docs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-20 14:01:05 -05:00
parent 298a1ce6ec
commit 927c9f1051
7 changed files with 50 additions and 27 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.5
version: 0.1.6
appVersion: "latest"
+10 -7
View File
@@ -25,18 +25,21 @@ 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 }}
{{- if ne (.Values.ide | default "vscode") "none" }}
- containerPort: 5800
name: vnc-web
protocol: TCP
{{- end }}
{{- if .Values.ssh }}
- containerPort: 22
name: ssh
protocol: TCP
{{- end }}
env:
- name: IDE
value: {{ .Values.ide | default "vscode" | quote }}
- name: SSH
value: {{ .Values.ssh | toString | quote }}
- name: USER_ID
value: {{ .Values.userId | quote }}
- name: GROUP_ID
@@ -68,7 +71,7 @@ spec:
mountPath: /home
- name: workspace
mountPath: /workspace
{{- if ne (.Values.ide | default "vscode") "ssh" }}
{{- if ne (.Values.ide | default "vscode") "none" }}
livenessProbe:
httpGet:
path: /
@@ -81,7 +84,7 @@ spec:
port: 5800
initialDelaySeconds: 10
periodSeconds: 5
{{- else }}
{{- else if .Values.ssh }}
livenessProbe:
tcpSocket:
port: 22
+7 -6
View File
@@ -6,16 +6,17 @@ metadata:
{{- include "antigravity.labels" . | nindent 4 }}
spec:
ports:
{{- if eq (.Values.ide | default "vscode") "ssh" }}
- port: 22
name: ssh
protocol: TCP
targetPort: ssh
{{- else }}
{{- if ne (.Values.ide | default "vscode") "none" }}
- port: 5800
name: vnc-web
protocol: TCP
targetPort: vnc-web
{{- end }}
{{- if .Values.ssh }}
- port: 22
name: ssh
protocol: TCP
targetPort: ssh
{{- end }}
selector:
{{- include "antigravity.labels" . | nindent 4 }}
+5 -2
View File
@@ -13,10 +13,13 @@ githubRepo: ""
# 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.
# noneno IDE; useful when ssh: true is the sole access method
ide: vscode
# Start an OpenSSH server on port 22 in addition to the IDE.
# Set SSH_AUTHORIZED_KEYS in the env secret to allow key-based login.
ssh: false
# Happy Coder endpoints
happyServerUrl: "https://happy.farh.net"
happyWebappUrl: "https://happy-coder.farh.net"