mirror of
https://github.com/truenas/charts.git
synced 2026-04-28 20:42:23 +08:00
* 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
61 lines
2.0 KiB
Smarty
61 lines
2.0 KiB
Smarty
{{/* Returns Lowest and Highest ports assigned to the any container in the pod */}}
|
|
{{/* Call this template:
|
|
{{ include "ix.v1.common.lib.helpers.securityContext.getPortRange" (dict "rootCtx" $ "objectData" $objectData) }}
|
|
rootCtx: The root context of the chart.
|
|
objectData: The object data to be used to render the Pod.
|
|
*/}}
|
|
{{- define "ix.v1.common.lib.helpers.securityContext.getPortRange" -}}
|
|
{{- $rootCtx := .rootCtx -}}
|
|
{{- $objectData := .objectData -}}
|
|
|
|
{{ $portRange := (dict "high" 0 "low" 0) }}
|
|
|
|
{{- range $name, $service := $rootCtx.Values.service -}}
|
|
{{- $selected := false -}}
|
|
{{/* If service is enabled... */}}
|
|
{{- if $service.enabled -}}
|
|
|
|
{{/* If there is a selector */}}
|
|
{{- if $service.targetSelector -}}
|
|
|
|
{{/* And pod is selected */}}
|
|
{{- if eq $service.targetSelector $objectData.shortName -}}
|
|
{{- $selected = true -}}
|
|
{{- end -}}
|
|
|
|
{{- else -}}
|
|
{{/* If no selector is defined but pod is primary */}}
|
|
{{- if $objectData.primary -}}
|
|
{{- $selected = true -}}
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- if $selected -}}
|
|
{{- range $name, $portValues := $service.ports -}}
|
|
{{- if $portValues.enabled -}}
|
|
|
|
{{- $portToCheck := ($portValues.targetPort | default $portValues.port) -}}
|
|
{{- if kindIs "string" $portToCheck -}}
|
|
{{/* Helm stores ints as floats, so convert string to float before comparing */}}
|
|
{{- $portToCheck = (tpl $portToCheck $rootCtx) | float64 -}}
|
|
{{- end -}}
|
|
|
|
{{- if or (not $portRange.low) (lt $portToCheck ($portRange.low | float64)) -}}
|
|
{{- $_ := set $portRange "low" $portToCheck -}}
|
|
{{- end -}}
|
|
|
|
{{- if or (not $portRange.high) (gt $portToCheck ($portRange.high | float64)) -}}
|
|
{{- $_ := set $portRange "high" $portToCheck -}}
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|
|
|
|
{{- $portRange | toJson -}}
|
|
{{- end -}}
|