diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 71f86e553..7acea7daf 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -259,7 +259,7 @@ does not attempt to track the latest version for each dependency. #### Code generation Packer relies on `go generate` to generate a [peg parser for boot -commands](https://github.com/hashicorp/packer/blob/master/common/bootcommand/boot_command.go), +commands](https://github.com/hashicorp/packer/blob/master/packer-plugin-sdk/bootcommand/boot_command.go), [docs](https://github.com/hashicorp/packer/blob/master/website/pages/partials/builder/amazon/chroot/_Config-not-required.mdx) and HCL2's bridging code. Packer's testing suite will run `make check-generate` to check that all the generated files Packer needs are what they should be. diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f8dc86e4..f320c681c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,30 @@ ## 1.6.6 (Upcoming) ### FEATURES: +* **New command** `fmt` allows users to format existing HCL2 configuration + files into a canonical style. Please see [fmt command + docs](https://packer.io/docs/commands/fmt) for more details. [GH-10225] +* **New function** `env` allows users to set the default value of a variable to + the value of an environment variable. Please see [env function + docs](https://www.packer.io/docs/from-1.5/functions/contextual/env") for + more details. [GH-10240] +* builder/azure-arm: Create keyvaults with SoftDelete enabled [GH-10210] * builder/outscale: Add x509 certificate support [GH-10161] -* post-processor/yandex-export: Verify the access to a specific bucket [GH-10188] +* post-processor/yandex-export: Verify the access to a specific bucket + [GH-10188] + +### IMPROVEMENTS +* builder/amazon-ebs: Add tags to launch templates. [GH-10203] +* builder/azure-arm: Add Azure CLI authentication support to builder. + [GH-10157] +* core/hcl: Update to `hcl2_upgrade` command to support complex variable + values and packer version blocks. [GH-10221] +* post-processor/vagrant-cloud: Add support for uploading directly to storage + on Vagrant Cloud. [GH-10193] + +### BUG FIXES +* builder/amazon: Fix single `tag` interpolation to allow for templating engine + usage. [GH-10224] ## 1.6.5 (October 30, 2020) diff --git a/Makefile b/Makefile index 589dde035..3a50eaf44 100644 --- a/Makefile +++ b/Makefile @@ -123,9 +123,9 @@ generate: install-gen-deps ## Generate dynamically generated code @echo "==> removing autogenerated markdown..." @find website/pages/ -type f | xargs grep -l '^ - `api_url` (string) - The Scaleway API URL to use + Will be fetched first from the [scaleway configuration file](https://github.com/scaleway/scaleway-sdk-go/blob/master/scw/README.md). It can also be specified via the environment variable SCW_API_URL - `snapshot_name` (string) - The name of the resulting snapshot that will diff --git a/website/pages/partials/builder/scaleway/Config-required.mdx b/website/pages/partials/builder/scaleway/Config-required.mdx index 90123c05d..4e63cf752 100644 --- a/website/pages/partials/builder/scaleway/Config-required.mdx +++ b/website/pages/partials/builder/scaleway/Config-required.mdx @@ -1,15 +1,19 @@ - `access_key` (string) - The AccessKey corresponding to the secret key. + Will be fetched first from the [scaleway configuration file](https://github.com/scaleway/scaleway-sdk-go/blob/master/scw/README.md). It can also be specified via the environment variable SCW_ACCESS_KEY. - `secret_key` (string) - The SecretKey to authenticate against the Scaleway API. + Will be fetched first from the [scaleway configuration file](https://github.com/scaleway/scaleway-sdk-go/blob/master/scw/README.md). It can also be specified via the environment variable SCW_SECRET_KEY. - `project_id` (string) - The Project ID in which the instances, volumes and snapshots will be created. + Will be fetched first from the [scaleway configuration file](https://github.com/scaleway/scaleway-sdk-go/blob/master/scw/README.md). It can also be specified via the environment variable SCW_DEFAULT_PROJECT_ID. - `zone` (string) - The Zone in which the instances, volumes and snapshots will be created. + Will be fetched first from the [scaleway configuration file](https://github.com/scaleway/scaleway-sdk-go/blob/master/scw/README.md). It can also be specified via the environment variable SCW_DEFAULT_ZONE - `image` (string) - The UUID of the base image to use. This is the image diff --git a/website/pages/partials/builder/vagrant/Config-not-required.mdx b/website/pages/partials/builder/vagrant/Config-not-required.mdx index 4889f1d3e..04535b7d2 100644 --- a/website/pages/partials/builder/vagrant/Config-not-required.mdx +++ b/website/pages/partials/builder/vagrant/Config-not-required.mdx @@ -37,8 +37,6 @@ This parameter is required when source_path have more than one provider, or when using vagrant-cloud post-processor. Defaults to unset. -- `communicator` (string) - Communicator - - `vagrantfile_template` (string) - What vagrantfile to use - `teardown_method` (string) - Whether to halt, suspend, or destroy the box when the build has diff --git a/website/pages/partials/builder/virtualbox/common/GuestAdditionsConfig-not-required.mdx b/website/pages/partials/builder/virtualbox/common/GuestAdditionsConfig-not-required.mdx index 0c57a3f70..214353b06 100644 --- a/website/pages/partials/builder/virtualbox/common/GuestAdditionsConfig-not-required.mdx +++ b/website/pages/partials/builder/virtualbox/common/GuestAdditionsConfig-not-required.mdx @@ -1,7 +1,5 @@ -- `communicator` (string) - Communicator - - `guest_additions_mode` (string) - The method by which guest additions are made available to the guest for installation. Valid options are `upload`, `attach`, or `disable`. If the mode is `attach` the guest additions ISO will diff --git a/website/pages/partials/builder/virtualbox/common/VBoxVersionConfig-not-required.mdx b/website/pages/partials/builder/virtualbox/common/VBoxVersionConfig-not-required.mdx index 69c87362c..0744b932f 100644 --- a/website/pages/partials/builder/virtualbox/common/VBoxVersionConfig-not-required.mdx +++ b/website/pages/partials/builder/virtualbox/common/VBoxVersionConfig-not-required.mdx @@ -1,7 +1,5 @@ -- `communicator` (string) - Communicator - - `virtualbox_version_file` (\*string) - The path within the virtual machine to upload a file that contains the VirtualBox version that was used to create the machine. This information can be useful for provisioning. By default diff --git a/website/pages/partials/builder/vsphere/iso/DiskConfig-not-required.mdx b/website/pages/partials/builder/vsphere/common/DiskConfig-not-required.mdx similarity index 83% rename from website/pages/partials/builder/vsphere/iso/DiskConfig-not-required.mdx rename to website/pages/partials/builder/vsphere/common/DiskConfig-not-required.mdx index 8e31b90d4..f7267b405 100644 --- a/website/pages/partials/builder/vsphere/iso/DiskConfig-not-required.mdx +++ b/website/pages/partials/builder/vsphere/common/DiskConfig-not-required.mdx @@ -1,4 +1,4 @@ - + - `disk_thin_provisioned` (bool) - Enable VMDK thin provisioning for VM. Defaults to `false`. diff --git a/website/pages/partials/builder/vsphere/iso/DiskConfig-required.mdx b/website/pages/partials/builder/vsphere/common/DiskConfig-required.mdx similarity index 62% rename from website/pages/partials/builder/vsphere/iso/DiskConfig-required.mdx rename to website/pages/partials/builder/vsphere/common/DiskConfig-required.mdx index 83683c366..29a583222 100644 --- a/website/pages/partials/builder/vsphere/iso/DiskConfig-required.mdx +++ b/website/pages/partials/builder/vsphere/common/DiskConfig-required.mdx @@ -1,3 +1,3 @@ - + - `disk_size` (int64) - The size of the disk in MB. diff --git a/website/pages/partials/builder/vsphere/iso/DiskConfig.mdx b/website/pages/partials/builder/vsphere/common/DiskConfig.mdx similarity index 94% rename from website/pages/partials/builder/vsphere/iso/DiskConfig.mdx rename to website/pages/partials/builder/vsphere/common/DiskConfig.mdx index 988ce2819..44040b0f7 100644 --- a/website/pages/partials/builder/vsphere/iso/DiskConfig.mdx +++ b/website/pages/partials/builder/vsphere/common/DiskConfig.mdx @@ -1,4 +1,4 @@ - + Defines the disk storage for a VM. diff --git a/website/pages/partials/builder/vsphere/common/StorageConfig-not-required.mdx b/website/pages/partials/builder/vsphere/common/StorageConfig-not-required.mdx new file mode 100644 index 000000000..2146f4442 --- /dev/null +++ b/website/pages/partials/builder/vsphere/common/StorageConfig-not-required.mdx @@ -0,0 +1,8 @@ + + +- `disk_controller_type` ([]string) - Set VM disk controller type. Example `lsilogic`, `pvscsi`, `nvme`, or `scsi`. Use a list to define additional controllers. + Defaults to `lsilogic`. See + [SCSI, SATA, and NVMe Storage Controller Conditions, Limitations, and Compatibility](https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-5872D173-A076-42FE-8D0B-9DB0EB0E7362.html#GUID-5872D173-A076-42FE-8D0B-9DB0EB0E7362) + for additional details. + +- `storage` ([]DiskConfig) - Configures a collection of one or more disks to be provisioned along with the VM. See the [Storage Configuration](#storage-configuration). diff --git a/website/pages/partials/builder/vsphere/iso/CreateConfig-not-required.mdx b/website/pages/partials/builder/vsphere/iso/CreateConfig-not-required.mdx index a69992f04..cd2ddc28d 100644 --- a/website/pages/partials/builder/vsphere/iso/CreateConfig-not-required.mdx +++ b/website/pages/partials/builder/vsphere/iso/CreateConfig-not-required.mdx @@ -9,13 +9,6 @@ here](https://code.vmware.com/apis/358/vsphere/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html) for a full list of possible values. -- `disk_controller_type` ([]string) - Set VM disk controller type. Example `lsilogic`, `pvscsi`, `nvme`, or `scsi`. Use a list to define additional controllers. - Defaults to `lsilogic`. See - [SCSI, SATA, and NVMe Storage Controller Conditions, Limitations, and Compatibility](https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-5872D173-A076-42FE-8D0B-9DB0EB0E7362.html#GUID-5872D173-A076-42FE-8D0B-9DB0EB0E7362) - for additional details. - -- `storage` ([]DiskConfig) - A collection of one or more disks to be provisioned along with the VM. - - `network_adapters` ([]NIC) - Network adapters - `usb_controller` ([]string) - Create USB controllers for the virtual machine. "usb" for a usb 2.0 controller. "xhci" for a usb 3.0 controller. There can only be at most one of each. diff --git a/website/pages/partials/builder/yandex/Config-not-required.mdx b/website/pages/partials/builder/yandex/Config-not-required.mdx index 2d933cb3e..806a1d3ee 100644 --- a/website/pages/partials/builder/yandex/Config-not-required.mdx +++ b/website/pages/partials/builder/yandex/Config-not-required.mdx @@ -9,6 +9,8 @@ - `disk_type` (string) - Specify disk type for the launched instance. Defaults to `network-hdd`. +- `disk_labels` (map[string]string) - Key/value pair labels to apply to the disk. + - `image_description` (string) - The description of the resulting image. - `image_family` (string) - The family name of the resulting image. diff --git a/website/pages/partials/from-1.5/variables/custom-validation.mdx b/website/pages/partials/from-1.5/variables/custom-validation.mdx new file mode 100644 index 000000000..42af7e1d7 --- /dev/null +++ b/website/pages/partials/from-1.5/variables/custom-validation.mdx @@ -0,0 +1,73 @@ +## Custom Validation Rules + +In addition to Type Constraints, you can specify arbitrary custom validation +rules for a particular variable using one or more `validation` block nested +within the corresponding `variable` block: + +```hcl +variable "image_id" { + type = string + description = "The id of the machine image (AMI) to use for the server." + + validation { + condition = length(var.image_id) > 4 && substr(var.image_id, 0, 4) == "ami-" + error_message = "The image_id value must be a valid AMI id, starting with \"ami-\"." + } +} +``` + +The `condition` argument is an expression that must use the value of the +variable to return `true` if the value is valid or `false` if it is invalid. +The expression can refer only to the variable that the condition applies to, +and _must not_ produce errors. + +If the failure of an expression is the basis of the validation decision, use +[the `can` function](/docs/from-1.5/functions/conversion/can) to detect such errors. For example: + +```hcl +variable "image_id" { + type = string + description = "The id of the machine image (AMI) to use for the server." + + validation { + # regex(...) fails if it cannot find a match + condition = can(regex("^ami-", var.image_id)) + error_message = "The image_id value must be a valid AMI id, starting with \"ami-\"." + } +} +``` + +If `condition` evaluates to `false`, an error message including the sentences +given in `error_message` will be produced. The error message string should be +at least one full sentence explaining the constraint that failed, using a +sentence structure similar to the above examples. + +Validation also works with more complex cases: + +```hcl +variable "image_metadata" { + + default = { + key: "value", + something: { + foo: "bar", + } + } + + validation { + condition = length(var.image_metadata.key) > 4 + error_message = "The image_metadata.key field must be more than 4 runes." + } + + validation { + condition = can(var.image_metadata.something.foo) + error_message = "The image_metadata.something.foo field must exist." + } + + validation { + condition = substr(var.image_metadata.something.foo, 0, 3) == "bar" + error_message = "The image_metadata.something.foo field must start with \"bar\"." + } + +} +``` diff --git a/website/pages/partials/common/bootcommand/BootConfig-not-required.mdx b/website/pages/partials/packer-plugin-sdk/bootcommand/BootConfig-not-required.mdx similarity index 94% rename from website/pages/partials/common/bootcommand/BootConfig-not-required.mdx rename to website/pages/partials/packer-plugin-sdk/bootcommand/BootConfig-not-required.mdx index c3ce262ac..1bf92b193 100644 --- a/website/pages/partials/common/bootcommand/BootConfig-not-required.mdx +++ b/website/pages/partials/packer-plugin-sdk/bootcommand/BootConfig-not-required.mdx @@ -1,4 +1,4 @@ - + - `boot_keygroup_interval` (duration string | ex: "1h5m2s") - Time to wait after sending a group of key pressses. The value of this should be a duration. Examples are `5s` and `1m30s` which will cause diff --git a/website/pages/partials/common/bootcommand/BootConfig.mdx b/website/pages/partials/packer-plugin-sdk/bootcommand/BootConfig.mdx similarity index 98% rename from website/pages/partials/common/bootcommand/BootConfig.mdx rename to website/pages/partials/packer-plugin-sdk/bootcommand/BootConfig.mdx index f8115899c..8d41f834f 100644 --- a/website/pages/partials/common/bootcommand/BootConfig.mdx +++ b/website/pages/partials/packer-plugin-sdk/bootcommand/BootConfig.mdx @@ -1,4 +1,4 @@ - + The boot configuration is very important: `boot_command` specifies the keys to type when the virtual machine is first booted in order to start the OS diff --git a/website/pages/partials/common/bootcommand/VNCConfig-not-required.mdx b/website/pages/partials/packer-plugin-sdk/bootcommand/VNCConfig-not-required.mdx similarity index 81% rename from website/pages/partials/common/bootcommand/VNCConfig-not-required.mdx rename to website/pages/partials/packer-plugin-sdk/bootcommand/VNCConfig-not-required.mdx index 6c532fd4f..008fdb54a 100644 --- a/website/pages/partials/common/bootcommand/VNCConfig-not-required.mdx +++ b/website/pages/partials/packer-plugin-sdk/bootcommand/VNCConfig-not-required.mdx @@ -1,4 +1,4 @@ - + - `disable_vnc` (bool) - Whether to create a VNC connection or not. A boot_command cannot be used when this is true. Defaults to false. diff --git a/website/pages/partials/common/bootcommand/VNCConfig.mdx b/website/pages/partials/packer-plugin-sdk/bootcommand/VNCConfig.mdx similarity index 87% rename from website/pages/partials/common/bootcommand/VNCConfig.mdx rename to website/pages/partials/packer-plugin-sdk/bootcommand/VNCConfig.mdx index 34a6748ac..f539a6590 100644 --- a/website/pages/partials/common/bootcommand/VNCConfig.mdx +++ b/website/pages/partials/packer-plugin-sdk/bootcommand/VNCConfig.mdx @@ -1,4 +1,4 @@ - + The boot command "typed" character for character over a VNC connection to the machine, simulating a human actually typing the keyboard. diff --git a/website/pages/partials/common/CDConfig-not-required.mdx b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/CDConfig-not-required.mdx similarity index 94% rename from website/pages/partials/common/CDConfig-not-required.mdx rename to website/pages/partials/packer-plugin-sdk/multistep/commonsteps/CDConfig-not-required.mdx index 11e4b8fc6..e06fe94d6 100644 --- a/website/pages/partials/common/CDConfig-not-required.mdx +++ b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/CDConfig-not-required.mdx @@ -1,4 +1,4 @@ - + - `cd_files` ([]string) - A list of files to place onto a CD that is attached when the VM is booted. This can include either files or directories; any directories diff --git a/website/pages/partials/common/CDConfig.mdx b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/CDConfig.mdx similarity index 84% rename from website/pages/partials/common/CDConfig.mdx rename to website/pages/partials/packer-plugin-sdk/multistep/commonsteps/CDConfig.mdx index b234df3eb..d8778c6ee 100644 --- a/website/pages/partials/common/CDConfig.mdx +++ b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/CDConfig.mdx @@ -1,4 +1,4 @@ - + An iso (CD) containing custom files can be made available for your build. diff --git a/website/pages/partials/common/FloppyConfig-not-required.mdx b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/FloppyConfig-not-required.mdx similarity index 91% rename from website/pages/partials/common/FloppyConfig-not-required.mdx rename to website/pages/partials/packer-plugin-sdk/multistep/commonsteps/FloppyConfig-not-required.mdx index 9c6fcda8a..aacdc62f4 100644 --- a/website/pages/partials/common/FloppyConfig-not-required.mdx +++ b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/FloppyConfig-not-required.mdx @@ -1,4 +1,4 @@ - + - `floppy_files` ([]string) - A list of files to place onto a floppy disk that is attached when the VM is booted. Currently, no support exists for creating sub-directories on diff --git a/website/pages/partials/common/FloppyConfig.mdx b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/FloppyConfig.mdx similarity index 87% rename from website/pages/partials/common/FloppyConfig.mdx rename to website/pages/partials/packer-plugin-sdk/multistep/commonsteps/FloppyConfig.mdx index bca819832..fe2645506 100644 --- a/website/pages/partials/common/FloppyConfig.mdx +++ b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/FloppyConfig.mdx @@ -1,4 +1,4 @@ - + A floppy can be made available for your build. This is most useful for unattended Windows installs, which look for an Autounattend.xml file on diff --git a/website/pages/partials/common/HTTPConfig-not-required.mdx b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/HTTPConfig-not-required.mdx similarity index 93% rename from website/pages/partials/common/HTTPConfig-not-required.mdx rename to website/pages/partials/packer-plugin-sdk/multistep/commonsteps/HTTPConfig-not-required.mdx index 4a3238ad4..a44424f45 100644 --- a/website/pages/partials/common/HTTPConfig-not-required.mdx +++ b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/HTTPConfig-not-required.mdx @@ -1,4 +1,4 @@ - + - `http_directory` (string) - Path to a directory to serve using an HTTP server. The files in this directory will be available over HTTP that will be requestable from the diff --git a/website/pages/partials/common/HTTPConfig.mdx b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/HTTPConfig.mdx similarity index 81% rename from website/pages/partials/common/HTTPConfig.mdx rename to website/pages/partials/packer-plugin-sdk/multistep/commonsteps/HTTPConfig.mdx index 27c79796b..3ef715056 100644 --- a/website/pages/partials/common/HTTPConfig.mdx +++ b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/HTTPConfig.mdx @@ -1,4 +1,4 @@ - + Packer will create an http server serving `http_directory` when it is set, a random free port will be selected and the architecture of the directory diff --git a/website/pages/partials/common/ISOConfig-not-required.mdx b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/ISOConfig-not-required.mdx similarity index 90% rename from website/pages/partials/common/ISOConfig-not-required.mdx rename to website/pages/partials/packer-plugin-sdk/multistep/commonsteps/ISOConfig-not-required.mdx index b93fdafd5..a0c584c3a 100644 --- a/website/pages/partials/common/ISOConfig-not-required.mdx +++ b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/ISOConfig-not-required.mdx @@ -1,4 +1,4 @@ - + - `iso_urls` ([]string) - Multiple URLs for the ISO to download. Packer will try these in order. If anything goes wrong attempting to download or while downloading a diff --git a/website/pages/partials/common/ISOConfig-required.mdx b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/ISOConfig-required.mdx similarity index 94% rename from website/pages/partials/common/ISOConfig-required.mdx rename to website/pages/partials/packer-plugin-sdk/multistep/commonsteps/ISOConfig-required.mdx index 1611af8ca..f5f6654d5 100644 --- a/website/pages/partials/common/ISOConfig-required.mdx +++ b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/ISOConfig-required.mdx @@ -1,4 +1,4 @@ - + - `iso_checksum` (string) - The checksum for the ISO file or virtual hard drive file. The type of the checksum is specified within the checksum field as a prefix, ex: diff --git a/website/pages/partials/common/ISOConfig.mdx b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/ISOConfig.mdx similarity index 95% rename from website/pages/partials/common/ISOConfig.mdx rename to website/pages/partials/packer-plugin-sdk/multistep/commonsteps/ISOConfig.mdx index 4dfbd19f2..98eca88b2 100644 --- a/website/pages/partials/common/ISOConfig.mdx +++ b/website/pages/partials/packer-plugin-sdk/multistep/commonsteps/ISOConfig.mdx @@ -1,4 +1,4 @@ - + By default, Packer will symlink, download or copy image files to the Packer cache into a "`hash($iso_url+$iso_checksum).$iso_target_extension`" file. diff --git a/website/pages/partials/common/shutdowncommand/ShutdownConfig-not-required.mdx b/website/pages/partials/packer-plugin-sdk/shutdowncommand/ShutdownConfig-not-required.mdx similarity index 92% rename from website/pages/partials/common/shutdowncommand/ShutdownConfig-not-required.mdx rename to website/pages/partials/packer-plugin-sdk/shutdowncommand/ShutdownConfig-not-required.mdx index 2b705dd61..0cd262f0d 100644 --- a/website/pages/partials/common/shutdowncommand/ShutdownConfig-not-required.mdx +++ b/website/pages/partials/packer-plugin-sdk/shutdowncommand/ShutdownConfig-not-required.mdx @@ -1,4 +1,4 @@ - + - `shutdown_command` (string) - The command to use to gracefully shut down the machine once all provisioning is complete. By default this is an empty string, which diff --git a/website/pages/partials/packer-plugin-sdk/shutdowncommand/ShutdownConfig.mdx b/website/pages/partials/packer-plugin-sdk/shutdowncommand/ShutdownConfig.mdx new file mode 100644 index 000000000..e958c8ca3 --- /dev/null +++ b/website/pages/partials/packer-plugin-sdk/shutdowncommand/ShutdownConfig.mdx @@ -0,0 +1,9 @@ + + +ShutdownConfig defines implementation details for shutting down a VM once it +is done provisioned. +It is provided as a convenience to encourage builder developers to +consider implementing these options, which we believe are valuable for all +builders. It also helps guarantee that option names for similar options +are the same across the various builders. Embed it in your builder config +using the `mapstructure:",squash"` struct tag. diff --git a/website/pages/partials/post-processor/googlecompute-import/Config-not-required.mdx b/website/pages/partials/post-processor/googlecompute-import/Config-not-required.mdx index aa3a5243e..bacbd84e5 100644 --- a/website/pages/partials/post-processor/googlecompute-import/Config-not-required.mdx +++ b/website/pages/partials/post-processor/googlecompute-import/Config-not-required.mdx @@ -13,7 +13,7 @@ - `image_family` (string) - The name of the image family to which the resulting image belongs. - `image_guest_os_features` ([]string) - A list of features to enable on the guest operating system. Applicable only for bootable images. Valid - values are `MULTI_IP_SUBNET`, `SECURE_BOOT`, `UEFI_COMPATIBLE`, + values are `MULTI_IP_SUBNET`, `UEFI_COMPATIBLE`, `VIRTIO_SCSI_MULTIQUEUE` and `WINDOWS` currently. - `image_labels` (map[string]string) - Key/value pair labels to apply to the created image. @@ -24,3 +24,11 @@ `false`. - `vault_gcp_oauth_engine` (string) - Vault GCP Oauth Engine + +- `image_platform_key` (string) - A key used to establish the trust relationship between the platform owner and the firmware. You may only specify one platform key, and it must be a valid X.509 certificate. + +- `image_key_exchange_key` ([]string) - A key used to establish a trust relationship between the firmware and the OS. You may specify multiple comma-separated keys for this value. + +- `image_signatures_db` ([]string) - A database of certificates that have been revoked and will cause the system to stop booting if a boot file is signed with one of them. You may specify single or multiple comma-separated values for this value. + +- `image_forbidden_signatures_db` ([]string) - A database of certificates that are trusted and can be used to sign boot files. You may specify single or multiple comma-separated values for this value. diff --git a/website/pages/partials/provisioners/unmaintained-plugin.mdx b/website/pages/partials/provisioners/unmaintained-plugin.mdx index 6f92a3339..8d9dd44b9 100644 --- a/website/pages/partials/provisioners/unmaintained-plugin.mdx +++ b/website/pages/partials/provisioners/unmaintained-plugin.mdx @@ -1 +1 @@ -~> **This community-supported provisioner is unmaintained**, read more details in the [README](https://github.com/hashicorp/packer/blob/master/README.md#unmaintained-plugins) +~> **This is community maintained provisioner is currently unmaintained**; if you are interested in contributing or taking ownership of it, please reach out to us at [packer@hashicorp.com](mailto://packer@hashicorp.com). More details can be found in the [README](https://github.com/hashicorp/packer/blob/master/README.md#unmaintained-plugins).