packer-plugin-vsphere icon indicating copy to clipboard operation
packer-plugin-vsphere copied to clipboard

`post-processor vsphere`: "error destroying builder artifact"

Open jaymzmac opened this issue 1 year ago • 1 comments

Overview of the Issue

After running the vsphere post-processor, the packer build fails while trying to clean up the artifact:

Error destroying builder artifact: reading body msgpack decode error [pos 940]: reflect.Set: value of type map[interface {}]interface {} is not assignable to type error; bad artifact: []string(nil)

The OVF is successfully uploaded to vCenter, and the VM files (.ovf, .vmdk, etc) are successfully deleted from the local filesystem where packer runs, but nonetheless the build fails and exits with code 1.

If I set keep_input_artifact to true, then the build completes successfully with no errors, but obviously the VM files are kept on the local filesystem.

This bug report is perhaps a duplicate (https://github.com/hashicorp/packer/issues/11101).

Reproduction Steps

Configure the vsphere post-processor as per the simplified buildfile provided below. Ensure the keep_input_artifact option is set to false (which is the default setting) in order to reproduce the issue.

Packer Version

1.8.7

Plugin Version and Builders

1.1.2, vsphere-iso

VMware vSphere Version

7.0U3

Simplified Packer Buildfile

 post-processor "vsphere" {
    cluster             = "${var.cluster}"
    datacenter          = "${var.datacenter}"
    datastore           = "${var.datastore}"
    disk_mode           = "thin"
    host                = "${var.vcenter_server}"
    insecure            = true
    overwrite           = true
    password            = "${var.password}"
    resource_pool       = "${var.resourcepool}"
    username            = "${var.username}"
    vm_folder           = "${var.folder}"
    vm_name             = "${local.vm_name}"
    vm_network          = "${var.final_network}"
  }

Log

==> vsphere-iso.vmware: Running post-processor:  (type vsphere)
    vsphere-iso.vmware (vsphere): Uploading output_vsphere/packer-debian-12-20230516-074107.ovf to vSphere
    vsphere-iso.vmware (vsphere): Validating Username and Password with dry-run
    vsphere-iso.vmware (vsphere): Calling OVFtool to upload vm
==> vsphere-iso.vmware (vsphere): /usr/bin/ovftool: line 10: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
    vsphere-iso.vmware (vsphere): Opening OVF source: output_vsphere/packer-debian-12-20230516-074107.ovf
    vsphere-iso.vmware (vsphere): The manifest validates
    vsphere-iso.vmware (vsphere): Opening VI target: vi://<redacted>
    vsphere-iso.vmware (vsphere): Deleting VM: packer-debian-12-20230516-074107
    vsphere-iso.vmware (vsphere): Deploying to VI: vi://<redacted>
    vsphere-iso.vmware (vsphere): Transfer Completed
    vsphere-iso.vmware (vsphere): Completed successfully
Build 'vsphere-iso.vmware' errored after 11 minutes 4 seconds: 1 error(s) occurred:
* Error destroying builder artifact: reading body msgpack decode error [pos 940]: reflect.Set: value of type map[interface {}]interface {} is not assignable to type error; bad artifact: []string(nil)
==> Wait completed after 11 minutes 4 seconds
==> Some builds didn't complete successfully and had errors:
--> vsphere-iso.vmware: 1 error(s) occurred:
* Error destroying builder artifact: reading body msgpack decode error [pos 940]: reflect.Set: value of type map[interface {}]interface {} is not assignable to type error; bad artifact: []string(nil)
==> Builds finished but no artifacts were created.

jaymzmac avatar May 16 '23 13:05 jaymzmac