@@ -291,20 +291,29 @@ func ensureNetworkExt(client *gophercloud.ServiceClient, createOpts networks.Cre
291291 return foundNetwork , nil
292292}
293293
294- func ensureProvSubnet (client * gophercloud.ServiceClient , providerNetwork * networks.Network , log * logr.Logger ) (
295- * subnets.Subnet , error ) {
296- gatewayIP := LbProvSubnetGatewayIP
294+ func ensureProvSubnet (
295+ client * gophercloud.ServiceClient ,
296+ providerNetwork * networks.Network ,
297+ networkParameters * NetworkParameters ,
298+ log * logr.Logger ,
299+ ) (* subnets.Subnet , error ) {
300+ var gatewayIP string
301+ if networkParameters .Gateway .IsValid () {
302+ gatewayIP = networkParameters .Gateway .String ()
303+ } else {
304+ gatewayIP = ""
305+ }
297306 createOpts := subnets.CreateOpts {
298307 Name : LbProvSubnetName ,
299308 Description : LbProvSubnetDescription ,
300309 NetworkID : providerNetwork .ID ,
301310 TenantID : providerNetwork .TenantID ,
302- CIDR : LbProvSubnetCIDR ,
311+ CIDR : networkParameters . CIDR . String () ,
303312 IPVersion : gophercloud .IPVersion (4 ),
304313 AllocationPools : []subnets.AllocationPool {
305314 {
306- Start : LbProvSubnetAllocationPoolStart ,
307- End : LbProvSubnetAllocationPoolEnd ,
315+ Start : networkParameters . AllocationStart . String () ,
316+ End : networkParameters . AllocationEnd . String () ,
308317 },
309318 },
310319 GatewayIP : & gatewayIP ,
@@ -339,6 +348,7 @@ func ensureLbMgmtSubnet(
339348 client * gophercloud.ServiceClient ,
340349 networkDetails * octaviav1.OctaviaLbMgmtNetworks ,
341350 tenantNetwork * networks.Network ,
351+ networkParameters * NetworkParameters ,
342352 log * logr.Logger ,
343353) (* subnets.Subnet , error ) {
344354 ipVersion := networkDetails .SubnetIPVersion
@@ -381,7 +391,7 @@ func ensureLbMgmtSubnet(
381391 },
382392 HostRoutes : []subnets.HostRoute {
383393 {
384- DestinationCIDR : LbProvSubnetCIDR ,
394+ DestinationCIDR : networkParameters . CIDR . String () ,
385395 NextHop : LbMgmtRouterPortIPv4 ,
386396 },
387397 },
@@ -422,10 +432,10 @@ func ensureLbMgmtNetwork(client *gophercloud.ServiceClient, networkDetails *octa
422432 return mgmtNetwork , nil
423433}
424434
425- func externalFixedIPs (subnetID string ) []routers.ExternalFixedIP {
435+ func externalFixedIPs (subnetID string , networkParameters * NetworkParameters ) []routers.ExternalFixedIP {
426436 ips := []routers.ExternalFixedIP {
427437 {
428- IPAddress : LbRouterFixedIPAddress ,
438+ IPAddress : networkParameters . RouterIPAddress . String () ,
429439 SubnetID : subnetID ,
430440 },
431441 }
@@ -452,6 +462,7 @@ func compareExternalFixedIPs(a []routers.ExternalFixedIP, b []routers.ExternalFi
452462func reconcileRouter (client * gophercloud.ServiceClient , router * routers.Router ,
453463 gatewayNetwork * networks.Network ,
454464 gatewaySubnet * subnets.Subnet ,
465+ networkParameters * NetworkParameters ,
455466 log * logr.Logger ) (* routers.Router , error ) {
456467
457468 if ! router .AdminStateUp {
@@ -464,7 +475,7 @@ func reconcileRouter(client *gophercloud.ServiceClient, router *routers.Router,
464475 needsUpdate := false
465476 updateInfo := routers.UpdateOpts {}
466477 enableSNAT := false
467- fixedIPs := externalFixedIPs (gatewaySubnet .ID )
478+ fixedIPs := externalFixedIPs (gatewaySubnet .ID , networkParameters )
468479
469480 //
470481 // TODO(beagles) we don't care about the other fields right now because we
@@ -752,6 +763,7 @@ func EnsureAmphoraManagementNetwork(
752763 ns string ,
753764 tenantName string ,
754765 netDetails * octaviav1.OctaviaLbMgmtNetworks ,
766+ networkParameters * NetworkParameters ,
755767 log * logr.Logger ,
756768 helper * helper.Helper ,
757769) (NetworkProvisioningSummary , error ) {
@@ -772,7 +784,7 @@ func EnsureAmphoraManagementNetwork(
772784 if err != nil {
773785 return NetworkProvisioningSummary {}, err
774786 }
775- tenantSubnet , err := ensureLbMgmtSubnet (client , netDetails , tenantNetwork , log )
787+ tenantSubnet , err := ensureLbMgmtSubnet (client , netDetails , tenantNetwork , networkParameters , log )
776788 if err != nil {
777789 return NetworkProvisioningSummary {}, err
778790 }
@@ -811,7 +823,7 @@ func EnsureAmphoraManagementNetwork(
811823 return NetworkProvisioningSummary {}, err
812824 }
813825
814- providerSubnet , err := ensureProvSubnet (client , providerNetwork , log )
826+ providerSubnet , err := ensureProvSubnet (client , providerNetwork , networkParameters , log )
815827 if err != nil {
816828 return NetworkProvisioningSummary {}, err
817829 }
@@ -822,7 +834,7 @@ func EnsureAmphoraManagementNetwork(
822834 }
823835 if router != nil {
824836 log .Info ("Router object found, reconciling" )
825- router , err = reconcileRouter (client , router , providerNetwork , providerSubnet , log )
837+ router , err = reconcileRouter (client , router , providerNetwork , providerSubnet , networkParameters , log )
826838 if err != nil {
827839 return NetworkProvisioningSummary {}, err
828840 }
@@ -833,7 +845,7 @@ func EnsureAmphoraManagementNetwork(
833845 gatewayInfo := routers.GatewayInfo {
834846 NetworkID : providerNetwork .ID ,
835847 EnableSNAT : & enableSNAT ,
836- ExternalFixedIPs : externalFixedIPs (providerSubnet .ID ),
848+ ExternalFixedIPs : externalFixedIPs (providerSubnet .ID , networkParameters ),
837849 }
838850 adminStateUp := true
839851 createOpts := routers.CreateOpts {
0 commit comments