2025-08-24 00:09:37 +03:00

34 lines
1.2 KiB
Smarty

{{- define "tc.v1.common.lib.service.integration.cilium" -}}
{{- $objectData := .objectData -}}
{{- $rootCtx := .rootCtx -}}
{{- $_ := set $objectData "integrations" ($objectData.integrations | default dict) -}}
{{- $cilium := $objectData.integrations.cilium -}}
{{- if $cilium.enabled -}}
{{- include "tc.v1.common.lib.service.integration.validate" (dict "objectData" $objectData "integration" $cilium) -}}
{{- if and $cilium.sharedKey (ne $objectData.externalTrafficPolicy "Local") -}}
{{/* If externalTrafficPolicy is not set or is not Local, add the shared key as annotation */}}
{{- $_ := set $objectData.annotations "lbipam.cilium.io/sharing-key" $cilium.sharedKey -}}
{{- end -}}
{{- $ips := list -}}
{{/* Handle loadBalancerIP (single) */}}
{{- if $objectData.loadBalancerIP -}}
{{- $ips = mustAppend $ips (tpl $objectData.loadBalancerIP $rootCtx) -}}
{{- end -}}
{{/* Handle loadBalancerIPs (multiple) */}}
{{- range $ip := $objectData.loadBalancerIPs -}}
{{- $ips = mustAppend $ips (tpl $ip $rootCtx) -}}
{{- end -}}
{{- if $ips -}}
{{- $_ := set $objectData.annotations "lbipam.cilium.io/ips" (join "," $ips) -}}
{{- end -}}
{{- end -}}
{{- end -}}