2025-08-24 00:09:37 +03:00

73 lines
2.5 KiB
Smarty

{{/*
Template to render code-server addon
It will include / inject the required templates based on the given values.
*/}}
{{- define "tc.v1.common.addon.codeserver" -}}
{{- $codeSrv := $.Values.addons.codeserver -}}
{{- if $codeSrv.enabled -}}
{{- $targetSelector := list "main" -}}
{{- if $codeSrv.targetSelector -}}
{{- $targetSelector = $codeSrv.targetSelector -}}
{{- end -}}
{{- if gt ($targetSelector|len) 1 -}}
{{- fail "Codeserver Addon - Can only be attached to a single workload at a time" -}}
{{- end -}}
{{/* Append the code-server container to the workloads */}}
{{- range $targetSelector -}}
{{- $workload := get $.Values.workload . -}}
{{- $_ := set $workload.podSpec.containers "codeserver" $codeSrv.container -}}
{{- end -}}
{{/* Add the code-server service */}}
{{- if $codeSrv.service.enabled -}}
{{/* Add the code-server service */}}
{{- $hasPrimaryService := false -}}
{{- $result := (include "tc.v1.common.lib.service.hasPrimary" $) | fromJson -}}
{{- if and $result.hasEnabled $result.hasPrimary -}}
{{- $hasPrimaryService = true -}}
{{- end -}}
{{- $svcValues := $codeSrv.service -}}
{{- $_ := set $svcValues "targetSelector" ($targetSelector|first) -}}
{{- if not $hasPrimaryService -}}
{{- $_ := set $svcValues "primary" true -}}
{{- end -}}
{{- if not $.Values.service -}}
{{- $_ := set $.Values "service" dict -}}
{{- end -}}
{{- $_ := set $.Values.service "codeserver" $svcValues -}}
{{- end -}}
{{/* Add the code-server ingress */}}
{{- if $codeSrv.ingress.enabled -}}
{{- $ingressValues := $codeSrv.ingress -}}
{{- if not $ingressValues.targetSelector -}}
{{/* Assumes that both service and port are named codeserver */}}
{{- $_ := set $ingressValues "targetSelector" (dict "codeserver" "codeserver") -}}
{{- end -}}
{{- $hasPrimaryIngress := false -}}
{{- $result := (include "tc.v1.common.lib.ingress.hasPrimary" $) | fromJson -}}
{{- if and $result.hasEnabled $result.hasPrimary -}}
{{- $hasPrimaryIngress = true -}}
{{- end -}}
{{- if not $hasPrimaryIngress -}}
{{- $_ := set $ingressValues "primary" true -}}
{{- end -}}
{{- if not $.Values.ingress -}}
{{- $_ := set $.Values "ingress" dict -}}
{{- end -}}
{{/* Let spawner handle the rest */}}
{{- $_ := set $.Values.ingress "codeserver" $ingressValues -}}
{{- end -}}
{{- end -}}
{{- end -}}