c8a7bbcd6e
- Add helm.sh/resource-policy: keep to PVC (prevent data loss on uninstall) - Add fail guard for empty name value in Helm templates - Fix Makefile IMAGE_NAME from antigravity to devcontainer - Pin busybox:1.37, homeassistant:v6.7.1, playwright:v0.0.68 (was latest/stable) - Set imagePullPolicy: IfNotPresent on pinned sidecars - Remove fetch/sequentialthinking from .mcp.json (sidecars removed from chart) - Default storage.className to empty (use cluster default, was ceph-filesystem) - Default Happy Coder URLs to empty (was private farh.net endpoints) - Broaden githubRepo schema to accept GitLab/Gitea URLs - Add unknown IDE warning before VSCode fallback - Add mkdir -p before credential file write (fix fresh PVC boot) - Guard app user existence in cont-init-user.sh - Add NOTES.txt post-install template with port-forward and secret hints - Add standard app.kubernetes.io/* labels and separate selectorLabels Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
112 lines
3.1 KiB
Smarty
112 lines
3.1 KiB
Smarty
{{/*
|
|
Resource name prefix: devcontainer-{name}
|
|
*/}}
|
|
{{- define "devcontainer.fullname" -}}
|
|
{{- if not .Values.name }}
|
|
{{- fail "values.name is required and must not be empty" }}
|
|
{{- end }}
|
|
{{- printf "devcontainer-%s" .Values.name }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
PVC name: userhome-{name}
|
|
*/}}
|
|
{{- define "devcontainer.pvcName" -}}
|
|
{{- printf "userhome-%s" .Values.name }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Secret name for env vars, default to devcontainer-{name}-secrets-env
|
|
*/}}
|
|
{{- define "devcontainer.envSecretName" -}}
|
|
{{- .Values.envSecretName | default (printf "devcontainer-%s-secrets-env" .Values.name) }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Common labels
|
|
*/}}
|
|
{{- define "devcontainer.labels" -}}
|
|
app: devcontainer
|
|
instance: {{ .Values.name }}
|
|
app.kubernetes.io/name: devcontainer
|
|
app.kubernetes.io/instance: {{ .Values.name }}
|
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Selector labels — keep narrow since changing these requires recreating the Deployment
|
|
*/}}
|
|
{{- define "devcontainer.selectorLabels" -}}
|
|
app: devcontainer
|
|
instance: {{ .Values.name }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Smart resource sizing based on enabled features
|
|
*/}}
|
|
{{- define "devcontainer.smartResources" -}}
|
|
{{- $baseMemory := "2Gi" }}
|
|
{{- $baseCpu := "1000m" }}
|
|
{{- $limitMemory := "8Gi" }}
|
|
{{- $limitCpu := "4000m" }}
|
|
|
|
{{/* Adjust for enabled MCP sidecars */}}
|
|
{{- if .Values.mcp.sidecars.playwright.enabled }}
|
|
{{- $baseMemory = "3Gi" }}
|
|
{{- $limitMemory = "12Gi" }}
|
|
{{- end }}
|
|
|
|
{{/* Adjust for IDE type */}}
|
|
{{- if eq .Values.ide.type "antigravity" }}
|
|
{{- $baseMemory = "4Gi" }}
|
|
{{- $limitMemory = "16Gi" }}
|
|
{{- end }}
|
|
|
|
requests:
|
|
memory: {{ .Values.resources.requests.memory | default $baseMemory | quote }}
|
|
cpu: {{ .Values.resources.requests.cpu | default $baseCpu | quote }}
|
|
limits:
|
|
memory: {{ .Values.resources.limits.memory | default $limitMemory | quote }}
|
|
cpu: {{ .Values.resources.limits.cpu | default $limitCpu | quote }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Auto-detect environment type and set smart defaults
|
|
*/}}
|
|
{{- define "devcontainer.smartDefaults" -}}
|
|
{{- $isDev := or (contains "dev" .Values.name) (contains "test" .Values.name) (contains "local" .Values.name) }}
|
|
{{- $isProd := or (contains "prod" .Values.name) (contains "production" .Values.name) }}
|
|
{{- $isTeam := or (contains "team" .Values.name) (contains "shared" .Values.name) }}
|
|
|
|
{{/* Development environment - enable more sidecars, smaller resources */}}
|
|
{{- if $isDev }}
|
|
development: true
|
|
{{/* Production environment - conservative defaults, fewer sidecars */}}
|
|
{{- else if $isProd }}
|
|
production: true
|
|
{{/* Team environment - enable SSH, more resources */}}
|
|
{{- else if $isTeam }}
|
|
team: true
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Smart MCP sidecar selection based on cluster access
|
|
*/}}
|
|
{{- define "devcontainer.mcpDefaults" -}}
|
|
{{- if eq .Values.clusterAccess "none" }}
|
|
{{/* No cluster access - disable k8s/flux sidecars */}}
|
|
kubernetes:
|
|
enabled: false
|
|
flux:
|
|
enabled: false
|
|
{{- else }}
|
|
{{/* Has cluster access - enable k8s sidecars */}}
|
|
kubernetes:
|
|
enabled: true
|
|
flux:
|
|
enabled: {{ ne .Values.clusterAccess "readonly" }}
|
|
{{- end }}
|
|
{{- end }}
|