From 5ef47e563106c01e373ff5f39f0ec51d1b9c8c5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20=22WanzenBug=22=20Wanzenb=C3=B6ck?= Date: Tue, 20 Jul 2021 11:49:23 +0200 Subject: [PATCH] Add --name flag to image build This lets the user set the name of the provisioning VM. This is useful in case the image name would create an invalid DNS label for the VM. --- cmd/image_build.go | 9 ++++++++- internal/virter/image.go | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/cmd/image_build.go b/cmd/image_build.go index 1dd8c47..bc4e9fb 100644 --- a/cmd/image_build.go +++ b/cmd/image_build.go @@ -24,6 +24,7 @@ import ( func imageBuildCommand() *cobra.Command { var vmID uint + var vmName string var provisionFile string var provisionOverrides []string @@ -57,6 +58,10 @@ func imageBuildCommand() *cobra.Command { baseImageName := args[0] newImageName := LocalImageName(args[1]) + if vmName == "" { + vmName = newImageName + } + ctx, cancel := onInterruptWrap(context.Background()) defer cancel() @@ -152,7 +157,7 @@ func imageBuildCommand() *cobra.Command { vmConfig := virter.VMConfig{ Image: baseImage, - Name: newImageName, + Name: vmName, MemoryKiB: memKiB, BootCapacityKiB: bootCapacityKiB, VCPUs: vcpus, @@ -179,6 +184,7 @@ func imageBuildCommand() *cobra.Command { } buildConfig := virter.ImageBuildConfig{ + ImageName: newImageName, ContainerName: containerName, ShutdownTimeout: shutdownTimeout, ProvisionConfig: provisionConfig, @@ -224,6 +230,7 @@ func imageBuildCommand() *cobra.Command { buildCmd.Flags().StringVarP(&provisionFile, "provision", "p", "", "name of toml file containing provisioning steps") buildCmd.Flags().StringArrayVarP(&provisionOverrides, "set", "s", []string{}, "set/override provisioning steps") buildCmd.Flags().UintVarP(&vmID, "id", "", 0, "ID for VM which determines the IP address") + buildCmd.Flags().StringVarP(&vmName, "name", "", "", "Name to use for provisioning VM") buildCmd.Flags().UintVar(&vcpus, "vcpus", 1, "Number of virtual CPUs to allocate for the VM") u := unit.MustNewUnit(sizeUnits) mem = u.MustNewValue(1*sizeUnits["G"], unit.None) diff --git a/internal/virter/image.go b/internal/virter/image.go index d767c16..01a4234 100644 --- a/internal/virter/image.go +++ b/internal/virter/image.go @@ -530,6 +530,7 @@ type ImageBuildTools struct { // ImageBuildConfig contains the configuration for building an image type ImageBuildConfig struct { + ImageName string ContainerName string ShutdownTimeout time.Duration ProvisionConfig ProvisionConfig @@ -578,7 +579,7 @@ func (v *Virter) imageBuildProvisionCommit(ctx context.Context, tools ImageBuild } } - err = v.VMCommit(ctx, tools.AfterNotifier, vmConfig.Name, vmConfig.Name, true, buildConfig.ShutdownTimeout, vmConfig.StaticDHCP, opts...) + err = v.VMCommit(ctx, tools.AfterNotifier, vmConfig.Name, buildConfig.ImageName, true, buildConfig.ShutdownTimeout, vmConfig.StaticDHCP, opts...) if err != nil { return err }