@@ -2,6 +2,7 @@ package vsphere
2
2
3
3
import (
4
4
"fmt"
5
+ "slices"
5
6
6
7
"github.com/sirupsen/logrus"
7
8
utilsnet "k8s.io/utils/net"
@@ -77,8 +78,13 @@ func GetInfraPlatformSpec(ic *installconfig.InstallConfig, clusterID string) *co
77
78
platformSpec .APIServerInternalIPs = types .StringsToIPs (icPlatformSpec .APIVIPs )
78
79
platformSpec .IngressIPs = types .StringsToIPs (icPlatformSpec .IngressVIPs )
79
80
platformSpec .MachineNetworks = types .MachineNetworksToCIDRs (ic .Config .MachineNetwork )
80
- platformSpec .MachineNetworks = append (platformSpec .MachineNetworks , vipsToCIDRs (ic .Config .VSphere .APIVIPs )... )
81
- platformSpec .MachineNetworks = append (platformSpec .MachineNetworks , vipsToCIDRs (ic .Config .VSphere .IngressVIPs )... )
81
+
82
+ vips := getInstallConfigVIPs (ic )
83
+ for _ , vipCIDR := range vipsToCIDRs (vips ) {
84
+ if ! slices .Contains (platformSpec .MachineNetworks , vipCIDR ) {
85
+ platformSpec .MachineNetworks = append (platformSpec .MachineNetworks , vipCIDR )
86
+ }
87
+ }
82
88
83
89
if ic .Config .EnabledFeatureGates ().Enabled (features .FeatureGateVSphereMultiNetworks ) {
84
90
logrus .Debug ("Multi-networks feature gate enabled" )
@@ -115,3 +121,11 @@ func vipsToCIDRs(vips []string) []configv1.CIDR {
115
121
}
116
122
return cidrs
117
123
}
124
+
125
+ func getInstallConfigVIPs (ic * installconfig.InstallConfig ) []string {
126
+ vips := make ([]string , 0 , len (ic .Config .VSphere .APIVIPs )+ len (ic .Config .VSphere .IngressVIPs ))
127
+ vips = append (vips , ic .Config .VSphere .APIVIPs ... )
128
+ vips = append (vips , ic .Config .VSphere .IngressVIPs ... )
129
+
130
+ return vips
131
+ }
0 commit comments