From c79d69c2e25ee588f45a8978117300c31871f749 Mon Sep 17 00:00:00 2001 From: Christian WALDBILLIG Date: Thu, 22 Feb 2024 23:52:32 +0100 Subject: [PATCH] fix: only set gateway if set in context (opennebula) Fix the network config setup. Signed-off-by: Christian WALDBILLIG Signed-off-by: Andrey Smirnov --- .../platform/opennebula/opennebula.go | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) 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 67a5fa6c08..55af507655 100644 --- a/internal/app/machined/pkg/runtime/v1alpha1/platform/opennebula/opennebula.go +++ b/internal/app/machined/pkg/runtime/v1alpha1/platform/opennebula/opennebula.go @@ -127,26 +127,28 @@ 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 := 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() + route.Normalize() - networkConfig.Routes = append(networkConfig.Routes, route) + networkConfig.Routes = append(networkConfig.Routes, route) + } // Parse DNS servers dnsServers := strings.Fields(oneContext[ifaceName+"_DNS"])