95 lines
4.0 KiB
Smarty
95 lines
4.0 KiB
Smarty
|
{{/*
|
||
|
Template to render VPN addon
|
||
|
It will include / inject the required templates based on the given values.
|
||
|
*/}}
|
||
|
{{- define "tc.v1.common.addon.vpn" -}}
|
||
|
{{- if ne "disabled" .Values.addons.vpn.type -}}
|
||
|
|
||
|
{{- if .Values.addons.vpn.config -}}
|
||
|
{{/* Append the vpn config secret to the secrets */}}
|
||
|
{{- $secret := include "tc.v1.common.addon.vpn.secret" . | fromYaml -}}
|
||
|
{{- if $secret -}}
|
||
|
{{- $_ := set .Values.secret "vpnconfig" $secret -}}
|
||
|
{{- end -}}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- if or .Values.addons.vpn.scripts.up .Values.addons.vpn.scripts.down -}}
|
||
|
{{/* Append the vpn up/down scripts to the configmaps */}}
|
||
|
{{- $configmap := include "tc.v1.common.addon.vpn.configmap" . | fromYaml -}}
|
||
|
{{- if $configmap -}}
|
||
|
{{- $_ := set .Values.configmap "vpnscripts" $configmap -}}
|
||
|
{{- end -}}
|
||
|
{{- end }}
|
||
|
|
||
|
{{- if or .Values.addons.vpn.configFile .Values.addons.vpn.config .Values.addons.vpn.existingSecret -}}
|
||
|
{{/* Append the vpn config to the persistence */}}
|
||
|
{{- $configper := include "tc.v1.common.addon.vpn.volume.config" . | fromYaml -}}
|
||
|
{{- if $configper -}}
|
||
|
{{- $_ := set .Values.persistence "vpnconfig" $configper -}}
|
||
|
{{- end -}}
|
||
|
{{- end -}}
|
||
|
|
||
|
{{- if or .Values.addons.vpn.scripts.up .Values.addons.vpn.scripts.down -}}
|
||
|
{{/* Append the vpn scripts to the persistence */}}
|
||
|
{{- $scriptsper := include "tc.v1.common.addon.vpn.volume.scripts" . | fromYaml -}}
|
||
|
{{- if $scriptsper -}}
|
||
|
{{- $_ := set .Values.persistence "vpnscripts" $scriptsper -}}
|
||
|
{{- end -}}
|
||
|
{{- end -}}
|
||
|
|
||
|
{{- if .Values.addons.vpn.configFolder -}}
|
||
|
{{/* Append the vpn folder to the persistence */}}
|
||
|
{{- $folderper := include "tc.v1.common.addon.vpn.volume.folder" . | fromYaml -}}
|
||
|
{{- if $folderper -}}
|
||
|
{{- $_ := set .Values.persistence "vpnfolder" $folderper -}}
|
||
|
{{- end -}}
|
||
|
{{- end -}}
|
||
|
|
||
|
{{/* Ensure target Selector defaults to main pod even if unset */}}
|
||
|
{{- $targetSelector := list "main" -}}
|
||
|
{{- if $.Values.addons.codeserver.targetSelector -}}
|
||
|
{{- $targetSelector = $.Values.addons.codeserver.targetSelector -}}
|
||
|
{{- end -}}
|
||
|
|
||
|
{{/* Append the vpn container to the containers */}}
|
||
|
{{- range $targetSelector -}}
|
||
|
{{- if eq "gluetun" $.Values.addons.vpn.type -}}
|
||
|
{{- $container := include "tc.v1.common.addon.vpn.gluetun.container" $ | fromYaml -}}
|
||
|
{{- if $container -}}
|
||
|
{{- $workload := get $.Values.workload . -}}
|
||
|
{{- $_ := set $workload.podSpec.containers "vpn" $container -}}
|
||
|
{{- end -}}
|
||
|
{{- else if eq "tailscale" $.Values.addons.vpn.type -}}
|
||
|
{{/* FIXME: https://github.com/tailscale/tailscale/issues/8188 */}}
|
||
|
{{- $_ := set $.Values.podOptions "automountServiceAccountToken" true -}}
|
||
|
{{- $container := include "tc.v1.common.addon.vpn.tailscale.container" $ | fromYaml -}}
|
||
|
{{- if $container -}}
|
||
|
{{- $workload := get $.Values.workload . -}}
|
||
|
{{- $_ := set $workload.podSpec.containers "tailscale" $container -}}
|
||
|
{{- end -}}
|
||
|
{{- else if eq "openvpn" $.Values.addons.vpn.type -}}
|
||
|
{{- $container := include "tc.v1.common.addon.vpn.openvpn.container" $ | fromYaml -}}
|
||
|
{{- if $container -}}
|
||
|
{{- $workload := get $.Values.workload . -}}
|
||
|
{{- $_ := set $workload.podSpec.containers "vpn" $container -}}
|
||
|
{{- end -}}
|
||
|
{{- else if eq "wireguard" $.Values.addons.vpn.type -}}
|
||
|
{{- $container := include "tc.v1.common.addon.vpn.wireguard.container" $ | fromYaml -}}
|
||
|
{{- if $container -}}
|
||
|
{{- $workload := get $.Values.workload . -}}
|
||
|
{{- $_ := set $workload.podSpec.containers "vpn" $container -}}
|
||
|
{{- end -}}
|
||
|
{{- end -}}
|
||
|
{{- end -}}
|
||
|
|
||
|
{{- if eq "tailscale" $.Values.addons.vpn.type -}}
|
||
|
{{/* Append the empty tailscale folder to the persistence */}}
|
||
|
{{- $tailscaledir := include "tc.v1.common.addon.vpn.volume.tailscale" . | fromYaml -}}
|
||
|
{{- if $tailscaledir -}}
|
||
|
{{- $_ := set .Values.persistence "tailscalestate" $tailscaledir -}}
|
||
|
{{- end -}}
|
||
|
{{- end -}}
|
||
|
|
||
|
{{- end -}}
|
||
|
{{- end -}}
|