From 8c7ba2795b02708f8f90c64f08d1a494294b9de3 Mon Sep 17 00:00:00 2001 From: Dinar Valeev Date: Mon, 29 Apr 2024 15:36:04 +0200 Subject: [PATCH] Fix static IP allocation When creating a VIP if autoallocate is set along with static IP, autoallocate is taking over precedence. Signed-off-by: Dinar Valeev --- internal/rest/avi_obj_vsvip.go | 4 ++++ pkg/utils/utils.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/internal/rest/avi_obj_vsvip.go b/internal/rest/avi_obj_vsvip.go index fbc7afba3..3711f5fc9 100644 --- a/internal/rest/avi_obj_vsvip.go +++ b/internal/rest/avi_obj_vsvip.go @@ -108,8 +108,10 @@ func (rest *RestOperations) AviVsVipBuild(vsvip_meta *nodes.AviVSVIPNode, vsCach if vsvip_meta.IPAddress != "" { if utils.IsV4(vsvip_meta.IPAddress) { vip.IPAddress = &avimodels.IPAddr{Type: &ipType, Addr: &vsvip_meta.IPAddress} + vip.AutoAllocateIP = utils.BoolToPtr(false) } else { vip.Ip6Address = &avimodels.IPAddr{Type: &ip6Type, Addr: &vsvip_meta.IPAddress} + vip.AutoAllocateIP = utils.BoolToPtr(false) } } @@ -182,8 +184,10 @@ func (rest *RestOperations) AviVsVipBuild(vsvip_meta *nodes.AviVSVIPNode, vsCach if vsvip_meta.IPAddress != "" { if utils.IsV4(vsvip_meta.IPAddress) { vip.IPAddress = &avimodels.IPAddr{Type: &ipType, Addr: &vsvip_meta.IPAddress} + vip.AutoAllocateIP = utils.BoolToPtr(false) } else { vip.Ip6Address = &avimodels.IPAddr{Type: &ip6Type, Addr: &vsvip_meta.IPAddress} + vip.AutoAllocateIP = utils.BoolToPtr(false) } } diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index ad19459ef..d8eee5376 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -58,6 +58,10 @@ func IsV4(addr string) bool { return v4 != nil } +func BoolToPtr(b bool) *bool { + return &b +} + /* * Port name is either "http" or "http-suffix" * Following Istio named port convention