From 96dc4ca4df9ac9f03a0ff852e990d2cfaeea40a2 Mon Sep 17 00:00:00 2001 From: Zexi Li Date: Tue, 3 Aug 2021 12:26:33 +0800 Subject: [PATCH] fix(baremetal): inject mac to cmdline --- build/docker/Dockerfile.baremetal-agent | 2 +- build/docker/Dockerfile.baremetal-base | 3 ++- build/docker/Makefile | 2 +- pkg/baremetal/manager.go | 10 ++++++++++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/build/docker/Dockerfile.baremetal-agent b/build/docker/Dockerfile.baremetal-agent index a941512417..439a67f634 100644 --- a/build/docker/Dockerfile.baremetal-agent +++ b/build/docker/Dockerfile.baremetal-agent @@ -1,4 +1,4 @@ -FROM registry.cn-beijing.aliyuncs.com/yunionio/baremetal-base:v0.3.1 +FROM registry.cn-beijing.aliyuncs.com/yunionio/baremetal-base:v0.3.2 MAINTAINER "Zexi Li " diff --git a/build/docker/Dockerfile.baremetal-base b/build/docker/Dockerfile.baremetal-base index 1fea0bef7b..aaf33a4e2b 100644 --- a/build/docker/Dockerfile.baremetal-base +++ b/build/docker/Dockerfile.baremetal-base @@ -1,5 +1,6 @@ FROM --platform=linux/amd64 registry.cn-beijing.aliyuncs.com/yunionio/centos-build:1.1-4 as build -RUN yum install -y https://iso.yunion.cn/vm-images/baremetal-pxerom-1.1.0-21060506.x86_64.rpm +RUN yum install -y https://iso.yunion.cn/vm-images/baremetal-pxerom-1.1.0-21080303.x86_64.rpm +#RUN yum install -y http://192.168.122.112:8083/baremetal-pxerom-1.1.0-21080303.x86_64.rpm FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2 diff --git a/build/docker/Makefile b/build/docker/Makefile index 51de7bb75d..9831cbbc82 100644 --- a/build/docker/Makefile +++ b/build/docker/Makefile @@ -13,7 +13,7 @@ climc-base: docker buildx build --platform linux/arm64,linux/amd64 --push \ -t registry.cn-beijing.aliyuncs.com/yunionio/climc-base:$(CLIMC_BASE_VERSION) -f ./Dockerfile.climc-base . -BAREMETAL_BASE_VERSION = v0.3.1 +BAREMETAL_BASE_VERSION = v0.3.2 baremetal-base: $(DOCKER_BUILDX)/baremetal-base:$(BAREMETAL_BASE_VERSION) -f ./Dockerfile.baremetal-base . diff --git a/pkg/baremetal/manager.go b/pkg/baremetal/manager.go index c9d664d4ef..e79dc428c0 100644 --- a/pkg/baremetal/manager.go +++ b/pkg/baremetal/manager.go @@ -1102,23 +1102,28 @@ LABEL start bootmode := api.BOOT_MODE_PXE if !isTftp { adminNic := b.GetAdminNic() + var mac string var addr string var mask string var gateway string if adminNic != nil { + mac = adminNic.GetMac().String() addr = adminNic.IpAddr mask = adminNic.GetNetMask() gateway = adminNic.Gateway } else { accessIp := b.GetAccessIp() accessNet, _ := b.findAccessNetwork(accessIp) + accessMac := b.GetAccessMac() if accessNet != nil { + mac = accessMac addr = accessIp mask = netutils.Masklen2Mask(int8(accessNet.GuestIpMask)).String() gateway = accessNet.GuestGateway } } serverIP, _ := b.manager.Agent.GetDHCPServerIP() + args = append(args, fmt.Sprintf("mac=%s", mac)) args = append(args, fmt.Sprintf("dest=%s", serverIP)) args = append(args, fmt.Sprintf("gateway=%s", gateway)) args = append(args, fmt.Sprintf("addr=%s", addr)) @@ -1325,6 +1330,11 @@ func (b *SBaremetalInstance) GetAccessIp() string { return accessIp } +func (b *SBaremetalInstance) GetAccessMac() string { + accessMac, _ := b.desc.GetString("access_mac") + return accessMac +} + func (b *SBaremetalInstance) GetServer() baremetaltypes.IBaremetalServer { b.serverLock.Lock() defer b.serverLock.Unlock()