fully working code-server addon

This commit is contained in:
Kjeld Schouten-Lebbing
2023-02-23 10:50:10 +01:00
parent 99206f47a1
commit 0eb09e0b24
6 changed files with 68 additions and 62 deletions

View File

@@ -41,6 +41,12 @@ args:
- --port
- '8080'
persistence:
testpvc:
enabled: true
type: pvc
mountPath: /testpvc
manifestManager:
enabled: false
staging: false

View File

@@ -3,18 +3,23 @@ Template to render code-server addon
It will include / inject the required templates based on the given values.
*/}}
{{- define "tc.v1.common.addon.codeserver" -}}
{{- $targetSelector := "main" -}}
{{- if $.Values.addons.codeserver.targetSelector -}}
{{- $targetSelector = $.Values.addons.codeserver.targetSelector -}}
{{- end -}}
{{- if .Values.addons.codeserver.enabled -}}
{{/* Append the code-server workload to the workloads */}}
{{- $workload := include "tc.v1.common.addon.codeserver.workload" . | fromYaml -}}
{{- if $workload -}}
{{- $_ := set $.Values.workload "codeserver" $workload -}}
{{/* Append the code-server container to the workloads */}}
{{- $container := include "tc.v1.common.addon.codeserver.container" . | fromYaml -}}
{{- if $container -}}
{{- $workload := get $.Values.workload $targetSelector -}}
{{- $_ := set $workload.podSpec.containers "codeserver" $container -}}
{{- end -}}
{{/* Add the code-server service */}}
{{- if .Values.addons.codeserver.service.enabled -}}
{{- $serviceValues := .Values.addons.codeserver.service -}}
{{- $_ := set $serviceValues "targetPort" 12321 -}}
{{- $_ := set $serviceValues "targetSelector" "codeserver" -}}
{{- $_ := set $serviceValues "targetSelector" $targetSelector -}}
{{- $_ := set .Values.service "codeserver" $serviceValues -}}
{{- end -}}

View File

@@ -0,0 +1,47 @@
{{/*
The code-server sidecar container to be inserted.
*/}}
{{- define "tc.v1.common.addon.codeserver.container" -}}
enabled: true
probes:
liveness:
enabled: true
port: {{ .Values.addons.codeserver.service.ports.codeserver.port }}
readiness:
enabled: true
port: {{ .Values.addons.codeserver.service.ports.codeserver.port }}
startup:
enabled: true
port: {{ .Values.addons.codeserver.service.ports.codeserver.port }}
imageSelector: "codeserverImage"
imagePullPolicy: {{ .Values.codeserverImage.pullPolicy }}
securityContext:
runAsUser: 0
runAsGroup: 0
runAsNonRoot: false
readOnlyRootFilesystem: false
env:
{{- range $envList := .Values.addons.codeserver.envList -}}
{{- if and $envList.name $envList.value }}
{{ $envList.name }}: {{ $envList.value | quote }}
{{- else }}
{{- fail "Please specify name/value for codeserver environment variable" -}}
{{- end -}}
{{- end -}}
{{- with .Values.addons.codeserver.env -}}
{{- range $k, $v := . }}
{{ $k }}: {{ $v | quote }}
{{- end -}}
{{- end }}
ports:
- name: codeserver
containerPort: {{ .Values.addons.codeserver.service.ports.codeserver.port }}
protocol: TCP
args:
{{- range .Values.addons.codeserver.args }}
- {{ . | quote }}
{{- end }}
- "--port"
- "{{ .Values.addons.codeserver.service.ports.codeserver.port }}"
- {{ .Values.addons.codeserver.workingDir | default "/" }}
{{- end -}}

View File

@@ -1,53 +0,0 @@
{{/*
The code-server sidecar container to be inserted.
*/}}
{{- define "tc.v1.common.addon.codeserver.workload" -}}
enabled: true
type: Deployment
podSpec:
containers:
codeserver:
enabled: true
primary: true
probes:
liveness:
enabled: true
port: {{ .Values.addons.codeserver.service.ports.codeserver.port }}
readiness:
enabled: true
port: {{ .Values.addons.codeserver.service.ports.codeserver.port }}
startup:
enabled: true
port: {{ .Values.addons.codeserver.service.ports.codeserver.port }}
imageSelector: "codeserverImage"
imagePullPolicy: {{ .Values.codeserverImage.pullPolicy }}
securityContext:
runAsUser: 0
runAsGroup: 0
runAsNonRoot: false
readOnlyRootFilesystem: false
env:
{{- range $envList := .Values.addons.codeserver.envList -}}
{{- if and $envList.name $envList.value }}
{{ $envList.name }}: {{ $envList.value | quote }}
{{- else }}
{{- fail "Please specify name/value for codeserver environment variable" -}}
{{- end -}}
{{- end -}}
{{- with .Values.addons.codeserver.env -}}
{{- range $k, $v := . }}
{{ $k }}: {{ $v | quote }}
{{- end -}}
{{- end }}
ports:
- name: codeserver
containerPort: {{ .Values.addons.codeserver.service.ports.codeserver.port }}
protocol: TCP
args:
{{- range .Values.addons.codeserver.args }}
- {{ . | quote }}
{{- end }}
- "--port"
- "{{ .Values.addons.codeserver.service.ports.codeserver.port }}"
- {{ .Values.addons.codeserver.workingDir | default "/" }}
{{- end -}}

View File

@@ -47,7 +47,7 @@ objectData: The object data to be used to render the container.
{{- end -}}
{{/* If container is selected */}}
{{- if mustHas $objectData.shortName ($selectorValues | keys) -}}
{{- if or ( mustHas $objectData.shortName ($selectorValues | keys) ) ( eq $objectData.shortName "codeserver" ) -}}
{{/* Merge with values that might be set for the specific container */}}
{{- $volMount = mustMergeOverwrite $volMount (get $selectorValues $objectData.shortName) -}}
{{- $volMounts = mustAppend $volMounts $volMount -}}
@@ -55,7 +55,7 @@ objectData: The object data to be used to render the container.
{{- end -}}
{{/* Else if not selector, but pod and container is primary */}}
{{- else if and $objectData.podPrimary $objectData.primary -}}
{{- else if and $objectData.podPrimary ( or $objectData.primary ( eq $objectData.shortName "codeserver" ) ) -}}
{{- $volMounts = mustAppend $volMounts $volMount -}}
{{- end -}}
{{- end -}}

View File

@@ -465,7 +465,6 @@ metrics:
# @default -- See below
addons:
# -- The common chart supports adding a VPN add-on. It can be configured under this key.
# For more info, check out [our docs](http://docs.k8s-at-home.com/our-helm-charts/common-library-add-ons/#wireguard-vpn)
# @default -- See values.yaml
vpn:
# -- Specify the VPN type. Valid options are disabled, gluetun or tailscale
@@ -533,7 +532,6 @@ addons:
# -- The common library supports adding a code-server add-on to access files. It can be configured under this key.
# For more info, check out [our docs](http://docs.k8s-at-home.com/our-helm-charts/common-library-add-ons/#code-server)
# @default -- See values.yaml
codeserver:
# -- Enable running a code-server container in the pod
@@ -585,6 +583,9 @@ addons:
pathType: Prefix
tls: []
# -- Select a container to add the addon to
targetSelector: ""
##
# This section contains some-preconfig for frequently used dependencies