Files
chart/library/common/templates/lib/service/_ports.tpl
Stavros Kois 929e60d801 NAS-121003 / 23.10 / Adapt charts CI and improve/fix common (#1011)
* Adapt charts CI and improve/fix common

* add check on permissions contaienr

* add postgres template

* update comments

* Update create_app.sh

* add check

* update script

* auto gen item.yaml from Chart,yaml

* rename readme on dest

* duplicate readme from the same source

* correct comment

* reoder

* remove extra space

* keep both README and app-readme

* update regex, to also allow 2 letter names, which is also valid

* No need to check host network if there aren't any pod values

* use same pattern as the pod.name label (not prepending release-name

* update deps

* add chart dirs to ci

* Add a validation to check if there is any yaml errors after merging files

* update charts path on ci

* common/1.0.0/ -> common/

* update common-test dep path

* temp update create_app script

* make permissions container name configurable, incase we want to change order of execution

* update naming convention

* fix typo and a missed name change

* do not allow `--` in names
2023-03-16 17:36:19 +02:00

64 lines
2.2 KiB
Smarty

{{/* Service - Ports */}}
{{/* Call this template:
{{ include "ix.v1.common.lib.service.ports" (dict "rootCtx" $rootCtx "objectData" $objectData) -}}
rootCtx: The root context of the chart.
objectData: The object data of the service
*/}}
{{- define "ix.v1.common.lib.service.ports" -}}
{{- $rootCtx := .rootCtx -}}
{{- $objectData := .objectData -}}
{{- $tcpProtocols := (list "tcp" "http" "https") -}}
{{- range $name, $portValues := $objectData.ports -}}
{{- if $portValues.enabled -}}
{{- $protocol := $rootCtx.Values.fallbackDefaults.serviceProtocol -}} {{/* Default to fallback protocol, if no protocol is defined */}}
{{- $port := $portValues.port -}}
{{- $targetPort := $portValues.targetPort -}}
{{- $nodePort := $portValues.nodePort -}}
{{/* Expand port */}}
{{- if (kindIs "string" $port) -}}
{{- $port = (tpl $port $rootCtx) -}}
{{- end -}}
{{- $port = int $port -}}
{{/* Expand targetPort */}}
{{- if (kindIs "string" $targetPort) -}}
{{- $targetPort = tpl $targetPort $rootCtx -}}
{{- end -}}
{{- $targetPort = int $targetPort -}}
{{/* Expand nodePort */}}
{{- if (kindIs "string" $nodePort) -}}
{{- $nodePort = tpl $nodePort $rootCtx -}}
{{- end -}}
{{- $nodePort = int $nodePort -}}
{{- with $portValues.protocol -}}
{{- $protocol = tpl . $rootCtx -}}
{{- if mustHas $protocol $tcpProtocols -}}
{{- $protocol = "tcp" -}}
{{- end -}}
{{- end }}
- name: {{ $name }}
port: {{ $port }}
protocol: {{ $protocol | upper }}
targetPort: {{ $targetPort | default $port }} {{/* If no targetPort, default to port */}}
{{- if (eq $objectData.type "NodePort") -}}
{{- if not $nodePort -}}
{{- fail "Service - Expected non-empty <nodePort> on NodePort service type" -}}
{{- end -}}
{{- $minNodePort := int $rootCtx.Values.global.minNodePort -}}
{{- if (lt $nodePort $minNodePort) -}}
{{- fail (printf "Service - Expected <nodePort> to be higher than [%v], but got [%v]" $minNodePort $nodePort) -}}
{{- end }}
nodePort: {{ $nodePort }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}