diff --git a/internal/app/machined/pkg/runtime/v1alpha1/platform/opennebula/opennebula.go b/internal/app/machined/pkg/runtime/v1alpha1/platform/opennebula/opennebula.go index 67a5fa6c0..55af50765 100644 --- a/internal/app/machined/pkg/runtime/v1alpha1/platform/opennebula/opennebula.go +++ b/internal/app/machined/pkg/runtime/v1alpha1/platform/opennebula/opennebula.go @@ -127,27 +127,29 @@ func (o *OpenNebula) ParseMetadata(st state.State, oneContextPlain []byte) (*run }, ) - // Parse gateway address and create RouteSpecSpec entry - gateway, err := netip.ParseAddr(oneContext[ifaceName+"_GATEWAY"]) - if err != nil { - return nil, fmt.Errorf("failed to parse gateway ip: %w", err) + if oneContext[ifaceName+"_GATEWAY"] != "" { + // Parse gateway address and create RouteSpecSpec entry + gateway, err := netip.ParseAddr(oneContext[ifaceName+"_GATEWAY"]) + if err != nil { + return nil, fmt.Errorf("failed to parse gateway ip: %w", err) + } + + route := network.RouteSpecSpec{ + ConfigLayer: network.ConfigPlatform, + Gateway: gateway, + OutLinkName: ifaceNameLower, + Table: nethelpers.TableMain, + Protocol: nethelpers.ProtocolStatic, + Type: nethelpers.TypeUnicast, + Family: nethelpers.FamilyInet4, + Priority: network.DefaultRouteMetric, + } + + route.Normalize() + + networkConfig.Routes = append(networkConfig.Routes, route) } - route := network.RouteSpecSpec{ - ConfigLayer: network.ConfigPlatform, - Gateway: gateway, - OutLinkName: ifaceNameLower, - Table: nethelpers.TableMain, - Protocol: nethelpers.ProtocolStatic, - Type: nethelpers.TypeUnicast, - Family: nethelpers.FamilyInet4, - Priority: network.DefaultRouteMetric, - } - - route.Normalize() - - networkConfig.Routes = append(networkConfig.Routes, route) - // Parse DNS servers dnsServers := strings.Fields(oneContext[ifaceName+"_DNS"])