Skip to content

Commit

Permalink
cmd/microcloud: Store the interface names in preseed mode
Browse files Browse the repository at this point in the history
Signed-off-by: Gabriel Mougard <gabriel.mougard@canonical.com>
  • Loading branch information
gabrielmougard committed Dec 2, 2024
1 parent 4603219 commit 906c70a
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions cmd/microcloud/preseed.go
Original file line number Diff line number Diff line change
@@ -794,6 +794,7 @@ func (p *Preseed) Parse(s *service.Handler, c *initConfig, installedServices map
return nil, fmt.Errorf("Failed to parse supplied underlay IP %q", sys.UnderlayIP)
}

ovnUnderlayIfaceByPeer := make(map[string]string)
for _, iface := range addressedInterfaces[sys.Name] {
for _, cidr := range iface.Addresses {
_, subnet, err := net.ParseCIDR(cidr)
@@ -803,6 +804,7 @@ func (p *Preseed) Parse(s *service.Handler, c *initConfig, installedServices map

if subnet.Contains(underlayIP) {
assignedSystems[sys.Name] = true
ovnUnderlayIfaceByPeer[sys.Name] = iface.Network.Name
break
}
}
@@ -812,8 +814,14 @@ func (p *Preseed) Parse(s *service.Handler, c *initConfig, installedServices map
return nil, fmt.Errorf("No available interface found for OVN underlay IP %q", sys.UnderlayIP)
}

ifaceName, ok := ovnUnderlayIfaceByPeer[sys.Name]
if !ok {
return nil, fmt.Errorf("Failed to find OVN underlay interface name for system %q", sys.Name)
}

system := c.systems[sys.Name]
system.OVNGeneveAddr = sys.UnderlayIP
system.OVNGeneveIface = ifaceName
c.systems[sys.Name] = system
}
}
@@ -1084,8 +1092,14 @@ func (p *Preseed) Parse(s *service.Handler, c *initConfig, installedServices map
return nil, err
}

iface, err := lxd.FindInterfaceForSubnet(internalCephNetwork)
if err != nil {
return nil, err
}

bootstrapSystem := c.systems[s.Name]
bootstrapSystem.MicroCephInternalNetworkSubnet = internalCephNetwork
bootstrapSystem.MicroCephInternalNetworkIface = iface.Name
c.systems[s.Name] = bootstrapSystem
}

@@ -1102,8 +1116,14 @@ func (p *Preseed) Parse(s *service.Handler, c *initConfig, installedServices map
return nil, err
}

iface, err := lxd.FindInterfaceForSubnet(publicCephNetwork)
if err != nil {
return nil, err
}

bootstrapSystem := c.systems[s.Name]
bootstrapSystem.MicroCephPublicNetworkSubnet = publicCephNetwork
bootstrapSystem.MicroCephPublicNetworkIface = iface.Name
c.systems[s.Name] = bootstrapSystem
}
} else {

0 comments on commit 906c70a

Please sign in to comment.