{{/* External Interface Annotations that are added to podSpec */}} {{/* Call this template: {{ include "tc.v1.common.lib.metadata.externalInterfacePodAnnotations" (dict "rootCtx" $ "podShortName" $podShortName) }} rootCtx is the root context of the chart objectData is object containing the data of the pod */}} {{- define "tc.v1.common.lib.metadata.externalInterfacePodAnnotations" -}} {{- $objectData := .objectData -}} {{- $rootCtx := .rootCtx -}} {{- $ifaceIndexes := list -}} {{- range $index, $iface := $rootCtx.Values.scaleExternalInterface -}} {{/* If targetSelectAll is set append the index */}} {{- if .targetSelectAll -}} {{- $ifaceIndexes = mustAppend $ifaceIndexes $index -}} {{/* Else If targetSelector is set and pod is selected append the index */}} {{- else if and .targetSelector (mustHas $objectData.shortName .targetSelector) -}} {{- $ifaceIndexes = mustAppend $ifaceIndexes $index -}} {{/* Else If none of the above, but pod is primary append the index */}} {{- else if $objectData.primary -}} {{- $ifaceIndexes = mustAppend $ifaceIndexes $index -}} {{- end -}} {{- end -}} {{- $ifaceNames := list -}} {{- if $rootCtx.Values.ixExternalInterfacesConfiguration -}} {{- with $rootCtx.Values.ixExternalInterfacesConfigurationNames -}} {{- range $ifaceName := . -}} {{/* Get the index by splitting the iFaceName (ix-release-name-0) */}} {{- $index := splitList "-" $ifaceName -}} {{/* And pick the last item on the list */}} {{- $index = mustLast $index -}} {{/* If the index is in the list of indexes to be added, append the name */}} {{- if mustHas (int $index) $ifaceIndexes -}} {{- $ifaceNames = mustAppend $ifaceNames $ifaceName -}} {{- end -}} {{- end -}} {{- else -}} {{- fail "External Interface - Expected non empty " -}} {{- end -}} {{- end -}} {{/* If we have ifaceNames, then add the annotations to the pod calling this template */}} {{- if $ifaceNames }} k8s.v1.cni.cncf.io/networks: {{ join ", " $ifaceNames }} {{- end -}} {{- end -}}