diff --git a/builder/lxd/config.go b/builder/lxd/config.go index 73de7212e..6a4745510 100644 --- a/builder/lxd/config.go +++ b/builder/lxd/config.go @@ -12,10 +12,11 @@ import ( type Config struct { common.PackerConfig `mapstructure:",squash"` - OutputImage string `mapstructure:"output_image"` - ContainerName string `mapstructure:"container_name"` - CommandWrapper string `mapstructure:"command_wrapper"` - Image string `mapstructure:"image"` + OutputImage string `mapstructure:"output_image"` + ContainerName string `mapstructure:"container_name"` + CommandWrapper string `mapstructure:"command_wrapper"` + Image string `mapstructure:"image"` + PublishProperties map[string]string `mapstructure:"publish_properties"` InitTimeout time.Duration ctx interpolate.Context diff --git a/builder/lxd/step_publish.go b/builder/lxd/step_publish.go index 0c0aabd3f..31e2d638b 100644 --- a/builder/lxd/step_publish.go +++ b/builder/lxd/step_publish.go @@ -32,6 +32,10 @@ func (s *stepPublish) Run(state multistep.StateBag) multistep.StepAction { "publish", name, "--alias", config.OutputImage, } + for k, v := range config.PublishProperties { + publish_args = append(publish_args, fmt.Sprintf("%s=%s", k, v)) + } + ui.Say("Publishing container...") stdoutString, err := LXDCommand(publish_args...) if err != nil {