73 lines
2.5 KiB
Smarty
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 -}}
|