docs: generate builders partials from struct comments

This commit is contained in:
Adrien Delorme 2019-06-06 16:29:47 +02:00
parent 4bf6a56d71
commit 4ae10f08b2
127 changed files with 4050 additions and 13 deletions

138
cmd/struct-markdown/main.go Normal file
View File

@ -0,0 +1,138 @@
package main
import (
"flag"
"fmt"
"go/ast"
"go/parser"
"go/token"
"io/ioutil"
"os"
"path/filepath"
"strings"
"github.com/fatih/camelcase"
"github.com/fatih/structtag"
)
func main() {
args := flag.Args()
if len(args) == 0 {
// Default: process the file
args = []string{os.Getenv("GOFILE")}
}
fname := args[0]
absFilePath, err := filepath.Abs(fname)
if err != nil {
panic(err)
}
paths := strings.SplitAfter(absFilePath, "packer"+string(os.PathSeparator))
packerDir := paths[0]
builderName, _ := filepath.Split(paths[1])
builderName = strings.Trim(builderName, string(os.PathSeparator))
b, err := ioutil.ReadFile(fname)
if err != nil {
fmt.Printf("ReadFile: %+v", err)
os.Exit(1)
}
fset := token.NewFileSet()
f, err := parser.ParseFile(fset, fname, b, parser.ParseComments)
if err != nil {
fmt.Printf("ParseFile: %+v", err)
os.Exit(1)
}
for _, decl := range f.Decls {
typeDecl, ok := decl.(*ast.GenDecl)
if !ok {
continue
}
typeSpec, ok := typeDecl.Specs[0].(*ast.TypeSpec)
if !ok {
continue
}
structDecl, ok := typeSpec.Type.(*ast.StructType)
if !ok {
continue
}
fields := structDecl.Fields.List
required := Struct{
SourcePath: paths[1],
Name: typeSpec.Name.Name,
Filename: "_" + typeSpec.Name.Name + "-required.html.md",
}
notRequired := Struct{
SourcePath: paths[1],
Name: typeSpec.Name.Name,
Filename: "_" + typeSpec.Name.Name + "-not-required.html.md",
}
for _, field := range fields {
if len(field.Names) == 0 || field.Tag == nil {
continue
}
tag := field.Tag.Value[1:]
tag = tag[:len(tag)-1]
tags, err := structtag.Parse(tag)
if err != nil {
fmt.Printf("structtag.Parse(%s): err: %v", field.Tag.Value, err)
os.Exit(1)
}
mstr, err := tags.Get("mapstructure")
if err != nil {
continue
}
name := mstr.Name
if name == "" {
continue
}
var docs string
if field.Doc != nil {
docs = field.Doc.Text()
} else {
docs = strings.Join(camelcase.Split(field.Names[0].Name), " ")
}
field := Field{
Name: name,
Type: fmt.Sprintf("%s", b[field.Type.Pos()-1:field.Type.End()-1]),
Docs: docs,
}
if req, err := tags.Get("required"); err == nil && req.Value() == "true" {
required.Fields = append(required.Fields, field)
} else {
notRequired.Fields = append(notRequired.Fields, field)
}
}
dir := filepath.Join(packerDir, "website", "source", "partials", builderName)
os.MkdirAll(dir, 0755)
for _, str := range []Struct{required, notRequired} {
if len(str.Fields) == 0 {
continue
}
outputPath := filepath.Join(dir, str.Filename)
outputFile, err := os.Create(outputPath)
if err != nil {
panic(err)
}
defer outputFile.Close()
err = structDocsTemplate.Execute(outputFile, str)
if err != nil {
fmt.Printf("%v", err)
os.Exit(1)
}
}
}
}

View File

@ -0,0 +1,33 @@
package main
import (
"strings"
"text/template"
)
type Field struct {
Name string
Type string
Docs string
}
type Struct struct {
SourcePath string
Name string
Filename string
Fields []Field
}
var structDocsTemplate = template.Must(template.New("structDocsTemplate").
Funcs(template.FuncMap{
"indent": indent,
}).
Parse(`<!-- Code generated from the comments of the {{ .Name }} struct in {{ .SourcePath }}; DO NOT EDIT MANUALLY -->
{{range .Fields}}
- ` + "`" + `{{ .Name}}` + "`" + ` ({{ .Type }}) - {{ .Docs | indent 4 }}
{{- end -}}`))
func indent(spaces int, v string) string {
pad := strings.Repeat(" ", spaces)
return strings.Replace(v, "\n", "\n"+pad, -1)
}

View File

@ -0,0 +1,9 @@
<!-- Code generated from the comments of the AlicloudAccessConfig struct in builder/alicloud/ecs/access_config.go; DO NOT EDIT MANUALLY -->
- `skip_region_validation` (bool) - The region validation can be skipped
if this value is true, the default value is false.
- `security_token` (string) - STS access token, can be set through template
or by exporting as environment variable such as
export SecurityToken=value.

View File

@ -0,0 +1,13 @@
<!-- Code generated from the comments of the AlicloudAccessConfig struct in builder/alicloud/ecs/access_config.go; DO NOT EDIT MANUALLY -->
- `access_key` (string) - This is the Alicloud access key. It must be
provided, but it can also be sourced from the ALICLOUD_ACCESS_KEY
environment variable.
- `secret_key` (string) - This is the Alicloud secret key. It must be
provided, but it can also be sourced from the ALICLOUD_SECRET_KEY
environment variable.
- `region` (string) - This is the Alicloud region. It must be provided, but
it can also be sourced from the ALICLOUD_REGION environment variables.

View File

@ -0,0 +1,39 @@
<!-- Code generated from the comments of the AlicloudDiskDevice struct in builder/alicloud/ecs/image_config.go; DO NOT EDIT MANUALLY -->
- `disk_name` (string) - The value of disk name is blank by default. [2,
128] English or Chinese characters, must begin with an
uppercase/lowercase letter or Chinese character. Can contain numbers,
., _ and -. The disk name will appear on the console. It cannot
begin with http:// or https://.
- `disk_category` (string) - Category of the system disk. Optional values
are:
- cloud - general cloud disk
- cloud_efficiency - efficiency cloud disk
- cloud_ssd - cloud SSD
- `disk_size` (int) - Size of the system disk, measured in GiB. Value
range: [20, 500]. The specified value must be equal to or greater
than max{20, ImageSize}. Default value: max{40, ImageSize}.
- `disk_snapshot_id` (string) - Snapshots are used to create the data
disk After this parameter is specified, Size is ignored. The actual
size of the created disk is the size of the specified snapshot.
- `disk_description` (string) - The value of disk description is blank by
default. [2, 256] characters. The disk description will appear on the
console. It cannot begin with http:// or https://.
- `disk_delete_with_instance` (bool) - Whether or not the disk is
released along with the instance:
- `disk_device` (string) - Device information of the related instance:
such as /dev/xvdb It is null unless the Status is In_use.
- `disk_encrypted` (*bool) - Whether or not to encrypt the data disk.
If this option is set to true, the data disk will be encryped and corresponding snapshot in the target image will also be encrypted. By
default, if this is an extra data disk, Packer will not encrypt the
data disk. Otherwise, Packer will keep the encryption setting to what
it was in the source image. Please refer to Introduction of ECS disk encryption
for more details.

View File

@ -0,0 +1,8 @@
<!-- Code generated from the comments of the AlicloudDiskDevices struct in builder/alicloud/ecs/image_config.go; DO NOT EDIT MANUALLY -->
- `system_disk_mapping` (AlicloudDiskDevice) - Image disk mapping for system
disk.
- `image_disk_mappings` ([]AlicloudDiskDevice) - Add one or more data
disks to the image.

View File

@ -0,0 +1,53 @@
<!-- Code generated from the comments of the AlicloudImageConfig struct in builder/alicloud/ecs/image_config.go; DO NOT EDIT MANUALLY -->
- `image_version` (string) - The version number of the image, with a length
limit of 1 to 40 English characters.
- `image_description` (string) - The description of the image, with a length
limit of 0 to 256 characters. Leaving it blank means null, which is the
default value. It cannot begin with http:// or https://.
- `image_share_account` ([]string) - The IDs of to-be-added Aliyun
accounts to which the image is shared. The number of accounts is 1 to 10.
If number of accounts is greater than 10, this parameter is ignored.
- `image_unshare_account` ([]string) - Alicloud Image UN Share Accounts
- `image_copy_regions` ([]string) - Copy to the destination regionIds.
- `image_copy_names` ([]string) - The name of the destination image,
[2, 128] English or Chinese characters. It must begin with an
uppercase/lowercase letter or a Chinese character, and may contain numbers,
_ or -. It cannot begin with http:// or https://.
- `image_encrypted` (*bool) - Whether or not to encrypt the target images, including those copied if image_copy_regions is specified. If this option
is set to true, a temporary image will be created from the provisioned
instance in the main region and an encrypted copy will be generated in the
same region. By default, Packer will keep the encryption setting to what
it was in the source image.
- `image_force_delete` (bool) - If this value is true, when the target
image names including those copied are duplicated with existing images, it
will delete the existing images and then create the target images,
otherwise, the creation will fail. The default value is false. Check
image_name and image_copy_names options for names of target images. If
-force option is
provided in build command, this option can be omitted and taken as true.
- `image_force_delete_snapshots` (bool) - If this value is true, when
delete the duplicated existing images, the source snapshots of those images
will be delete either. If
-force option is
provided in build command, this option can be omitted and taken as true.
- `image_force_delete_instances` (bool) - Alicloud Image Force Delete Instances
- `image_ignore_data_disks` (bool) - If this value is true, the image
created will not include any snapshot of data disks. This option would be
useful for any circumstance that default data disks with instance types are
not concerned. The default value is false.
- `skip_region_validation` (bool) - The region validation can be skipped
if this value is true, the default value is false.
- `tags` (map[string]string) - Tags applied to the destination
image and relevant snapshots.

View File

@ -0,0 +1,7 @@
<!-- Code generated from the comments of the AlicloudImageConfig struct in builder/alicloud/ecs/image_config.go; DO NOT EDIT MANUALLY -->
- `image_name` (string) - The name of the user-defined image, [2, 128]
English or Chinese characters. It must begin with an uppercase/lowercase
letter or a Chinese character, and may contain numbers, _ or -. It
cannot begin with http:// or https://.

View File

@ -0,0 +1,78 @@
<!-- Code generated from the comments of the RunConfig struct in builder/alicloud/ecs/run_config.go; DO NOT EDIT MANUALLY -->
- `associate_public_ip_address` (bool) - Associate Public Ip Address
- `zone_id` (string) - ID of the zone to which the disk belongs.
- `io_optimized` (bool) - Whether an ECS instance is I/O optimized or not.
The default value is false.
- `description` (string) - Description
- `force_stop_instance` (bool) - Whether to force shutdown upon device
restart. The default value is false.
- `disable_stop_instance` (bool) - If this option is set to true, Packer
will not stop the instance for you, and you need to make sure the instance
will be stopped in the final provisioner command. Otherwise, Packer will
timeout while waiting the instance to be stopped. This option is provided
for some specific scenarios that you want to stop the instance by yourself.
E.g., Sysprep a windows which may shutdown the instance within its command.
The default value is false.
- `security_group_id` (string) - ID of the security group to which a newly
created instance belongs. Mutual access is allowed between instances in one
security group. If not specified, the newly created instance will be added
to the default security group. If the default group doesnt exist, or the
number of instances in it has reached the maximum limit, a new security
group will be created automatically.
- `security_group_name` (string) - The security group name. The default value
is blank. [2, 128] English or Chinese characters, must begin with an
uppercase/lowercase letter or Chinese character. Can contain numbers, .,
_ or -. It cannot begin with http:// or https://.
- `user_data` (string) - User data to apply when launching the instance. Note
that you need to be careful about escaping characters due to the templates
being JSON. It is often more convenient to use user_data_file, instead.
Packer will not automatically wait for a user script to finish before
shutting down the instance this must be handled in a provisioner.
- `user_data_file` (string) - Path to a file that will be used for the user
data when launching the instance.
- `vpc_id` (string) - VPC ID allocated by the system.
- `vpc_name` (string) - The VPC name. The default value is blank. [2, 128]
English or Chinese characters, must begin with an uppercase/lowercase
letter or Chinese character. Can contain numbers, _ and -. The disk
description will appear on the console. Cannot begin with http:// or
https://.
- `vpc_cidr_block` (string) - Value options: 192.168.0.0/16 and
172.16.0.0/16. When not specified, the default value is 172.16.0.0/16.
- `vswitch_id` (string) - The ID of the VSwitch to be used.
- `vswitch_id` (string) - The ID of the VSwitch to be used.
- `instance_name` (string) - Display name of the instance, which is a string
of 2 to 128 Chinese or English characters. It must begin with an
uppercase/lowercase letter or a Chinese character and can contain numerals,
., _, or -. The instance name is displayed on the Alibaba Cloud
console. If this parameter is not specified, the default value is
InstanceId of the instance. It cannot begin with http:// or https://.
- `internet_charge_type` (string) - Internet charge type, which can be
PayByTraffic or PayByBandwidth. Optional values:
- `internet_max_bandwidth_out` (int) - Maximum outgoing bandwidth to the
public network, measured in Mbps (Mega bits per second).
- `wait_snapshot_ready_timeout` (int) - Timeout of creating snapshot(s).
The default timeout is 3600 seconds if this option is not set or is set
to 0. For those disks containing lots of data, it may require a higher
timeout value.
- `ssh_private_ip` (bool) - If this value is true, packer will connect to
the ECS created through private ip instead of allocating a public ip or an
EIP. The default value is false.

View File

@ -0,0 +1,13 @@
<!-- Code generated from the comments of the RunConfig struct in builder/alicloud/ecs/run_config.go; DO NOT EDIT MANUALLY -->
- `instance_type` (string) - Type of the instance. For values, see Instance
Type
Table.
You can also obtain the latest instance type table by invoking the
Querying Instance Type
Table
interface.
- `source_image` (string) - This is the base image id which you want to
create your customized images.

View File

@ -0,0 +1,130 @@
<!-- Code generated from the comments of the Config struct in builder/amazon/chroot/builder.go; DO NOT EDIT MANUALLY -->
- `chroot_mounts` ([][]string) - This is a list of devices to
mount into the chroot environment. This configuration parameter requires
some additional documentation which is in the Chroot
Mounts section. Please read that section for more
information on how to use this.
- `command_wrapper` (string) - How to run shell commands. This defaults to
{{.Command}}. This may be useful to set if you want to set environmental
variables or perhaps run it with sudo or so on. This is a configuration
template where the .Command variable is replaced with the command to be
run. Defaults to {{.Command}}.
- `copy_files` ([]string) - Paths to files on the running EC2
instance that will be copied into the chroot environment prior to
provisioning. Defaults to /etc/resolv.conf so that DNS lookups work. Pass
an empty list to skip copying /etc/resolv.conf. You may need to do this
if you're building an image that uses systemd.
- `device_path` (string) - The path to the device where the root volume of
the source AMI will be attached. This defaults to "" (empty string), which
forces Packer to find an open device automatically.
- `nvme_device_path` (string) - When we call the mount command (by default
mount -o device dir), the string provided in nvme_mount_path will
replace device in that command. When this option is not set, device in
that command will be something like /dev/sdf1, mirroring the attached
device name. This assumption works for most instances but will fail with c5
and m5 instances. In order to use the chroot builder with c5 and m5
instances, you must manually set nvme_device_path and device_path.
- `from_scratch` (bool) - Build a new volume instead of starting from an
existing AMI root volume snapshot. Default false. If true, source_ami
is no longer used and the following options become required:
ami_virtualization_type, pre_mount_commands and root_volume_size. The
below options are also required in this mode only:
- `mount_options` ([]string) - Options to supply the mount command
when mounting devices. Each option will be prefixed with -o and supplied
to the mount command ran by Packer. Because this command is ran in a
shell, user discretion is advised. See this manual page for the mount
command for valid file
system specific options.
- `mount_partition` (string) - The partition number containing the /
partition. By default this is the first partition of the volume, (for
example, xvda1) but you can designate the entire block device by setting
"mount_partition": "0" in your config, which will mount xvda instead.
- `mount_path` (string) - The path where the volume will be mounted. This is
where the chroot environment will be. This defaults to
/mnt/packer-amazon-chroot-volumes/{{.Device}}. This is a configuration
template where the .Device variable is replaced with the name of the
device where the volume is attached.
- `post_mount_commands` ([]string) - As pre_mount_commands, but the
commands are executed after mounting the root device and before the extra
mount and copy steps. The device and mount path are provided by
{{.Device}} and {{.MountPath}}.
- `pre_mount_commands` ([]string) - A series of commands to execute
after attaching the root volume and before mounting the chroot. This is not
required unless using from_scratch. If so, this should include any
partitioning and filesystem creation commands. The path to the device is
provided by {{.Device}}.
- `root_device_name` (string) - The root device name. For example, xvda.
- `root_volume_size` (int64) - The size of the root volume in GB for the
chroot environment and the resulting AMI. Default size is the snapshot size
of the source_ami unless from_scratch is true, in which case this
field must be defined.
- `root_volume_type` (string) - The type of EBS volume for the chroot
environment and resulting AMI. The default value is the type of the
source_ami, unless from_scratch is true, in which case the default
value is gp2. You can only specify io1 if building based on top of a
source_ami which is also io1.
- `source_ami_filter` (awscommon.AmiFilterOptions) - Filters used to populate the source_ami
field. Example:
``` json
{
"source_ami_filter": {
"filters": {
"virtualization-type": "hvm",
"name": "ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*",
"root-device-type": "ebs"
},
"owners": ["099720109477"],
"most_recent": true
}
}
```
This selects the most recent Ubuntu 16.04 HVM EBS AMI from Canonical. NOTE:
This will fail unless *exactly* one AMI is returned. In the above example,
`most_recent` will cause this to succeed by selecting the newest image.
- `filters` (map of strings) - filters used to select a `source_ami`.
NOTE: This will fail unless *exactly* one AMI is returned. Any filter
described in the docs for
[DescribeImages](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html)
is valid.
- `owners` (array of strings) - Filters the images by their owner. You
may specify one or more AWS account IDs, "self" (which will use the
account whose credentials you are using to run Packer), or an AWS owner
alias: for example, "amazon", "aws-marketplace", or "microsoft". This
option is required for security reasons.
- `most_recent` (boolean) - Selects the newest created image when true.
This is most useful for selecting a daily distro build.
You may set this in place of `source_ami` or in conjunction with it. If you
set this in conjunction with `source_ami`, the `source_ami` will be added
to the filter. The provided `source_ami` must meet all of the filtering
criteria provided in `source_ami_filter`; this pins the AMI returned by the
filter, but will cause Packer to fail if the `source_ami` does not exist.
- `root_volume_tags` (awscommon.TagMap) - Tags to apply to the
volumes that are *launched*. This is a [template
engine](/docs/templates/engine.html), see [Build template
data](#build-template-data) for more information.
- `ami_architecture` (string) - what architecture to use when registering the
final AMI; valid options are "x86_64" or "arm64". Defaults to "x86_64".

View File

@ -0,0 +1,7 @@
<!-- Code generated from the comments of the Config struct in builder/amazon/chroot/builder.go; DO NOT EDIT MANUALLY -->
- `source_ami` (string) - The source AMI whose root volume will be copied and
provisioned on the currently running instance. This must be an EBS-backed
AMI with a root volume snapshot that you have access to. Note: this is not
used when from_scratch is set to true.

View File

@ -0,0 +1,52 @@
<!-- Code generated from the comments of the AMIBlockDevices struct in builder/amazon/common/block_device.go; DO NOT EDIT MANUALLY -->
- `ami_block_device_mappings` ([]BlockDevice) - Add one or more [block device
mappings](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html)
to the AMI. These will be attached when booting a new instance from your
AMI. To add a block device during the Packer build see
`launch_block_device_mappings` below. Your options here may vary
depending on the type of VM you use. The block device mappings allow for
the following configuration:
- `delete_on_termination` (boolean) - Indicates whether the EBS volume is
deleted on instance termination. Default `false`. **NOTE**: If this
value is not explicitly set to `true` and volumes are not cleaned up by
an alternative method, additional volumes will accumulate after every
build.
- `device_name` (string) - The device name exposed to the instance (for
example, `/dev/sdh` or `xvdh`). Required for every device in the block
device mapping.
- `encrypted` (boolean) - Indicates whether or not to encrypt the volume.
By default, Packer will keep the encryption setting to what it was in
the source image. Setting `false` will result in an unencrypted device,
and `true` will result in an encrypted one.
- `iops` (number) - The number of I/O operations per second (IOPS) that
the volume supports. See the documentation on
[IOPs](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EbsBlockDevice.html)
for more information
- `kms_key_id` (string) - The ARN for the KMS encryption key. When
specifying `kms_key_id`, `encrypted` needs to be set to `true`. For
valid formats see *KmsKeyId* in the [AWS API docs -
CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html).
- `no_device` (boolean) - Suppresses the specified device included in the
block device mapping of the AMI.
- `snapshot_id` (string) - The ID of the snapshot.
- `virtual_name` (string) - The virtual device name. See the
documentation on [Block Device
Mapping](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_BlockDeviceMapping.html)
for more information.
- `volume_size` (number) - The size of the volume, in GiB. Required if
not specifying a `snapshot_id`.
- `volume_type` (string) - The volume type. `gp2` for General Purpose
(SSD) volumes, `io1` for Provisioned IOPS (SSD) volumes, `st1` for
Throughput Optimized HDD, `sc1` for Cold HDD, and `standard` for
Magnetic volumes.

View File

@ -0,0 +1,97 @@
<!-- Code generated from the comments of the AMIConfig struct in builder/amazon/common/ami_config.go; DO NOT EDIT MANUALLY -->
- `ami_description` (string) - The description to set for the resulting
AMI(s). By default this description is empty. This is a template
engine, see Build template
data for more information.
- `ami_virtualization_type` (string) - The description to set for the resulting AMI(s). By default this
description is empty. This is a [template
engine](../templates/engine.html), see [Build template
data](#build-template-data) for more information.
- `ami_users` ([]string) - A list of account IDs that have access to
launch the resulting AMI(s). By default no additional users other than the
user creating the AMI has permissions to launch it.
- `ami_groups` ([]string) - A list of groups that have access to
launch the resulting AMI(s). By default no groups have permission to launch
the AMI. all will make the AMI publicly accessible.
- `ami_product_codes` ([]string) - A list of product codes to
associate with the AMI. By default no product codes are associated with the
AMI.
- `ami_regions` ([]string) - A list of regions to copy the AMI to.
Tags and attributes are copied along with the AMI. AMI copying takes time
depending on the size of the AMI, but will generally take many minutes.
- `skip_region_validation` (bool) - Set to true if you want to skip
validation of the ami_regions configuration option. Default false.
- `tags` (TagMap) - Tags applied to the AMI. This is a
[template engine](/docs/templates/engine.html), see [Build template
data](#build-template-data) for more information.
- `ena_support` (*bool) - Enable enhanced networking (ENA but not
SriovNetSupport) on HVM-compatible AMIs. If set, add
ec2:ModifyInstanceAttribute to your AWS IAM policy. If false, this will
disable enhanced networking in the final AMI as opposed to passing the
setting through unchanged from the source. Note: you must make sure
enhanced networking is enabled on your instance. [Amazon's
documentation on enabling enhanced
networking](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html#enabling_enhanced_networking).
- `sriov_support` (bool) - Enable enhanced networking (SriovNetSupport but not ENA) on
HVM-compatible AMIs. If true, add `ec2:ModifyInstanceAttribute` to your
AWS IAM policy. Note: you must make sure enhanced networking is enabled
on your instance. See [Amazon's documentation on enabling enhanced
networking](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html#enabling_enhanced_networking).
Default `false`.
- `force_deregister` (bool) - Force Packer to first deregister an existing
AMI if one with the same name already exists. Default false.
- `force_delete_snapshot` (bool) - Force Packer to delete snapshots
associated with AMIs, which have been deregistered by force_deregister.
Default false.
- `encrypt_boot` (*bool) - Whether or not to encrypt the resulting AMI when
copying a provisioned instance to an AMI. By default, Packer will keep the
encryption setting to what it was in the source image. Setting false will
result in an unencrypted image, and true will result in an encrypted one.
- `kms_key_id` (string) - ID, alias or ARN of the KMS key to use for boot volume encryption. This
only applies to the main `region`, other regions where the AMI will be
copied will be encrypted by the default EBS KMS key. For valid formats
see *KmsKeyId* in the [AWS API docs -
CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html).
This field is validated by Packer, when using an alias, you will have to
prefix `kms_key_id` with `alias/`.
- `region_kms_key_ids` (map[string]string) - regions to copy the ami to, along with the custom kms key id (alias or
arn) to use for encryption for that region. Keys must match the regions
provided in `ami_regions`. If you just want to encrypt using a default
ID, you can stick with `kms_key_id` and `ami_regions`. If you want a
region to be encrypted with that region's default key ID, you can use an
empty string `""` instead of a key id in this map. (e.g. `"us-east-1":
""`) However, you cannot use default key IDs if you are using this in
conjunction with `snapshot_users` -- in that situation you must use
custom keys. For valid formats see *KmsKeyId* in the [AWS API docs -
CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html).
- `snapshot_tags` (TagMap) - Tags to apply to snapshot.
They will override AMI tags if already applied to snapshot. This is a
[template engine](../templates/engine.html), see [Build template
data](#build-template-data) for more information.
- `snapshot_users` ([]string) - A list of account IDs that have
access to create volumes from the snapshot(s). By default no additional
users other than the user creating the AMI has permissions to create
volumes from the backing snapshot(s).
- `snapshot_groups` ([]string) - A list of groups that have access to
create volumes from the snapshot(s). By default no groups have permission
to create volumes from the snapshot(s). all will make the snapshot
publicly accessible.

View File

@ -0,0 +1,7 @@
<!-- Code generated from the comments of the AMIConfig struct in builder/amazon/common/ami_config.go; DO NOT EDIT MANUALLY -->
- `ami_name` (string) - The name of the resulting AMI that will appear when
managing AMIs in the AWS console or via APIs. This must be unique. To help
make this unique, use a function like timestamp (see [template
engine](../templates/engine.html) for more info).

View File

@ -0,0 +1,65 @@
<!-- Code generated from the comments of the AccessConfig struct in builder/amazon/common/access_config.go; DO NOT EDIT MANUALLY -->
- `custom_endpoint_ec2` (string) - This option is useful if you use a cloud
provider whose API is compatible with aws EC2. Specify another endpoint
like this https://ec2.custom.endpoint.com.
- `decode_authorization_messages` (bool) - Enable automatic decoding of any encoded authorization (error) messages
using the `sts:DecodeAuthorizationMessage` API. Note: requires that the
effective user/role have permissions to `sts:DecodeAuthorizationMessage`
on resource `*`. Default `false`.
- `insecure_skip_tls_verify` (bool) - This allows skipping TLS
verification of the AWS EC2 endpoint. The default is false.
- `mfa_code` (string) - The MFA TOTP code. This should probably be a user variable since it
changes all the time.
- `profile` (string) - The profile to use in the shared credentials file for
AWS. See Amazon's documentation on [specifying
profiles](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-profiles)
for more details.
- `skip_region_validation` (bool) - Set to true if you want to skip
validation of the ami_regions configuration option. Default false.
- `skip_metadata_api_check` (bool) - Skip Metadata Api Check
- `token` (string) - The access token to use. This is different from the
access key and secret key. If you're not sure what this is, then you
probably don't need it. This will also be read from the AWS_SESSION_TOKEN
environmental variable.
- `vault_aws_engine` (VaultAWSEngineOptions) - Get credentials from Hashicorp Vault's aws secrets engine. You must
already have created a role to use. For more information about
generating credentials via the Vault engine, see the [Vault
docs.](https://www.vaultproject.io/api/secret/aws/index.html#generate-credentials)
If you set this flag, you must also set the below options:
- `name` (string) - Required. Specifies the name of the role to generate
credentials against. This is part of the request URL.
- `engine_name` (string) - The name of the aws secrets engine. In the
Vault docs, this is normally referred to as "aws", and Packer will
default to "aws" if `engine_name` is not set.
- `role_arn` (string)- The ARN of the role to assume if credential\_type
on the Vault role is assumed\_role. Must match one of the allowed role
ARNs in the Vault role. Optional if the Vault role only allows a single
AWS role ARN; required otherwise.
- `ttl` (string) - Specifies the TTL for the use of the STS token. This
is specified as a string with a duration suffix. Valid only when
credential\_type is assumed\_role or federation\_token. When not
specified, the default\_sts\_ttl set for the role will be used. If that
is also not set, then the default value of 3600s will be used. AWS
places limits on the maximum TTL allowed. See the AWS documentation on
the DurationSeconds parameter for AssumeRole (for assumed\_role
credential types) and GetFederationToken (for federation\_token
credential types) for more details.
``` json
{
"vault_aws_engine": {
"name": "myrole",
"role_arn": "myarn",
"ttl": "3600s"
}
}
```

View File

@ -0,0 +1,15 @@
<!-- Code generated from the comments of the AccessConfig struct in builder/amazon/common/access_config.go; DO NOT EDIT MANUALLY -->
- `access_key` (string) - The access key used to communicate with AWS. [Learn how to set this]
(/docs/builders/amazon.html#specifying-amazon-credentials). On EBS, this
is not required if you are using `use_vault_aws_engine` for
authentication instead.
- `region` (string) - The name of the region, such as `us-east-1`, in which
to launch the EC2 instance to create the AMI.
When chroot building, this value is guessed from environment.
- `secret_key` (string) - The secret key used to communicate with AWS. [Learn how to set
this](amazon.html#specifying-amazon-credentials). This is not required
if you are using `use_vault_aws_engine` for authentication instead.

View File

@ -0,0 +1,3 @@
<!-- Code generated from the comments of the AmiFilterOptions struct in builder/amazon/common/run_config.go; DO NOT EDIT MANUALLY -->
- `most_recent` (bool) - Most Recent

View File

@ -0,0 +1,50 @@
<!-- Code generated from the comments of the BlockDevice struct in builder/amazon/common/block_device.go; DO NOT EDIT MANUALLY -->
- `delete_on_termination` (bool) - Indicates whether the EBS volume is
deleted on instance termination. Default false. NOTE: If this
value is not explicitly set to true and volumes are not cleaned up by
an alternative method, additional volumes will accumulate after every
build.
- `device_name` (string) - The device name exposed to the instance (for
example, /dev/sdh or xvdh). Required for every device in the block
device mapping.
- `encrypted` (*bool) - Indicates whether or not to encrypt the volume.
By default, Packer will keep the encryption setting to what it was in
the source image. Setting false will result in an unencrypted device,
and true will result in an encrypted one.
- `iops` (int64) - The number of I/O operations per second (IOPS) that
the volume supports. See the documentation on
IOPs
for more information
- `no_device` (bool) - Suppresses the specified device included in the
block device mapping of the AMI.
- `snapshot_id` (string) - The ID of the snapshot.
- `virtual_name` (string) - The virtual device name. See the
documentation on Block Device
Mapping
for more information.
- `volume_type` (string) - The volume type. gp2 for General Purpose
(SSD) volumes, io1 for Provisioned IOPS (SSD) volumes, st1 for
Throughput Optimized HDD, sc1 for Cold HDD, and standard for
Magnetic volumes.
- `volume_size` (int64) - The size of the volume, in GiB. Required if
not specifying a snapshot_id.
- `kms_key_id` (string) - ID, alias or ARN of the KMS key to use for boot
volume encryption. This only applies to the main region, other regions
where the AMI will be copied will be encrypted by the default EBS KMS key.
For valid formats see KmsKeyId in the [AWS API docs -
CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html)
This field is validated by Packer, when using an alias, you will have to
prefix kms_key_id with alias/.
- `omit_from_artifact` (bool) - ebssurrogate only

View File

@ -0,0 +1,19 @@
<!-- Code generated from the comments of the LaunchBlockDevices struct in builder/amazon/common/block_device.go; DO NOT EDIT MANUALLY -->
- `launch_block_device_mappings` ([]BlockDevice) - Add one or more block devices before the Packer build starts. If you add
instance store volumes or EBS volumes in addition to the root device
volume, the created AMI will contain block device mapping information
for those volumes. Amazon creates snapshots of the source instance's
root volume and any other EBS volumes described here. When you launch an
instance from this new AMI, the instance automatically launches with
these additional volumes, and will restore them from snapshots taken
from the source instance.
In addition to the fields available in ami_block_device_mappings, you
may optionally use the following field:
- `omit_from_artifact` (boolean) - If true, this block device will not
be snapshotted and the created AMI will not contain block device mapping
information for this volume. If false, the block device will be mapped
into the final created AMI. Set this option to true if you need a block
device mounted in the surrogate AMI but not in the final created AMI.

View File

@ -0,0 +1,246 @@
<!-- Code generated from the comments of the RunConfig struct in builder/amazon/common/run_config.go; DO NOT EDIT MANUALLY -->
- `associate_public_ip_address` (bool) - If using a non-default VPC,
public IP addresses are not provided by default. If this is true, your
new instance will get a Public IP. default: false
- `availability_zone` (string) - Destination availability zone to launch
instance in. Leave this empty to allow Amazon to auto-assign.
- `block_duration_minutes` (int64) - Requires spot_price to be set. The
required duration for the Spot Instances (also known as Spot blocks). This
value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). You can't
specify an Availability Zone group or a launch group if you specify a
duration.
- `disable_stop_instance` (bool) - Packer normally stops the build instance after all provisioners have
run. For Windows instances, it is sometimes desirable to [run
Sysprep](http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ami-create-standard.html)
which will stop the instance for you. If this is set to `true`, Packer
*will not* stop the instance but will assume that you will send the stop
signal yourself through your final provisioner. You can do this with a
[windows-shell
provisioner](https://www.packer.io/docs/provisioners/windows-shell.html).
Note that Packer will still wait for the instance to be stopped, and
failing to send the stop signal yourself, when you have set this flag to
`true`, will cause a timeout.
Example of a valid shutdown command:
``` json
{
"type": "windows-shell",
"inline": ["\"c:\\Program Files\\Amazon\\Ec2ConfigService\\ec2config.exe\" -sysprep"]
}
```
- `ebs_optimized` (bool) - Mark instance as [EBS
Optimized](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html).
Default `false`.
- `enable_t2_unlimited` (bool) - Enabling T2 Unlimited allows the source instance to burst additional CPU
beyond its available [CPU
Credits](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-credits-baseline-concepts.html)
for as long as the demand exists. This is in contrast to the standard
configuration that only allows an instance to consume up to its
available CPU Credits. See the AWS documentation for [T2
Unlimited](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-unlimited.html)
and the **T2 Unlimited Pricing** section of the [Amazon EC2 On-Demand
Pricing](https://aws.amazon.com/ec2/pricing/on-demand/) document for
more information. By default this option is disabled and Packer will set
up a [T2
Standard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-std.html)
instance instead.
To use T2 Unlimited you must use a T2 instance type, e.g. `t2.micro`.
Additionally, T2 Unlimited cannot be used in conjunction with Spot
Instances, e.g. when the `spot_price` option has been configured.
Attempting to do so will cause an error.
!&gt; **Warning!** Additional costs may be incurred by enabling T2
Unlimited - even for instances that would usually qualify for the
[AWS Free Tier](https://aws.amazon.com/free/).
- `iam_instance_profile` (string) - The name of an [IAM instance
profile](https://docs.aws.amazon.com/IAM/latest/UserGuide/instance-profiles.html)
to launch the EC2 instance with.
- `shutdown_behavior` (string) - Automatically terminate instances on
shutdown in case Packer exits ungracefully. Possible values are stop and
terminate. Defaults to stop.
- `security_group_filter` (SecurityGroupFilterOptions) - Filters used to populate the `security_group_ids` field. Example:
``` json
{
"security_group_filter": {
"filters": {
"tag:Class": "packer"
}
}
}
```
This selects the SG's with tag `Class` with the value `packer`.
- `filters` (map of strings) - filters used to select a
`security_group_ids`. Any filter described in the docs for
[DescribeSecurityGroups](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)
is valid.
`security_group_ids` take precedence over this.
- `run_tags` (map[string]string) - Tags to apply to the instance that is *launched* to create the AMI.
These tags are *not* applied to the resulting AMI unless they're
duplicated in `tags`. This is a [template
engine](/docs/templates/engine.html), see [Build template
data](#build-template-data) for more information.
- `security_group_id` (string) - The ID (not the name) of the security
group to assign to the instance. By default this is not set and Packer will
automatically create a new temporary security group to allow SSH access.
Note that if this is specified, you must be sure the security group allows
access to the ssh_port given below.
- `security_group_ids` ([]string) - A list of security groups as
described above. Note that if this is specified, you must omit the
security_group_id.
- `source_ami_filter` (AmiFilterOptions) - Filters used to populate the `source_ami`
field. Example:
``` json
{
"source_ami_filter": {
"filters": {
"virtualization-type": "hvm",
"name": "ubuntu/images/\*ubuntu-xenial-16.04-amd64-server-\*",
"root-device-type": "ebs"
},
"owners": ["099720109477"],
"most_recent": true
}
}
```
This selects the most recent Ubuntu 16.04 HVM EBS AMI from Canonical. NOTE:
This will fail unless *exactly* one AMI is returned. In the above example,
`most_recent` will cause this to succeed by selecting the newest image.
- `filters` (map of strings) - filters used to select a `source_ami`.
NOTE: This will fail unless *exactly* one AMI is returned. Any filter
described in the docs for
[DescribeImages](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html)
is valid.
- `owners` (array of strings) - Filters the images by their owner. You
may specify one or more AWS account IDs, "self" (which will use the
account whose credentials you are using to run Packer), or an AWS owner
alias: for example, `amazon`, `aws-marketplace`, or `microsoft`. This
option is required for security reasons.
- `most_recent` (boolean) - Selects the newest created image when true.
This is most useful for selecting a daily distro build.
You may set this in place of `source_ami` or in conjunction with it. If you
set this in conjunction with `source_ami`, the `source_ami` will be added
to the filter. The provided `source_ami` must meet all of the filtering
criteria provided in `source_ami_filter`; this pins the AMI returned by the
filter, but will cause Packer to fail if the `source_ami` does not exist.
- `spot_instance_types` ([]string) - a list of acceptable instance
types to run your build on. We will request a spot instance using the max
price of spot_price and the allocation strategy of "lowest price".
Your instance will be launched on an instance type of the lowest available
price that you have in your list. This is used in place of instance_type.
You may only set either spot_instance_types or instance_type, not both.
This feature exists to help prevent situations where a Packer build fails
because a particular availability zone does not have capacity for the
specific instance_type requested in instance_type.
- `spot_price` (string) - The maximum hourly price to pay for a spot instance
to create the AMI. Spot instances are a type of instance that EC2 starts
when the current spot price is less than the maximum price you specify.
Spot price will be updated based on available spot instance capacity and
current spot instance requests. It may save you some costs. You can set
this to auto for Packer to automatically discover the best spot price or
to "0" to use an on demand instance (default).
- `spot_price_auto_product` (string) - Required if spot_price is set to
auto. This tells Packer what sort of AMI you're launching to find the
best spot price. This must be one of: Linux/UNIX, SUSE Linux,
Windows, Linux/UNIX (Amazon VPC), SUSE Linux (Amazon VPC),
Windows (Amazon VPC)
- `spot_tags` (map[string]string) - Requires spot_price to be
set. This tells Packer to apply tags to the spot request that is issued.
- `subnet_filter` (SubnetFilterOptions) - Filters used to populate the `subnet_id` field.
Example:
``` json
{
"subnet_filter": {
"filters": {
"tag:Class": "build"
},
"most_free": true,
"random": false
}
}
```
This selects the Subnet with tag `Class` with the value `build`, which has
the most free IP addresses. NOTE: This will fail unless *exactly* one
Subnet is returned. By using `most_free` or `random` one will be selected
from those matching the filter.
- `filters` (map of strings) - filters used to select a `subnet_id`.
NOTE: This will fail unless *exactly* one Subnet is returned. Any
filter described in the docs for
[DescribeSubnets](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html)
is valid.
- `most_free` (boolean) - The Subnet with the most free IPv4 addresses
will be used if multiple Subnets matches the filter.
- `random` (boolean) - A random Subnet will be used if multiple Subnets
matches the filter. `most_free` have precendence over this.
`subnet_id` take precedence over this.
- `subnet_id` (string) - If using VPC, the ID of the subnet, such as
subnet-12345def, where Packer will launch the EC2 instance. This field is
required if you are using an non-default VPC.
- `temporary_key_pair_name` (string) - The name of the temporary key pair to
generate. By default, Packer generates a name that looks like
`packer_<UUID>`, where &lt;UUID&gt; is a 36 character unique identifier.
- `temporary_security_group_source_cidrs` ([]string) - A list of IPv4 CIDR blocks to be authorized access to the instance, when
packer is creating a temporary security group.
The default is [`0.0.0.0/0`] (i.e., allow any IPv4 source). This is only
used when `security_group_id` or `security_group_ids` is not specified.
- `user_data` (string) - User data to apply when launching the instance. Note
that you need to be careful about escaping characters due to the templates
being JSON. It is often more convenient to use user_data_file, instead.
Packer will not automatically wait for a user script to finish before
shutting down the instance this must be handled in a provisioner.
- `user_data_file` (string) - Path to a file that will be used for the user
data when launching the instance.
- `vpc_filter` (VpcFilterOptions) - Filters used to populate the vpc_id field.
vpc_id take precedence over this.
Example:
- `vpc_id` (string) - If launching into a VPC subnet, Packer needs the VPC ID
in order to create a temporary security group within the VPC. Requires
subnet_id to be set. If this field is left blank, Packer will try to get
the VPC ID from the subnet_id.
- `windows_password_timeout` (time.Duration) - The timeout for waiting for a Windows
password for Windows instances. Defaults to 20 minutes. Example value:
10m

View File

@ -0,0 +1,10 @@
<!-- Code generated from the comments of the RunConfig struct in builder/amazon/common/run_config.go; DO NOT EDIT MANUALLY -->
- `instance_type` (string) - The EC2 instance type to use while building the
AMI, such as t2.small.
- `source_ami` (string) - The source AMI whose root volume will be copied and
provisioned on the currently running instance. This must be an EBS-backed
AMI with a root volume snapshot that you have access to. Note: this is not
used when from_scratch is set to true.

View File

@ -0,0 +1,4 @@
<!-- Code generated from the comments of the SubnetFilterOptions struct in builder/amazon/common/run_config.go; DO NOT EDIT MANUALLY -->
- `most_free` (bool) - Most Free
- `random` (bool) - Random

View File

@ -0,0 +1,15 @@
<!-- Code generated from the comments of the VaultAWSEngineOptions struct in builder/amazon/common/access_config.go; DO NOT EDIT MANUALLY -->
- `name` (string) - Name
- `role_arn` (string) - Role ARN
- `ttl` (string) - Specifies the TTL for the use of the STS token. This
is specified as a string with a duration suffix. Valid only when
credential_type is assumed_role or federation_token. When not
specified, the default_sts_ttl set for the role will be used. If that
is also not set, then the default value of 3600s will be used. AWS
places limits on the maximum TTL allowed. See the AWS documentation on
the DurationSeconds parameter for AssumeRole (for assumed_role
credential types) and GetFederationToken (for federation_token
credential types) for more details.
- `engine_name` (string) - Engine Name

View File

@ -0,0 +1,8 @@
<!-- Code generated from the comments of the Config struct in builder/amazon/ebs/builder.go; DO NOT EDIT MANUALLY -->
- `run_volume_tags` (awscommon.TagMap) - Tags to apply to the volumes that are *launched* to create the AMI.
These tags are *not* applied to the resulting AMI unless they're
duplicated in `tags`. This is a [template
engine](/docs/templates/engine.html), see [Build template
data](#build-template-data) for more information.

View File

@ -0,0 +1,11 @@
<!-- Code generated from the comments of the Config struct in builder/amazon/ebssurrogate/builder.go; DO NOT EDIT MANUALLY -->
- `run_volume_tags` (awscommon.TagMap) - Tags to apply to the volumes that are *launched* to create the AMI.
These tags are *not* applied to the resulting AMI unless they're
duplicated in `tags`. This is a [template
engine](/docs/templates/engine.html), see [Build template
data](#build-template-data) for more information.
- `ami_architecture` (string) - what architecture to use when registering the
final AMI; valid options are "x86_64" or "arm64". Defaults to "x86_64".

View File

@ -0,0 +1,10 @@
<!-- Code generated from the comments of the Config struct in builder/amazon/ebssurrogate/builder.go; DO NOT EDIT MANUALLY -->
- `ami_root_device` (RootBlockDevice) - A block device mapping describing the root device of the AMI. This looks
like the mappings in `ami_block_device_mapping`, except with an
additional field:
- `source_device_name` (string) - The device name of the block device on
the source instance to be used as the root device for the AMI. This
must correspond to a block device in `launch_block_device_mapping`.

View File

@ -0,0 +1,26 @@
<!-- Code generated from the comments of the RootBlockDevice struct in builder/amazon/ebssurrogate/root_block_device.go; DO NOT EDIT MANUALLY -->
- `source_device_name` (string) - Source Device Name
- `device_name` (string) - The device name exposed to the instance (for
example, /dev/sdh or xvdh). Required for every device in the block
device mapping.
- `delete_on_termination` (bool) - Indicates whether the EBS volume is
deleted on instance termination. Default false. NOTE: If this
value is not explicitly set to true and volumes are not cleaned up by
an alternative method, additional volumes will accumulate after every
build.
- `iops` (int64) - The number of I/O operations per second (IOPS) that
the volume supports. See the documentation on
IOPs
for more information
- `volume_type` (string) - The volume type. gp2 for General Purpose
(SSD) volumes, io1 for Provisioned IOPS (SSD) volumes, st1 for
Throughput Optimized HDD, sc1 for Cold HDD, and standard for
Magnetic volumes.
- `volume_size` (int64) - The size of the volume, in GiB. Required if
not specifying a snapshot_id.

View File

@ -0,0 +1,6 @@
<!-- Code generated from the comments of the BlockDevice struct in builder/amazon/ebsvolume/block_device.go; DO NOT EDIT MANUALLY -->
- `tags` (awscommon.TagMap) - Tags applied to the AMI. This is a
template engine, see Build template
data for more information.

View File

@ -0,0 +1,19 @@
<!-- Code generated from the comments of the Config struct in builder/amazon/ebsvolume/builder.go; DO NOT EDIT MANUALLY -->
- `ebs_volumes` ([]BlockDevice) - Add the block device
mappings to the AMI. The block device mappings allow for keys:
- `ena_support` (*bool) - Enable enhanced networking (ENA but not SriovNetSupport) on
HVM-compatible AMIs. If set, add ec2:ModifyInstanceAttribute to your AWS
IAM policy. If false, this will disable enhanced networking in the final
AMI as opposed to passing the setting through unchanged from the source.
Note: you must make sure enhanced networking is enabled on your
instance. See Amazon's documentation on enabling enhanced networking.
- `sriov_support` (bool) - Enable enhanced networking (SriovNetSupport but not ENA) on
HVM-compatible AMIs. If true, add `ec2:ModifyInstanceAttribute` to your
AWS IAM policy. Note: you must make sure enhanced networking is enabled
on your instance. See [Amazon's documentation on enabling enhanced
networking](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html#enabling_enhanced_networking).
Default `false`.

View File

@ -0,0 +1,24 @@
<!-- Code generated from the comments of the Config struct in builder/amazon/instance/builder.go; DO NOT EDIT MANUALLY -->
- `bundle_destination` (string) - The directory on the running instance where
the bundled AMI will be saved prior to uploading. By default this is
/tmp. This directory must exist and be writable.
- `bundle_prefix` (string) - The prefix for files created from bundling the
root volume. By default this is image-{{timestamp}}. The timestamp
variable should be used to make sure this is unique, otherwise it can
collide with other created AMIs by Packer in your account.
- `bundle_upload_command` (string) - The command to use to upload the bundled
volume. See the "custom bundle commands" section below for more
information.
- `bundle_vol_command` (string) - The command to use to bundle the volume.
See the "custom bundle commands" section below for more information.
- `x509_upload_path` (string) - The path on the remote machine where the X509
certificate will be uploaded. This path must already exist and be writable.
X509 certificates are uploaded after provisioning is run, so it is
perfectly okay to create this directory as part of the provisioning
process. Defaults to /tmp.

View File

@ -0,0 +1,18 @@
<!-- Code generated from the comments of the Config struct in builder/amazon/instance/builder.go; DO NOT EDIT MANUALLY -->
- `account_id` (string) - Your AWS account ID. This is required for bundling
the AMI. This is not the same as the access key. You can find your
account ID in the security credentials page of your AWS account.
- `s3_bucket` (string) - The name of the S3 bucket to upload the AMI. This
bucket will be created if it doesn't exist.
- `x509_cert_path` (string) - The local path to a valid X509 certificate for
your AWS account. This is used for bundling the AMI. This X509 certificate
must be registered with your account from the security credentials page in
the AWS console.
- `x509_key_path` (string) - The local path to the private key for the X509
certificate specified by x509_cert_path. This is used for bundling the
AMI.

View File

@ -0,0 +1,20 @@
<!-- Code generated from the comments of the ClientConfig struct in builder/azure/arm/clientconfig.go; DO NOT EDIT MANUALLY -->
- `cloud_environment_name` (string) - One of Public, China, Germany, or
USGovernment. Defaults to Public. Long forms such as
USGovernmentCloud and AzureUSGovernmentCloud are also supported.
- `client_id` (string) - Client ID
- `client_secret` (string) - Client secret/password
- `client_cert_path` (string) - Certificate path for client auth
- `client_jwt` (string) - JWT bearer token for client auth (RFC 7523, Sec. 2.2)
- `object_id` (string) - Object ID
- `tenant_id` (string) - The account identifier with which your client_id and
subscription_id are associated. If not specified, tenant_id will be
looked up using subscription_id.
- `subscription_id` (string) - Subscription ID

View File

@ -0,0 +1,185 @@
<!-- Code generated from the comments of the Config struct in builder/azure/arm/config.go; DO NOT EDIT MANUALLY -->
- `capture_name_prefix` (string) - Capture
- `capture_container_name` (string) - Capture Container Name
- `shared_image_gallery` (SharedImageGallery) - Use a [Shared Gallery
image](https://azure.microsoft.com/en-us/blog/announcing-the-public-preview-of-shared-image-gallery/)
as the source for this build. *VHD targets are incompatible with this
build type* - the target must be a *Managed Image*.
"shared_image_gallery": {
"subscription": "00000000-0000-0000-0000-00000000000",
"resource_group": "ResourceGroup",
"gallery_name": "GalleryName",
"image_name": "ImageName",
"image_version": "1.0.0"
}
"managed_image_name": "TargetImageName",
"managed_image_resource_group_name": "TargetResourceGroup"
- `image_version` (string) - Specify a specific version of an OS to boot from.
Defaults to `latest`. There may be a difference in versions available
across regions due to image synchronization latency. To ensure a consistent
version across regions set this value to one that is available in all
regions where you are deploying.
CLI example
`az vm image list --location westus --publisher Canonical --offer UbuntuServer --sku 16.04.0-LTS --all`
- `image_url` (string) - Specify a custom VHD to use. If this value is set, do
not set image_publisher, image_offer, image_sku, or image_version.
- `custom_managed_image_resource_group_name` (string) - Specify the source managed image's resource group used to use. If this
value is set, do not set image\_publisher, image\_offer, image\_sku, or
image\_version. If this value is set, the value
`custom_managed_image_name` must also be set. See
[documentation](https://docs.microsoft.com/en-us/azure/storage/storage-managed-disks-overview#images)
to learn more about managed images.
- `custom_managed_image_name` (string) - Specify the source managed image's name to use. If this value is set, do
not set image\_publisher, image\_offer, image\_sku, or image\_version.
If this value is set, the value
`custom_managed_image_resource_group_name` must also be set. See
[documentation](https://docs.microsoft.com/en-us/azure/storage/storage-managed-disks-overview#images)
to learn more about managed images.
- `location` (string) - Location
- `vm_size` (string) - Size of the VM used for building. This can be changed when you deploy a
VM from your VHD. See
[pricing](https://azure.microsoft.com/en-us/pricing/details/virtual-machines/)
information. Defaults to `Standard_A1`.
CLI example `az vm list-sizes --location westus`
- `managed_image_resource_group_name` (string) - Managed Image Resource Group Name
- `managed_image_name` (string) - Managed Image Name
- `managed_image_storage_account_type` (string) - Specify the storage account
type for a managed image. Valid values are Standard_LRS and Premium_LRS.
The default is Standard_LRS.
- `managed_image_os_disk_snapshot_name` (string) - If
managed_image_os_disk_snapshot_name is set, a snapshot of the OS disk
is created with the same name as this value before the VM is captured.
- `managed_image_data_disk_snapshot_prefix` (string) - If
managed_image_data_disk_snapshot_prefix is set, snapshot of the data
disk(s) is created with the same prefix as this value before the VM is
captured.
- `managed_image_zone_resilient` (bool) - Store the image in zone-resilient storage. You need to create it in a
region that supports [availability
zones](https://docs.microsoft.com/en-us/azure/availability-zones/az-overview).
- `azure_tags` (map[string]*string) - the user can define up to 15
tags. Tag names cannot exceed 512 characters, and tag values cannot exceed
256 characters. Tags are applied to every resource deployed by a Packer
build, i.e. Resource Group, VM, NIC, VNET, Public IP, KeyVault, etc.
- `resource_group_name` (string) - Resource Group Name
- `storage_account` (string) - Storage Account
- `temp_compute_name` (string) - temporary name assigned to the VM. If this
value is not set, a random value will be assigned. Knowing the resource
group and VM name allows one to execute commands to update the VM during a
Packer build, e.g. attach a resource disk to the VM.
- `temp_resource_group_name` (string) - Temp Resource Group Name
- `build_resource_group_name` (string) - Build Resource Group Name
- `private_virtual_network_with_public_ip` (bool) - This value allows you to
set a virtual_network_name and obtain a public IP. If this value is not
set and virtual_network_name is defined Packer is only allowed to be
executed from a host on the same subnet / virtual network.
- `virtual_network_name` (string) - Use a pre-existing virtual network for the
VM. This option enables private communication with the VM, no public IP
address is used or provisioned (unless you set
private_virtual_network_with_public_ip).
- `virtual_network_subnet_name` (string) - If virtual_network_name is set,
this value may also be set. If virtual_network_name is set, and this
value is not set the builder attempts to determine the subnet to use with
the virtual network. If the subnet cannot be found, or it cannot be
disambiguated, this value should be set.
- `virtual_network_resource_group_name` (string) - If virtual_network_name is
set, this value may also be set. If virtual_network_name is set, and
this value is not set the builder attempts to determine the resource group
containing the virtual network. If the resource group cannot be found, or
it cannot be disambiguated, this value should be set.
- `custom_data_file` (string) - Specify a file containing custom data to inject into the cloud-init
process. The contents of the file are read and injected into the ARM
template. The custom data will be passed to cloud-init for processing at
the time of provisioning. See
[documentation](http://cloudinit.readthedocs.io/en/latest/topics/examples.html)
to learn more about custom data, and how it can be used to influence the
provisioning process.
- `plan_info` (PlanInformation) - Used for creating images from Marketplace images. Please refer to
[Deploy an image with Marketplace
terms](https://aka.ms/azuremarketplaceapideployment) for more details.
Not all Marketplace images support programmatic deployment, and support
is controlled by the image publisher.
An example plan\_info object is defined below.
``` json
{
"plan_info": {
"plan_name": "rabbitmq",
"plan_product": "rabbitmq",
"plan_publisher": "bitnami"
}
}
```
`plan_name` (string) - The plan name, required. `plan_product` (string) -
The plan product, required. `plan_publisher` (string) - The plan publisher,
required. `plan_promotion_code` (string) - Some images accept a promotion
code, optional.
Images created from the Marketplace with `plan_info` **must** specify
`plan_info` whenever the image is deployed. The builder automatically adds
tags to the image to ensure this information is not lost. The following
tags are added.
1. PlanName
2. PlanProduct
3. PlanPublisher
4. PlanPromotionCode
- `os_type` (string) - If either Linux or Windows is specified Packer will
automatically configure authentication credentials for the provisioned
machine. For Linux this configures an SSH authorized key. For Windows
this configures a WinRM certificate.
- `os_disk_size_gb` (int32) - Specify the size of the OS disk in GB
(gigabytes). Values of zero or less than zero are ignored.
- `disk_additional_size` ([]int32) - The size(s) of any additional hard disks for the VM in gigabytes. If
this is not specified then the VM will only contain an OS disk. The
number of additional disks and maximum size of a disk depends on the
configuration of your VM. See
[Windows](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/about-disks-and-vhds)
or
[Linux](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/about-disks-and-vhds)
for more information.
For VHD builds the final artifacts will be named
`PREFIX-dataDisk-<n>.UUID.vhd` and stored in the specified capture
container along side the OS disk. The additional disks are included in
the deployment template `PREFIX-vmTemplate.UUID`.
For Managed build the final artifacts are included in the managed image.
The additional disk will have the same storage account type as the OS
disk, as specified with the `managed_image_storage_account_type`
setting.
- `disk_caching_type` (string) - Specify the disk caching type. Valid values
are None, ReadOnly, and ReadWrite. The default value is ReadWrite.
- `async_resourcegroup_delete` (bool) - If you want packer to delete the
temporary resource group asynchronously set this value. It's a boolean
value and defaults to false. Important Setting this true means that
your builds are faster, however any failed deletes are not reported.

View File

@ -0,0 +1,22 @@
<!-- Code generated from the comments of the Config struct in builder/azure/arm/config.go; DO NOT EDIT MANUALLY -->
- `image_publisher` (string) - PublisherName for your base image. See
[documentation](https://azure.microsoft.com/en-us/documentation/articles/resource-groups-vm-searching/)
for details.
CLI example `az vm image list-publishers --location westus`
- `image_offer` (string) - Offer for your base image. See
[documentation](https://azure.microsoft.com/en-us/documentation/articles/resource-groups-vm-searching/)
for details.
CLI example
`az vm image list-offers --location westus --publisher Canonical`
- `image_sku` (string) - SKU for your base image. See
[documentation](https://azure.microsoft.com/en-us/documentation/articles/resource-groups-vm-searching/)
for details.
CLI example
`az vm image list-skus --location westus --publisher Canonical --offer UbuntuServer`

View File

@ -0,0 +1,6 @@
<!-- Code generated from the comments of the PlanInformation struct in builder/azure/arm/config.go; DO NOT EDIT MANUALLY -->
- `plan_name` (string) - Plan Name
- `plan_product` (string) - Plan Product
- `plan_publisher` (string) - Plan Publisher
- `plan_promotion_code` (string) - Plan Promotion Code

View File

@ -0,0 +1,12 @@
<!-- Code generated from the comments of the SharedImageGallery struct in builder/azure/arm/config.go; DO NOT EDIT MANUALLY -->
- `subscription` (string) - Subscription
- `resource_group` (string) - Resource Group
- `gallery_name` (string) - Gallery Name
- `image_name` (string) - Image Name
- `image_version` (string) - Specify a specific version of an OS to boot from.
Defaults to latest. There may be a difference in versions available
across regions due to image synchronization latency. To ensure a consistent
version across regions set this value to one that is available in all
regions where you are deploying.

View File

@ -0,0 +1,97 @@
<!-- Code generated from the comments of the Config struct in builder/cloudstack/config.go; DO NOT EDIT MANUALLY -->
- `async_timeout` (time.Duration) - The time duration to wait for async calls to
finish. Defaults to 30m.
- `http_get_only` (bool) - Some cloud providers only allow HTTP GET calls
to their CloudStack API. If using such a provider, you need to set this to
true in order for the provider to only make GET calls and no POST calls.
- `ssl_no_verify` (bool) - Set to true to skip SSL verification.
Defaults to false.
- `cidr_list` ([]string) - List of CIDR's that will have access to the new
instance. This is needed in order for any provisioners to be able to
connect to the instance. Defaults to [ "0.0.0.0/0" ]. Only required when
use_local_ip_address is false.
- `create_security_group` (bool) - If true a temporary security group
will be created which allows traffic towards the instance from the
cidr_list. This option will be ignored if security_groups is also
defined. Requires expunge set to true. Defaults to false.
- `disk_offering` (string) - The name or ID of the disk offering used for the
instance. This option is only available (and also required) when using
source_iso.
- `disk_size` (int64) - The size (in GB) of the root disk of the new
instance. This option is only available when using source_template.
- `expunge` (bool) - Set to true to expunge the instance when it is
destroyed. Defaults to false.
- `hypervisor` (string) - The target hypervisor (e.g. XenServer, KVM) for
the new template. This option is required when using source_iso.
- `instance_name` (string) - The name of the instance. Defaults to
"packer-UUID" where UUID is dynamically generated.
- `project` (string) - The name or ID of the project to deploy the instance
to.
- `public_ip_address` (string) - The public IP address or it's ID used for
connecting any provisioners to. If not provided, a temporary public IP
address will be associated and released during the Packer run.
- `public_port` (int) - The fixed port you want to configure in the port
forwarding rule. Set this attribute if you do not want to use the a random
public port.
- `security_groups` ([]string) - A list of security group IDs or
names to associate the instance with.
- `prevent_firewall_changes` (bool) - Set to true to prevent network
ACLs or firewall rules creation. Defaults to false.
- `temporary_keypair_name` (string) - The name of the temporary SSH key pair
to generate. By default, Packer generates a name that looks like
packer_<UUID>, where <UUID> is a 36 character unique identifier.
- `use_local_ip_address` (bool) - Set to true to indicate that the
provisioners should connect to the local IP address of the instance.
- `user_data` (string) - User data to launch with the instance. This is a
template engine see User Data bellow for
more details. Packer will not automatically wait for a user script to
finish before shutting down the instance this must be handled in a
provisioner.
- `user_data_file` (string) - Path to a file that will be used for the user
data when launching the instance. This file will be parsed as a template
engine see User Data bellow for more
details.
- `template_name` (string) - The name of the new template. Defaults to
"packer-{{timestamp}}" where timestamp will be the current time.
- `template_display_text` (string) - The display text of the new template.
Defaults to the template_name.
- `template_featured` (bool) - Set to true to indicate that the template
is featured. Defaults to false.
- `template_public` (bool) - Set to true to indicate that the template
is available for all accounts. Defaults to false.
- `template_password_enabled` (bool) - Set to true to indicate the
template should be password enabled. Defaults to false.
- `template_requires_hvm` (bool) - Set to true to indicate the template
requires hardware-assisted virtualization. Defaults to false.
- `template_scalable` (bool) - Set to true to indicate that the template
contains tools to support dynamic scaling of VM cpu/memory. Defaults to
false.
- `template_tag` (string) - Template Tag
- `tags` (map[string]string) - Tags

View File

@ -0,0 +1,33 @@
<!-- Code generated from the comments of the Config struct in builder/cloudstack/config.go; DO NOT EDIT MANUALLY -->
- `api_url` (string) - The CloudStack API endpoint we will connect to. It can
also be specified via environment variable CLOUDSTACK_API_URL, if set.
- `api_key` (string) - The API key used to sign all API requests. It can also
be specified via environment variable CLOUDSTACK_API_KEY, if set.
- `secret_key` (string) - The secret key used to sign all API requests. It
can also be specified via environment variable CLOUDSTACK_SECRET_KEY, if
set.
- `network` (string) - The name or ID of the network to connect the instance
to.
- `service_offering` (string) - The name or ID of the service offering used
for the instance.
- `source_iso` (string) - The name or ID of an ISO that will be mounted
before booting the instance. This option is mutually exclusive with
source_template. When using source_iso, both disk_offering and
hypervisor are required.
- `source_template` (string) - The name or ID of the template used as base
template for the instance. This option is mutually exclusive with
source_iso.
- `zone` (string) - The name or ID of the zone where the instance will be
created.
- `template_os` (string) - The name or ID of the template OS for the new
template that will be created.

View File

@ -0,0 +1,38 @@
<!-- Code generated from the comments of the Config struct in builder/digitalocean/config.go; DO NOT EDIT MANUALLY -->
- `api_url` (string) - Non standard api endpoint URL. Set this if you are
using a DigitalOcean API compatible service. It can also be specified via
environment variable DIGITALOCEAN_API_URL.
- `private_networking` (bool) - Set to true to enable private networking
for the droplet being created. This defaults to false, or not enabled.
- `monitoring` (bool) - Set to true to enable monitoring for the droplet
being created. This defaults to false, or not enabled.
- `ipv6` (bool) - Set to true to enable ipv6 for the droplet being
created. This defaults to false, or not enabled.
- `snapshot_name` (string) - The name of the resulting snapshot that will
appear in your account. Defaults to "packer-{{timestamp}}" (see
configuration templates for more info).
- `snapshot_regions` ([]string) - The regions of the resulting
snapshot that will appear in your account.
- `state_timeout` (time.Duration) - The time to wait, as a duration string, for a
droplet to enter a desired state (such as "active") before timing out. The
default state timeout is "6m".
- `droplet_name` (string) - The name assigned to the droplet. DigitalOcean
sets the hostname of the machine to this value.
- `user_data` (string) - User data to launch with the Droplet. Packer will
not automatically wait for a user script to finish before shutting down the
instance this must be handled in a provisioner.
- `user_data_file` (string) - Path to a file that will be used for the user
data when launching the Droplet.
- `tags` ([]string) - Tags to apply to the droplet when it is created

View File

@ -0,0 +1,21 @@
<!-- Code generated from the comments of the Config struct in builder/digitalocean/config.go; DO NOT EDIT MANUALLY -->
- `api_token` (string) - The client TOKEN to use to access your account. It
can also be specified via environment variable DIGITALOCEAN_API_TOKEN, if
set.
- `region` (string) - The name (or slug) of the region to launch the droplet
in. Consequently, this is the region where the snapshot will be available.
See
https://developers.digitalocean.com/documentation/v2/#list-all-regions
for the accepted region names/slugs.
- `size` (string) - The name (or slug) of the droplet size to use. See
https://developers.digitalocean.com/documentation/v2/#list-all-sizes
for the accepted size names/slugs.
- `image` (string) - The name (or slug) of the base image to use. This is the
image that will be used to launch a new droplet and provision it. See
https://developers.digitalocean.com/documentation/v2/#list-all-images
for details on how to get a list of the accepted image names/slugs.

View File

@ -0,0 +1,19 @@
<!-- Code generated from the comments of the AwsAccessConfig struct in builder/docker/ecr_login.go; DO NOT EDIT MANUALLY -->
- `aws_access_key` (string) - The AWS access key used to communicate with
AWS. Learn how to set
this.
- `aws_secret_key` (string) - The AWS secret key used to communicate with
AWS. Learn how to set
this.
- `aws_token` (string) - The AWS access token to use. This is different from
the access key and secret key. If you're not sure what this is, then you
probably don't need it. This will also be read from the AWS_SESSION_TOKEN
environmental variable.
- `aws_profile` (string) - The AWS shared credentials profile used to
communicate with AWS. Learn how to set
this.

View File

@ -0,0 +1,62 @@
<!-- Code generated from the comments of the Config struct in builder/docker/config.go; DO NOT EDIT MANUALLY -->
- `author` (string) - Set the author (e-mail) of a commit.
- `changes` ([]string) - Dockerfile instructions to add to the commit. Example of instructions
are CMD, ENTRYPOINT, ENV, and EXPOSE. Example: [ "USER ubuntu", "WORKDIR
/app", "EXPOSE 8080" ]
- `container_dir` (string) - The directory inside container to mount temp directory from host server
for work file provisioner. This defaults to c:/packer-files on windows
and /packer-files on other systems.
- `exec_user` (string) - Username (UID) to run remote commands with. You can also set the group
name/ID if you want: (UID or UID:GID). You may need this if you get
permission errors trying to run the shell or other provisioners.
- `privileged` (bool) - If true, run the docker container with the `--privileged` flag. This
defaults to false if not set.
- `pull` (bool) - If true, the configured image will be pulled using `docker pull` prior
to use. Otherwise, it is assumed the image already exists and can be
used. This defaults to true if not set.
- `run_command` ([]string) - An array of arguments to pass to docker run in order to run the
container. By default this is set to ["-d", "-i", "-t",
"--entrypoint=/bin/sh", "--", "{{.Image}}"] if you are using a linux
container, and ["-d", "-i", "-t", "--entrypoint=powershell", "--",
"{{.Image}}"] if you are running a windows container. {{.Image}} is a
template variable that corresponds to the image template option. Passing
the entrypoint option this way will make it the default entrypoint of
the resulting image, so running docker run -it --rm will start the
docker image from the /bin/sh shell interpreter; you could run a script
or another shell by running docker run -it --rm -c /bin/bash. If your
docker image embeds a binary intended to be run often, you should
consider changing the default entrypoint to point to it.
- `volumes` (map[string]string) - A mapping of additional volumes to mount into this container. The key of
the object is the host path, the value is the container path.
- `fix_upload_owner` (bool) - If true, files uploaded to the container will be owned by the user the
container is running as. If false, the owner will depend on the version
of docker installed in the system. Defaults to true.
- `windows_container` (bool) - If "true", tells Packer that you are building a Windows container
running on a windows host. This is necessary for building Windows
containers, because our normal docker bindings do not work for them.
- `login` (bool) - This is used to login to dockerhub to pull a private base container. For
pushing to dockerhub, see the docker post-processors
- `login_password` (string) - The password to use to authenticate to login.
- `login_server` (string) - The server address to login to.
- `login_username` (string) - The username to use to authenticate to login.
- `ecr_login` (bool) - Defaults to false. If true, the builder will login in order to pull the
image from Amazon EC2 Container Registry (ECR). The builder only logs in
for the duration of the pull. If true login_server is required and
login, login_username, and login_password will be ignored. For more
information see the section on ECR.

View File

@ -0,0 +1,15 @@
<!-- Code generated from the comments of the Config struct in builder/docker/config.go; DO NOT EDIT MANUALLY -->
- `commit` (bool) - If true, the container will be committed to an image rather than exported.
- `discard` (bool) - Throw away the container when the build is complete. This is useful for
the [artifice
post-processor](https://www.packer.io/docs/post-processors/artifice.html).
- `export_path` (string) - The path where the final container will be exported as a tar file.
- `image` (string) - The base image for the Docker container that will be started. This image
will be pulled from the Docker registry if it doesn't already exist.
- `message` (string) - Set a message for the commit.

View File

@ -0,0 +1,119 @@
<!-- Code generated from the comments of the Config struct in builder/googlecompute/config.go; DO NOT EDIT MANUALLY -->
- `account_file` (string) - The JSON file containing your account
credentials. Not required if you run Packer on a GCE instance with a
service account. Instructions for creating the file or using service
accounts are above.
- `accelerator_type` (string) - Full or partial URL of the guest accelerator
type. GPU accelerators can only be used with
"on_host_maintenance": "TERMINATE" option set. Example:
"projects/project_id/zones/europe-west1-b/acceleratorTypes/nvidia-tesla-k80"
- `accelerator_count` (int64) - Number of guest accelerator cards to add to
the launched instance.
- `address` (string) - The name of a pre-allocated static external IP
address. Note, must be the name and not the actual IP address.
- `disable_default_service_account` (bool) - If true, the default service
account will not be used if service_account_email is not specified. Set
this value to true and omit service_account_email to provision a VM with
no service account.
- `disk_name` (string) - The name of the disk, if unset the instance name
will be used.
- `disk_size` (int64) - The size of the disk in GB. This defaults to 10,
which is 10GB.
- `disk_type` (string) - Type of disk used to back your instance, like
pd-ssd or pd-standard. Defaults to pd-standard.
- `image_name` (string) - The unique name of the resulting image. Defaults to
"packer-{{timestamp}}".
- `image_description` (string) - The description of the resulting image.
- `image_encryption_key` (*compute.CustomerEncryptionKey) - Image encryption key to apply to the created image. Possible values:
- `image_family` (string) - The name of the image family to which the
resulting image belongs. You can create disks by specifying an image family
instead of a specific image name. The image family always returns its
latest image that is not deprecated.
- `image_labels` (map[string]string) - Key/value pair labels to
apply to the created image.
- `image_licenses` ([]string) - Licenses to apply to the created
image.
- `instance_name` (string) - A name to give the launched instance. Beware
that this must be unique. Defaults to "packer-{{uuid}}".
- `labels` (map[string]string) - Key/value pair labels to apply to
the launched instance.
- `machine_type` (string) - The machine type. Defaults to "n1-standard-1".
- `metadata` (map[string]string) - Metadata applied to the launched
instance.
- `min_cpu_platform` (string) - A Minimum CPU Platform for VM Instance.
Availability and default CPU platforms vary across zones, based on the
hardware available in each GCP zone.
Details
- `network` (string) - The Google Compute network id or URL to use for the
launched instance. Defaults to "default". If the value is not a URL, it
will be interpolated to
projects/((network_project_id))/global/networks/((network)). This value
is not required if a subnet is specified.
- `network_project_id` (string) - The project ID for the network and
subnetwork to use for launched instance. Defaults to project_id.
- `omit_external_ip` (bool) - If true, the instance will not have an
external IP. use_internal_ip must be true if this property is true.
- `on_host_maintenance` (string) - Sets Host Maintenance Option. Valid
choices are MIGRATE and TERMINATE. Please see GCE Instance Scheduling
Options,
as not all machine_types support MIGRATE (i.e. machines with GPUs). If
preemptible is true this can only be TERMINATE. If preemptible is false,
it defaults to MIGRATE
- `preemptible` (bool) - If true, launch a preemptible instance.
- `state_timeout` (string) - The time to wait for instance state changes.
Defaults to "5m".
- `region` (string) - The region in which to launch the instance. Defaults to
the region hosting the specified zone.
- `scopes` ([]string) - The service account scopes for launched
instance. Defaults to:
- `service_account_email` (string) - The service account to be used for
launched instance. Defaults to the project's default service account unless
disable_default_service_account is true.
- `source_image_project_id` (string) - The project ID of the project
containing the source image.
- `startup_script_file` (string) - The path to a startup script to run on the
VM from which the image will be made.
- `subnetwork` (string) - The Google Compute subnetwork id or URL to use for
the launched instance. Only required if the network has been created with
custom subnetting. Note, the region of the subnetwork must match the
region or zone in which the VM is launched. If the value is not a URL,
it will be interpolated to
projects/((network_project_id))/regions/((region))/subnetworks/((subnetwork))
- `tags` ([]string) - Assign network tags to apply firewall rules to
VM instance.
- `use_internal_ip` (bool) - If true, use the instance's internal IP
instead of its external IP during building.

View File

@ -0,0 +1,17 @@
<!-- Code generated from the comments of the Config struct in builder/googlecompute/config.go; DO NOT EDIT MANUALLY -->
- `project_id` (string) - The project ID that will be used to launch
instances and store images.
- `source_image` (string) - The source image to use to create the new image
from. You can also specify source_image_family instead. If both
source_image and source_image_family are specified, source_image
takes precedence. Example: "debian-8-jessie-v20161027"
- `source_image_family` (string) - The source image family to use to create
the new image from. The image family always returns its latest image that
is not deprecated. Example: "debian-8".
- `zone` (string) - The zone in which to launch the instance used to create
the image. Example: "us-central1-a"

View File

@ -0,0 +1,61 @@
<!-- Code generated from the comments of the Config struct in builder/hyperone/config.go; DO NOT EDIT MANUALLY -->
- `api_url` (string) - Custom API endpoint URL, compatible with HyperOne.
It can also be specified via environment variable HYPERONE_API_URL.
- `token_login` (string) - Login (an e-mail) on HyperOne platform. Set this
if you want to fetch the token by SSH authentication.
- `state_timeout` (time.Duration) - Timeout for waiting on the API to complete
a request. Defaults to 5m.
- `image_name` (string) - The name of the resulting image. Defaults to
"packer-{{timestamp}}"
(see configuration templates for more info).
- `image_description` (string) - The description of the resulting image.
- `image_tags` (map[string]interface{}) - Key/value pair tags to
add to the created image.
- `image_service` (string) - The service of the resulting image.
- `vm_name` (string) - The name of the created server.
- `vm_tags` (map[string]interface{}) - Key/value pair tags to
add to the created server.
- `disk_name` (string) - The name of the created disk.
- `disk_type` (string) - The type of the created disk. Defaults to ssd.
- `network` (string) - The ID of the network to attach to the created server.
- `private_ip` (string) - The ID of the private IP within chosen network
that should be assigned to the created server.
- `public_ip` (string) - The ID of the public IP that should be assigned to
the created server. If network is chosen, the public IP will be associated
with server's private IP.
- `public_netadp_service` (string) - Custom service of public network adapter.
Can be useful when using custom api_url. Defaults to public.
- `chroot_disk` (bool) - Chroot Disk
- `chroot_disk_size` (float32) - Chroot Disk Size
- `chroot_disk_type` (string) - Chroot Disk Type
- `chroot_mount_path` (string) - Chroot Mount Path
- `chroot_mounts` ([][]string) - Chroot Mounts
- `chroot_copy_files` ([]string) - Chroot Copy Files
- `chroot_command_wrapper` (string) - Chroot Command Wrapper
- `mount_options` ([]string) - Mount Options
- `mount_partition` (string) - Mount Partition
- `pre_mount_commands` ([]string) - Pre Mount Commands
- `post_mount_commands` ([]string) - Post Mount Commands
- `ssh_keys` ([]string) - List of SSH keys by name or id to be added
to the server on launch.
- `user_data` (string) - User data to launch with the server. Packer will not
automatically wait for a user script to finish before shutting down the
instance, this must be handled in a provisioner.

View File

@ -0,0 +1,16 @@
<!-- Code generated from the comments of the Config struct in builder/hyperone/config.go; DO NOT EDIT MANUALLY -->
- `token` (string) - The authentication token used to access your account.
This can be either a session token or a service account token.
If not defined, the builder will attempt to find it in the following order:
- `project` (string) - The id or name of the project. This field is required
only if using session tokens. It should be skipped when using service
account authentication.
- `source_image` (string) - ID or name of the image to launch server from.
- `vm_type` (string) - ID or name of the type this server should be created with.
- `disk_size` (float32) - Size of the created disk, in GiB.

View File

@ -0,0 +1,10 @@
<!-- Code generated from the comments of the OutputConfig struct in builder/hyperv/common/output_config.go; DO NOT EDIT MANUALLY -->
- `output_directory` (string) - This setting specifies the directory that
artifacts from the build, such as the virtual machine files and disks,
will be output to. The path to the directory may be relative or
absolute. If relative, the path is relative to the working directory
packer is executed from. This directory must not exist or, if
created, must be empty prior to running the builder. By default this is
"output-BUILDNAME" where "BUILDNAME" is the name of the build.

View File

@ -0,0 +1,16 @@
<!-- Code generated from the comments of the ShutdownConfig struct in builder/hyperv/common/shutdown_config.go; DO NOT EDIT MANUALLY -->
- `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 tells Packer to just forcefully shut down the
machine. This setting can be safely omitted if for example, a shutdown
command to gracefully halt the machine is configured inside a
provisioning script. If one or more scripts require a reboot it is
suggested to leave this blank (since reboots may fail) and instead
specify the final shutdown command in your last script.
- `shutdown_timeout` (string) - The amount of time to wait after executing
the shutdown_command for the virtual machine to actually shut down.
If the machine doesn't shut down in this time it is considered an
error. By default, the time out is "5m" (five minutes).

View File

@ -0,0 +1,128 @@
<!-- Code generated from the comments of the Config struct in builder/hyperv/iso/builder.go; DO NOT EDIT MANUALLY -->
- `disk_size` (uint) - The size, in megabytes, of the hard disk to create
for the VM. By default, this is 40 GB.
- `disk_block_size` (uint) - The block size of the VHD to be created.
Recommended disk block size for Linux hyper-v guests is 1 MiB. This
defaults to "32 MiB".
- `memory` (uint) - The amount, in megabytes, of RAM to assign to the
VM. By default, this is 1 GB.
- `secondary_iso_images` ([]string) - A list of ISO paths to
attach to a VM when it is booted. This is most useful for unattended
Windows installs, which look for an Autounattend.xml file on removable
media. By default, no secondary ISO will be attached.
- `guest_additions_mode` (string) - If set to attach then attach and
mount the ISO image specified in guest_additions_path. If set to
none then guest additions are not attached and mounted; This is the
default.
- `guest_additions_path` (string) - The path to the ISO image for guest
additions.
- `vm_name` (string) - This is the name of the new virtual machine,
without the file extension. By default this is "packer-BUILDNAME",
where "BUILDNAME" is the name of the build.
- `switch_name` (string) - The name of the switch to connect the virtual
machine to. By default, leaving this value unset will cause Packer to
try and determine the switch to use by looking for an external switch
that is up and running.
- `switch_vlan_id` (string) - This is the VLAN of the virtual switch's
network card. By default none is set. If none is set then a VLAN is not
set on the switch's network card. If this value is set it should match
the VLAN specified in by vlan_id.
- `mac_address` (string) - This allows a specific MAC address to be used on
the default virtual network card. The MAC address must be a string with
no delimiters, for example "0000deadbeef".
- `vlan_id` (string) - This is the VLAN of the virtual machine's network
card for the new virtual machine. By default none is set. If none is set
then VLANs are not set on the virtual machine's network card.
- `cpus` (uint) - The number of CPUs the virtual machine should use. If
this isn't specified, the default is 1 CPU.
- `generation` (uint) - The Hyper-V generation for the virtual machine. By
default, this is 1. Generation 2 Hyper-V virtual machines do not support
floppy drives. In this scenario use secondary_iso_images instead. Hard
drives and DVD drives will also be SCSI and not IDE.
- `enable_mac_spoofing` (bool) - If true enable MAC address spoofing
for the virtual machine. This defaults to false.
- `use_legacy_network_adapter` (bool) - If true use a legacy network adapter as the NIC.
This defaults to false. A legacy network adapter is fully emulated NIC, and is thus
supported by various exotic operating systems, but this emulation requires
additional overhead and should only be used if absolutely necessary.
- `enable_dynamic_memory` (bool) - If true enable dynamic memory for
the virtual machine. This defaults to false.
- `enable_secure_boot` (bool) - If true enable secure boot for the
virtual machine. This defaults to false. See secure_boot_template
below for additional settings.
- `secure_boot_template` (string) - The secure boot template to be
configured. Valid values are "MicrosoftWindows" (Windows) or
"MicrosoftUEFICertificateAuthority" (Linux). This only takes effect if
enable_secure_boot is set to "true". This defaults to "MicrosoftWindows".
- `enable_virtualization_extensions` (bool) - If true enable
virtualization extensions for the virtual machine. This defaults to
false. For nested virtualization you need to enable MAC spoofing,
disable dynamic memory and have at least 4GB of RAM assigned to the
virtual machine.
- `temp_path` (string) - The location under which Packer will create a
directory to house all the VM files and folders during the build.
By default %TEMP% is used which, for most systems, will evaluate to
%USERPROFILE%/AppData/Local/Temp.
- `configuration_version` (string) - This allows you to set the vm version when
calling New-VM to generate the vm.
- `keep_registered` (bool) - If "true", Packer will not delete the VM from
The Hyper-V manager.
- `communicator` (string) - Communicator
- `disk_additional_size` ([]uint) - The size or sizes of any
additional hard disks for the VM in megabytes. If this is not specified
then the VM will only contain a primary hard disk. Additional drives
will be attached to the SCSI interface only. The builder uses
expandable rather than fixed-size virtual hard disks, so the actual
file representing the disk will not use the full size unless it is
full.
- `skip_compaction` (bool) - If true skip compacting the hard disk for
the virtual machine when exporting. This defaults to false.
- `skip_export` (bool) - If true Packer will skip the export of the VM.
If you are interested only in the VHD/VHDX files, you can enable this
option. The resulting VHD/VHDX file will be output to
<output_directory>/Virtual Hard Disks. By default this option is false
and Packer will export the VM to output_directory.
- `differencing_disk` (bool) - If true enables differencing disks. Only
the changes will be written to the new disk. This is especially useful if
your source is a VHD/VHDX. This defaults to false.
- `use_fixed_vhd_format` (bool) - If true, creates the boot disk on the
virtual machine as a fixed VHD format disk. The default is false, which
creates a dynamic VHDX format disk. This option requires setting
generation to 1, skip_compaction to true, and
differencing_disk to false. Additionally, any value entered for
disk_block_size will be ignored. The most likely use case for this
option is outputing a disk that is in the format required for upload to
Azure.
- `headless` (bool) - Packer defaults to building Hyper-V virtual
machines by launching a GUI that shows the console of the machine being
built. When this value is set to true, the machine will start without a
console.

View File

@ -0,0 +1,117 @@
<!-- Code generated from the comments of the Config struct in builder/hyperv/vmcx/builder.go; DO NOT EDIT MANUALLY -->
- `memory` (uint) - The amount, in megabytes, of RAM to assign to the
VM. By default, this is 1 GB.
- `secondary_iso_images` ([]string) - A list of ISO paths to
attach to a VM when it is booted. This is most useful for unattended
Windows installs, which look for an Autounattend.xml file on removable
media. By default, no secondary ISO will be attached.
- `guest_additions_mode` (string) - If set to attach then attach and
mount the ISO image specified in guest_additions_path. If set to
none then guest additions are not attached and mounted; This is the
default.
- `guest_additions_path` (string) - The path to the ISO image for guest
additions.
- `clone_from_vmcx_path` (string) - This is the path to a directory containing an exported virtual machine.
- `clone_from_vm_name` (string) - This is the name of the virtual machine to clone from.
- `clone_from_snapshot_name` (string) - The name of a snapshot in the
source machine to use as a starting point for the clone. If the value
given is an empty string, the last snapshot present in the source will
be chosen as the starting point for the new VM.
- `clone_all_snapshots` (bool) - If set to true all snapshots
present in the source machine will be copied when the machine is
cloned. The final result of the build will be an exported virtual
machine that contains all the snapshots of the parent.
- `vm_name` (string) - This is the name of the new virtual machine,
without the file extension. By default this is "packer-BUILDNAME",
where "BUILDNAME" is the name of the build.
- `differencing_disk` (bool) - If true enables differencing disks. Only
the changes will be written to the new disk. This is especially useful if
your source is a VHD/VHDX. This defaults to false.
- `switch_name` (string) - The name of the switch to connect the virtual
machine to. By default, leaving this value unset will cause Packer to
try and determine the switch to use by looking for an external switch
that is up and running.
- `copy_in_compare` (bool) - When cloning a vm to build from, we run a powershell
Compare-VM command, which, depending on your version of Windows, may need
the "Copy" flag to be set to true or false. Defaults to "false". Command:
- `switch_vlan_id` (string) - This is the VLAN of the virtual switch's
network card. By default none is set. If none is set then a VLAN is not
set on the switch's network card. If this value is set it should match
the VLAN specified in by vlan_id.
- `mac_address` (string) - This allows a specific MAC address to be used on
the default virtual network card. The MAC address must be a string with
no delimiters, for example "0000deadbeef".
- `vlan_id` (string) - This is the VLAN of the virtual machine's network
card for the new virtual machine. By default none is set. If none is set
then VLANs are not set on the virtual machine's network card.
- `cpus` (uint) - The number of CPUs the virtual machine should use. If
this isn't specified, the default is 1 CPU.
- `generation` (uint) - The Hyper-V generation for the virtual machine. By
default, this is 1. Generation 2 Hyper-V virtual machines do not support
floppy drives. In this scenario use secondary_iso_images instead. Hard
drives and DVD drives will also be SCSI and not IDE.
- `enable_mac_spoofing` (bool) - If true enable MAC address spoofing
for the virtual machine. This defaults to false.
- `enable_dynamic_memory` (bool) - If true enable dynamic memory for
the virtual machine. This defaults to false.
- `enable_secure_boot` (bool) - If true enable secure boot for the
virtual machine. This defaults to false. See secure_boot_template
below for additional settings.
- `secure_boot_template` (string) - The secure boot template to be
configured. Valid values are "MicrosoftWindows" (Windows) or
"MicrosoftUEFICertificateAuthority" (Linux). This only takes effect if
enable_secure_boot is set to "true". This defaults to "MicrosoftWindows".
- `enable_virtualization_extensions` (bool) - If true enable
virtualization extensions for the virtual machine. This defaults to
false. For nested virtualization you need to enable MAC spoofing,
disable dynamic memory and have at least 4GB of RAM assigned to the
virtual machine.
- `temp_path` (string) - The location under which Packer will create a
directory to house all the VM files and folders during the build.
By default %TEMP% is used which, for most systems, will evaluate to
%USERPROFILE%/AppData/Local/Temp.
- `configuration_version` (string) - This allows you to set the vm version when
calling New-VM to generate the vm.
- `keep_registered` (bool) - If "true", Packer will not delete the VM from
The Hyper-V manager.
- `communicator` (string) - Communicator
- `skip_compaction` (bool) - If true skip compacting the hard disk for
the virtual machine when exporting. This defaults to false.
- `skip_export` (bool) - If true Packer will skip the export of the VM.
If you are interested only in the VHD/VHDX files, you can enable this
option. The resulting VHD/VHDX file will be output to
<output_directory>/Virtual Hard Disks. By default this option is false
and Packer will export the VM to output_directory.
- `headless` (bool) - Packer defaults to building Hyper-V virtual
machines by launching a GUI that shows the console of the machine being
built. When this value is set to true, the machine will start without a
console.

View File

@ -0,0 +1,41 @@
<!-- Code generated from the comments of the Config struct in builder/lxc/config.go; DO NOT EDIT MANUALLY -->
- `output_directory` (string) - The directory in which to save the exported
tar.gz. Defaults to output-<BuildName> in the current directory.
- `container_name` (string) - The name of the LXC container. Usually stored
in /var/lib/lxc/containers/<container_name>. Defaults to
packer-<BuildName>.
- `command_wrapper` (string) - Allows you to specify a wrapper command, such
as ssh so you can execute packer builds on a remote host. Defaults to
Empty.
- `init_timeout` (string) - The timeout in seconds to wait for the the
container to start. Defaults to 20 seconds.
- `create_options` ([]string) - Options to pass to lxc-create. For
instance, you can specify a custom LXC container configuration file with
["-f", "/path/to/lxc.conf"]. Defaults to []. See man 1 lxc-create for
available options.
- `start_options` ([]string) - Options to pass to lxc-start. For
instance, you can override parameters from the LXC container configuration
file via ["--define", "KEY=VALUE"]. Defaults to []. See
man 1 lxc-start for available options.
- `attach_options` ([]string) - Options to pass to lxc-attach. For
instance, you can prevent the container from inheriting the host machine's
environment by specifying ["--clear-env"]. Defaults to []. See
man 1 lxc-attach for available options.
- `template_parameters` ([]string) - Options to pass to the given
lxc-template command, usually located in
/usr/share/lxc/templates/lxc-<template_name>. Note: This gets passed as
ARGV to the template command. Ensure you have an array of strings, as a
single string with spaces probably won't work. Defaults to [].
- `target_runlevel` (int) - The minimum run level to wait for the
container to reach. Note some distributions (Ubuntu) simulate run levels
and may report 5 rather than 3.

View File

@ -0,0 +1,9 @@
<!-- Code generated from the comments of the Config struct in builder/lxc/config.go; DO NOT EDIT MANUALLY -->
- `config_file` (string) - The path to the lxc configuration file.
- `template_name` (string) - The LXC template name to use.
- `template_environment_vars` ([]string) - Environmental variables to
use to build the template with.

View File

@ -0,0 +1,22 @@
<!-- Code generated from the comments of the Config struct in builder/lxd/config.go; DO NOT EDIT MANUALLY -->
- `output_image` (string) - The name of the output artifact. Defaults to
name.
- `container_name` (string) - Container Name
- `command_wrapper` (string) - Lets you prefix all builder commands, such as
with ssh for a remote build host. Defaults to "".
- `profile` (string) - Profile
- `init_sleep` (string) - The number of seconds to sleep between launching
the LXD instance and provisioning it; defaults to 3 seconds.
- `publish_properties` (map[string]string) - Pass key values to the publish
step to be set as properties on the output image. This is most helpful to
set the description, but can be used to set anything needed. See
https://stgraber.org/2016/03/30/lxd-2-0-image-management-512/
for more properties.
- `launch_config` (map[string]string) - List of key/value pairs you wish to
pass to lxc launch via --config. Defaults to empty.

View File

@ -0,0 +1,6 @@
<!-- Code generated from the comments of the Config struct in builder/lxd/config.go; DO NOT EDIT MANUALLY -->
- `image` (string) - The source image to use when creating the build
container. This can be a (local or remote) image (name or fingerprint).
E.G. my-base-image, ubuntu-daily:x, 08fababf6f27, ...

View File

@ -0,0 +1,32 @@
<!-- Code generated from the comments of the Config struct in builder/ncloud/config.go; DO NOT EDIT MANUALLY -->
- `access_key` (string) - Access Key
- `secret_key` (string) - Secret Key
- `member_server_image_no` (string) - Previous image code. If there is an
image previously created, it can be used to create a new image.
(server_image_product_code is required if not specified)
- `server_image_name` (string) - Name of an image to create.
- `server_image_description` (string) - Description of an image to create.
- `user_data` (string) - User data to apply when launching the instance. Note
that you need to be careful about escaping characters due to the templates
being JSON. It is often more convenient to use user_data_file, instead.
Packer will not automatically wait for a user script to finish before
shutting down the instance this must be handled in a provisioner.
- `user_data_file` (string) - Path to a file that will be used for the user
data when launching the instance.
- `block_storage_size` (int) - You can add block storage ranging from 10
GB to 2000 GB, in increments of 10 GB.
- `region` (string) - Name of the region where you want to create an image.
(default: Korea)
- `access_control_group_configuration_no` (string) - This is used to allow
winrm access when you create a Windows server. An ACG that specifies an
access source (0.0.0.0/0) and allowed port (5985) must be created in
advance.

View File

@ -0,0 +1,7 @@
<!-- Code generated from the comments of the Config struct in builder/ncloud/config.go; DO NOT EDIT MANUALLY -->
- `server_image_product_code` (string) - Product code of an image to create.
(member_server_image_no is required if not specified)
- `server_product_code` (string) - Product (spec) code to create.

View File

@ -0,0 +1,57 @@
<!-- Code generated from the comments of the AccessConfig struct in builder/openstack/access_config.go; DO NOT EDIT MANUALLY -->
- `user_id` (string) - User ID
- `tenant_id` (string) - The tenant ID or name to boot the
instance into. Some OpenStack installations require this. If not specified,
Packer will use the environment variable OS_TENANT_NAME or
OS_TENANT_ID, if set. Tenant is also called Project in later versions of
OpenStack.
- `tenant_name` (string) - Tenant Name
- `domain_id` (string) - Domain ID
- `domain_name` (string) - The Domain name or ID you are
authenticating with. OpenStack installations require this if identity v3 is
used. Packer will use the environment variable OS_DOMAIN_NAME or
OS_DOMAIN_ID, if set.
- `insecure` (bool) - Whether or not the connection to OpenStack can be
done over an insecure connection. By default this is false.
- `region` (string) - The name of the region, such as "DFW", in which to
launch the server to create the image. If not specified, Packer will use
the environment variable OS_REGION_NAME, if set.
- `endpoint_type` (string) - The endpoint type to use. Can be any of
"internal", "internalURL", "admin", "adminURL", "public", and "publicURL".
By default this is "public".
- `cacert` (string) - Custom CA certificate file path. If omitted the
OS_CACERT environment variable can be used.
- `cert` (string) - Client certificate file path for SSL client
authentication. If omitted the OS_CERT environment variable can be used.
- `key` (string) - Client private key file path for SSL client
authentication. If omitted the OS_KEY environment variable can be used.
- `token` (string) - the token (id) to use with token based authorization.
Packer will use the environment variable OS_TOKEN, if set.
- `application_credential_name` (string) - The application credential name to
use with application credential based authorization. Packer will use the
environment variable OS_APPLICATION_CREDENTIAL_NAME, if set.
- `application_credential_id` (string) - The application credential id to
use with application credential based authorization. Packer will use the
environment variable OS_APPLICATION_CREDENTIAL_ID, if set.
- `application_credential_secret` (string) - The application credential secret
to use with application credential based authorization. Packer will use the
environment variable OS_APPLICATION_CREDENTIAL_SECRET, if set.
- `cloud` (string) - An entry in a clouds.yaml file. See the OpenStack
os-client-config
documentation
for more information about clouds.yaml files. If omitted, the OS_CLOUD
environment variable is used.

View File

@ -0,0 +1,17 @@
<!-- Code generated from the comments of the AccessConfig struct in builder/openstack/access_config.go; DO NOT EDIT MANUALLY -->
- `username` (string) - The username or id used to connect to
the OpenStack service. If not specified, Packer will use the environment
variable OS_USERNAME or OS_USERID, if set. This is not required if
using access token or application credential instead of password, or if using
cloud.yaml.
- `password` (string) - The password used to connect to the OpenStack
service. If not specified, Packer will use the environment variables
OS_PASSWORD, if set. This is not required if using access token or
application credential instead of password, or if using cloud.yaml.
- `identity_endpoint` (string) - The URL to the OpenStack Identity service.
If not specified, Packer will use the environment variables OS_AUTH_URL,
if set. This is not required if using cloud.yaml.

View File

@ -0,0 +1,18 @@
<!-- Code generated from the comments of the ImageConfig struct in builder/openstack/image_config.go; DO NOT EDIT MANUALLY -->
- `metadata` (map[string]string) - Glance metadata that will be
applied to the image.
- `image_visibility` (imageservice.ImageVisibility) - One of "public", "private", "shared", or
"community".
- `image_members` ([]string) - List of members to add to the image
after creation. An image member is usually a project (also called the
"tenant") with whom the image is shared.
- `image_disk_format` (string) - Disk format of the resulting image. This
option works if use_blockstorage_volume is true.
- `image_tags` ([]string) - List of tags to add to the image after
creation.

View File

@ -0,0 +1,4 @@
<!-- Code generated from the comments of the ImageConfig struct in builder/openstack/image_config.go; DO NOT EDIT MANUALLY -->
- `image_name` (string) - The name of the resulting image.

View File

@ -0,0 +1,11 @@
<!-- Code generated from the comments of the ImageFilter struct in builder/openstack/run_config.go; DO NOT EDIT MANUALLY -->
- `filters` (ImageFilterOptions) - filters used to select a source_image.
NOTE: This will fail unless exactly one image is returned, or
most_recent is set to true. Of the filters described in
ImageService, the
following are valid:
- `most_recent` (bool) - Selects the newest created image when true.
This is most useful for selecting a daily distro build.

View File

@ -0,0 +1,7 @@
<!-- Code generated from the comments of the ImageFilterOptions struct in builder/openstack/run_config.go; DO NOT EDIT MANUALLY -->
- `name` (string) - Name
- `owner` (string) - Owner
- `tags` ([]string) - Tags
- `visibility` (string) - Visibility
- `properties` (map[string]string) - Properties

View File

@ -0,0 +1,85 @@
<!-- Code generated from the comments of the RunConfig struct in builder/openstack/run_config.go; DO NOT EDIT MANUALLY -->
- `availability_zone` (string) - The availability zone to launch the server
in. If this isn't specified, the default enforced by your OpenStack cluster
will be used. This may be required for some OpenStack clusters.
- `rackconnect_wait` (bool) - For rackspace, whether or not to wait for
Rackconnect to assign the machine an IP address before connecting via SSH.
Defaults to false.
- `floating_ip_network` (string) - The ID or name of an external network that
can be used for creation of a new floating IP.
- `floating_ip` (string) - A specific floating IP to assign to this instance.
- `reuse_ips` (bool) - Whether or not to attempt to reuse existing
unassigned floating ips in the project before allocating a new one. Note
that it is not possible to safely do this concurrently, so if you are
running multiple openstack builds concurrently, or if other processes are
assigning and using floating IPs in the same openstack project while packer
is running, you should not set this to true. Defaults to false.
- `security_groups` ([]string) - A list of security groups by name to
add to this instance.
- `networks` ([]string) - A list of networks by UUID to attach to
this instance.
- `ports` ([]string) - A list of ports by UUID to attach to this
instance.
- `user_data` (string) - User data to apply when launching the instance. Note
that you need to be careful about escaping characters due to the templates
being JSON. It is often more convenient to use user_data_file, instead.
Packer will not automatically wait for a user script to finish before
shutting down the instance this must be handled in a provisioner.
- `user_data_file` (string) - Path to a file that will be used for the user
data when launching the instance.
- `instance_name` (string) - Name that is applied to the server instance
created by Packer. If this isn't specified, the default is same as
image_name.
- `instance_metadata` (map[string]string) - Metadata that is
applied to the server instance created by Packer. Also called server
properties in some documentation. The strings have a max size of 255 bytes
each.
- `force_delete` (bool) - Whether to force the OpenStack instance to be
forcefully deleted. This is useful for environments that have
reclaim / soft deletion enabled. By default this is false.
- `config_drive` (bool) - Whether or not nova should use ConfigDrive for
cloud-init metadata.
- `floating_ip_pool` (string) - Deprecated use floating_ip_network
instead.
- `use_blockstorage_volume` (bool) - Use Block Storage service volume for
the instance root volume instead of Compute service local volume (default).
- `volume_name` (string) - Name of the Block Storage service volume. If this
isn't specified, random string will be used.
- `volume_type` (string) - Type of the Block Storage service volume. If this
isn't specified, the default enforced by your OpenStack cluster will be
used.
- `volume_size` (int) - Size of the Block Storage service volume in GB. If
this isn't specified, it is set to source image min disk value (if set) or
calculated from the source image bytes size. Note that in some cases this
needs to be specified, if use_blockstorage_volume is true.
- `volume_availability_zone` (string) - Availability zone of the Block
Storage service volume. If omitted, Compute instance availability zone will
be used. If both of Compute instance and Block Storage volume availability
zones aren't specified, the default enforced by your OpenStack cluster will
be used.
- `openstack_provider` (string) - Not really used, but here for BC
- `use_floating_ip` (bool) - Deprecated use floating_ip or
floating_ip_pool instead.

View File

@ -0,0 +1,19 @@
<!-- Code generated from the comments of the RunConfig struct in builder/openstack/run_config.go; DO NOT EDIT MANUALLY -->
- `source_image` (string) - The ID or full URL to the base image to use. This
is the image that will be used to launch a new server and provision it.
Unless you specify completely custom SSH settings, the source image must
have cloud-init installed so that the keypair gets assigned properly.
- `source_image_name` (string) - The name of the base image to use. This is
an alternative way of providing source_image and only either of them can
be specified.
- `source_image_filter` (ImageFilter) - The search filters for determining the base
image to use. This is an alternative way of providing source_image and
only one of these methods can be used. source_image will override the
filters.
- `flavor` (string) - The ID, name, or full URL for the desired flavor for
the server to be created.

View File

@ -0,0 +1,14 @@
<!-- Code generated from the comments of the HWConfig struct in builder/parallels/common/hw_config.go; DO NOT EDIT MANUALLY -->
- `cpus` (int) - The number of cpus to use for building the VM.
Defaults to 1.
- `memory` (int) - The amount of memory to use for building the VM in
megabytes. Defaults to 512 megabytes.
- `sound` (bool) - Specifies whether to enable the sound device when
building the VM. Defaults to false.
- `usb` (bool) - Specifies whether to enable the USB bus when building
the VM. Defaults to false.

View File

@ -0,0 +1,9 @@
<!-- Code generated from the comments of the OutputConfig struct in builder/parallels/common/output_config.go; DO NOT EDIT MANUALLY -->
- `output_directory` (string) - This is the path to the directory where the
resulting virtual machine will be created. This may be relative or absolute.
If relative, the path is relative to the working directory when packer
is executed. This directory must not exist or be empty prior to running
the builder. By default this is "output-BUILDNAME" where "BUILDNAME" is the
name of the build.

View File

@ -0,0 +1,13 @@
<!-- Code generated from the comments of the PrlctlConfig struct in builder/parallels/common/prlctl_config.go; DO NOT EDIT MANUALLY -->
- `prlctl` ([][]string) - Custom prlctl commands to execute
in order to further customize the virtual machine being created. The value
of this is an array of commands to execute. The commands are executed in the
order defined in the template. For each command, the command is defined
itself as an array of strings, where each string represents a single
argument on the command-line to prlctl (but excluding prlctl itself).
Each arg is treated as a configuration
template, where the Name
variable is replaced with the VM name. More details on how to use prlctl
are below.

View File

@ -0,0 +1,6 @@
<!-- Code generated from the comments of the PrlctlPostConfig struct in builder/parallels/common/prlctl_post_config.go; DO NOT EDIT MANUALLY -->
- `prlctl_post` ([][]string) - Identical to prlctl, except
that it is run after the virtual machine is shutdown, and before the virtual
machine is exported.

View File

@ -0,0 +1,8 @@
<!-- Code generated from the comments of the PrlctlVersionConfig struct in builder/parallels/common/prlctl_version_config.go; DO NOT EDIT MANUALLY -->
- `prlctl_version_file` (string) - The path within the virtual machine to
upload a file that contains the prlctl version that was used to create
the machine. This information can be useful for provisioning. By default
this is ".prlctl_version", which will generally upload it into the
home directory.

View File

@ -0,0 +1,11 @@
<!-- Code generated from the comments of the ShutdownConfig struct in builder/parallels/common/shutdown_config.go; DO NOT EDIT MANUALLY -->
- `shutdown_command` (string) - The command to use to gracefully shut down the
machine once all the provisioning is done. By default this is an empty
string, which tells Packer to just forcefully shut down the machine.
- `shutdown_timeout` (string) - The amount of time to wait after executing the
shutdown_command for the virtual machine to actually shut down. If it
doesn't shut down in this time, it is an error. By default, the timeout is
"5m", or five minutes.

View File

@ -0,0 +1,17 @@
<!-- Code generated from the comments of the ToolsConfig struct in builder/parallels/common/tools_config.go; DO NOT EDIT MANUALLY -->
- `parallels_tools_guest_path` (string) - The path in the virtual machine to
upload Parallels Tools. This only takes effect if parallels_tools_mode
is "upload". This is a configuration
template that has a single
valid variable: Flavor, which will be the value of
parallels_tools_flavor. By default this is "prl-tools-{{.Flavor}}.iso"
which should upload into the login directory of the user.
- `parallels_tools_mode` (string) - The method by which Parallels Tools are
made available to the guest for installation. Valid options are "upload",
"attach", or "disable". If the mode is "attach" the Parallels Tools ISO will
be attached as a CD device to the virtual machine. If the mode is "upload"
the Parallels Tools ISO will be uploaded to the path specified by
parallels_tools_guest_path. The default value is "upload".

View File

@ -0,0 +1,7 @@
<!-- Code generated from the comments of the ToolsConfig struct in builder/parallels/common/tools_config.go; DO NOT EDIT MANUALLY -->
- `parallels_tools_flavor` (string) - The flavor of the Parallels Tools ISO to
install into the VM. Valid values are "win", "lin", "mac", "os2"
and "other". This can be omitted only if parallels_tools_mode
is "disable".

View File

@ -0,0 +1,40 @@
<!-- Code generated from the comments of the Config struct in builder/parallels/iso/builder.go; DO NOT EDIT MANUALLY -->
- `disk_size` (uint) - The size, in megabytes, of the hard disk to create
for the VM. By default, this is 40000 (about 40 GB).
- `disk_type` (string) - The type for image file based virtual disk drives,
defaults to expand. Valid options are expand (expanding disk) that the
image file is small initially and grows in size as you add data to it, and
plain (plain disk) that the image file has a fixed size from the moment it
is created (i.e the space is allocated for the full drive). Plain disks
perform faster than expanding disks. skip_compaction will be set to true
automatically for plain disks.
- `guest_os_type` (string) - The guest OS type being installed. By default
this is "other", but you can get dramatic performance improvements by
setting this to the proper value. To view all available values for this run
prlctl create x --distribution list. Setting the correct value hints to
Parallels Desktop how to optimize the virtual hardware to work best with
that operating system.
- `hard_drive_interface` (string) - The type of controller that the hard
drives are attached to, defaults to "sata". Valid options are "sata", "ide",
and "scsi".
- `host_interfaces` ([]string) - A list of which interfaces on the
host should be searched for a IP address. The first IP address found on one
of these will be used as {{ .HTTPIP }} in the boot_command. Defaults to
["en0", "en1", "en2", "en3", "en4", "en5", "en6", "en7", "en8", "en9",
"ppp0", "ppp1", "ppp2"].
- `skip_compaction` (bool) - Virtual disk image is compacted at the end of
the build process using prl_disk_tool utility (except for the case that
disk_type is set to plain). In certain rare cases, this might corrupt
the resulting disk image. If you find this to be the case, you can disable
compaction using this configuration value.
- `vm_name` (string) - This is the name of the PVM directory for the new
virtual machine, without the file extension. By default this is
"packer-BUILDNAME", where "BUILDNAME" is the name of the build.

View File

@ -0,0 +1,16 @@
<!-- Code generated from the comments of the Config struct in builder/parallels/pvm/config.go; DO NOT EDIT MANUALLY -->
- `skip_compaction` (bool) - Virtual disk image is compacted at the end of
the build process using prl_disk_tool utility (except for the case that
disk_type is set to plain). In certain rare cases, this might corrupt
the resulting disk image. If you find this to be the case, you can disable
compaction using this configuration value.
- `vm_name` (string) - This is the name of the PVM directory for the new
virtual machine, without the file extension. By default this is
"packer-BUILDNAME", where "BUILDNAME" is the name of the build.
- `reassign_mac` (bool) - If this is "false" the MAC address of the first
NIC will reused when imported else a new MAC address will be generated
by Parallels. Defaults to "false".

View File

@ -0,0 +1,5 @@
<!-- Code generated from the comments of the Config struct in builder/parallels/pvm/config.go; DO NOT EDIT MANUALLY -->
- `source_path` (string) - The path to a PVM directory that acts as the source
of this build.

View File

@ -0,0 +1,140 @@
<!-- Code generated from the comments of the Config struct in builder/qemu/builder.go; DO NOT EDIT MANUALLY -->
- `iso_skip_cache` (bool) - Use iso from provided url. Qemu must support
curl block device. This defaults to false.
- `accelerator` (string) - The accelerator type to use when running the VM.
This may be none, kvm, tcg, hax, hvf, whpx, or xen. The appropriate
software must have already been installed on your build machine to use the
accelerator you specified. When no accelerator is specified, Packer will try
to use kvm if it is available but will default to tcg otherwise.
- `cpus` (int) - The number of cpus to use when building the VM.
The default is 1 CPU.
- `disk_interface` (string) - The interface to use for the disk. Allowed
values include any of ide, scsi, virtio or virtio-scsi*. Note
also that any boot commands or kickstart type scripts must have proper
adjustments for resulting device names. The Qemu builder uses virtio by
default.
- `disk_size` (uint) - The size, in megabytes, of the hard disk to create
for the VM. By default, this is 40960 (40 GB).
- `disk_cache` (string) - The cache mode to use for disk. Allowed values
include any of writethrough, writeback, none, unsafe
or directsync. By default, this is set to writeback.
- `disk_discard` (string) - The discard mode to use for disk. Allowed values
include any of unmap or ignore. By default, this is set to ignore.
- `disk_detect_zeroes` (string) - The detect-zeroes mode to use for disk.
Allowed values include any of unmap, on or off. Defaults to off.
When the value is "off" we don't set the flag in the qemu command, so that
Packer still works with old versions of QEMU that don't have this option.
- `skip_compaction` (bool) - Packer compacts the QCOW2 image using
qemu-img convert. Set this option to true to disable compacting.
Defaults to false.
- `disk_compression` (bool) - Apply compression to the QCOW2 disk file
using qemu-img convert. Defaults to false.
- `format` (string) - Either qcow2 or raw, this specifies the output
format of the virtual machine image. This defaults to qcow2.
- `headless` (bool) - Packer defaults to building QEMU virtual machines by
launching a GUI that shows the console of the machine being built. When this
value is set to true, the machine will start without a console.
- `disk_image` (bool) - Packer defaults to building from an ISO file, this
parameter controls whether the ISO URL supplied is actually a bootable
QEMU image. When this value is set to true, the machine will either clone
the source or use it as a backing file (if use_backing_file is true);
then, it will resize the image according to disk_size and boot it.
- `use_backing_file` (bool) - Only applicable when disk_image is true
and format is qcow2, set this option to true to create a new QCOW2
file that uses the file located at iso_url as a backing file. The new file
will only contain blocks that have changed compared to the backing file, so
enabling this option can significantly reduce disk usage.
- `machine_type` (string) - The type of machine emulation to use. Run your
qemu binary with the flags -machine help to list available types for
your system. This defaults to pc.
- `memory` (int) - The amount of memory to use when building the VM
in megabytes. This defaults to 512 megabytes.
- `net_device` (string) - The driver to use for the network interface. Allowed
values ne2k_pci, i82551, i82557b, i82559er, rtl8139, e1000,
pcnet, virtio, virtio-net, virtio-net-pci, usb-net, i82559a,
i82559b, i82559c, i82550, i82562, i82557a, i82557c, i82801,
vmxnet3, i82558a or i82558b. The Qemu builder uses virtio-net by
default.
- `output_directory` (string) - This is the path to the directory where the
resulting virtual machine will be created. This may be relative or absolute.
If relative, the path is relative to the working directory when packer
is executed. This directory must not exist or be empty prior to running
the builder. By default this is output-BUILDNAME where "BUILDNAME" is the
name of the build.
- `qemuargs` ([][]string) - Allows complete control over the
qemu command line (though not, at this time, qemu-img). Each array of
strings makes up a command line switch that overrides matching default
switch/value pairs. Any value specified as an empty string is ignored. All
values after the switch are concatenated with no separator.
- `qemu_binary` (string) - The name of the Qemu binary to look for. This
defaults to qemu-system-x86_64, but may need to be changed for
some platforms. For example qemu-kvm, or qemu-system-i386 may be a
better choice for some systems.
- `shutdown_command` (string) - The command to use to gracefully shut down the
machine once all the provisioning is done. By default this is an empty
string, which tells Packer to just forcefully shut down the machine unless a
shutdown command takes place inside script so this may safely be omitted. It
is important to add a shutdown_command. By default Packer halts the virtual
machine and the file system may not be sync'd. Thus, changes made in a
provisioner might not be saved. If one or more scripts require a reboot it is
suggested to leave this blank since reboots may fail and specify the final
shutdown command in your last script.
- `ssh_host_port_min` (int) - The minimum and
maximum port to use for the SSH port on the host machine which is forwarded
to the SSH port on the guest machine. Because Packer often runs in parallel,
Packer will choose a randomly available port in this range to use as the
host port. By default this is 2222 to 4444.
- `ssh_host_port_max` (int) - SSH Host Port Max
- `use_default_display` (bool) - If true, do not pass a -display option
to qemu, allowing it to choose the default. This may be needed when running
under macOS, and getting errors about sdl not being available.
- `vnc_bind_address` (string) - The IP address that should be
binded to for VNC. By default packer will use 127.0.0.1 for this. If you
wish to bind to all interfaces use 0.0.0.0.
- `vnc_port_min` (int) - The minimum and maximum port
to use for VNC access to the virtual machine. The builder uses VNC to type
the initial boot_command. Because Packer generally runs in parallel,
Packer uses a randomly chosen port in this range that appears available. By
default this is 5900 to 6000. The minimum and maximum ports are inclusive.
- `vnc_port_max` (int) - VNC Port Max
- `vm_name` (string) - This is the name of the image (QCOW2 or IMG) file for
the new virtual machine. By default this is packer-BUILDNAME, where
"BUILDNAME" is the name of the build. Currently, no file extension will be
used unless it is specified in this option.
- `ssh_wait_timeout` (time.Duration) - These are deprecated, but we keep them around for BC
TODO(@mitchellh): remove
- `run_once` (bool) - TODO(mitchellh): deprecate
- `shutdown_timeout` (string) - The amount of time to wait after executing the
shutdown_command for the virtual machine to actually shut down. If it
doesn't shut down in this time, it is an error. By default, the timeout is
5m or five minutes.

View File

@ -0,0 +1,17 @@
<!-- Code generated from the comments of the Config struct in builder/scaleway/config.go; DO NOT EDIT MANUALLY -->
- `snapshot_name` (string) - The name of the resulting snapshot that will
appear in your account. Default packer-TIMESTAMP
- `image_name` (string) - The name of the resulting image that will appear in
your account. Default packer-TIMESTAMP
- `server_name` (string) - The name assigned to the server. Default
packer-UUID
- `bootscript` (string) - The id of an existing bootscript to use when
booting the server.
- `boottype` (string) - The type of boot, can be either local or
bootscript, Default bootscript

View File

@ -0,0 +1,29 @@
<!-- Code generated from the comments of the Config struct in builder/scaleway/config.go; DO NOT EDIT MANUALLY -->
- `api_token` (string) - The token to use to authenticate with your account.
It can also be specified via environment variable SCALEWAY_API_TOKEN. You
can see and generate tokens in the "Credentials"
section of the control panel.
- `organization_id` (string) - The organization id to use to identify your
organization. It can also be specified via environment variable
SCALEWAY_ORGANIZATION. Your organization id is available in the
"Account" section of the
control panel.
Previously named: api_access_key with environment variable: SCALEWAY_API_ACCESS_KEY
- `region` (string) - The name of the region to launch the server in (par1
or ams1). Consequently, this is the region where the snapshot will be
available.
- `image` (string) - The UUID of the base image to use. This is the image
that will be used to launch a new server and provision it. See
the images list
get the complete list of the accepted image UUID.
- `commercial_type` (string) - The name of the server commercial type:
ARM64-128GB, ARM64-16GB, ARM64-2GB, ARM64-32GB, ARM64-4GB,
ARM64-64GB, ARM64-8GB, C1, C2L, C2M, C2S, START1-L,
START1-M, START1-S, START1-XS, X64-120GB, X64-15GB, X64-30GB,
X64-60GB

View File

@ -0,0 +1,4 @@
<!-- Code generated from the comments of the TencentCloudAccessConfig struct in builder/tencentcloud/cvm/access_config.go; DO NOT EDIT MANUALLY -->
- `skip_region_validation` (bool) - Do not check region and zone when validate.

View File

@ -0,0 +1,16 @@
<!-- Code generated from the comments of the TencentCloudAccessConfig struct in builder/tencentcloud/cvm/access_config.go; DO NOT EDIT MANUALLY -->
- `secret_id` (string) - Tencentcloud secret id. You should set it directly,
or set the TENCENTCLOUD_ACCESS_KEY environment variable.
- `secret_key` (string) - Tencentcloud secret key. You should set it directly,
or set the TENCENTCLOUD_SECRET_KEY environment variable.
- `region` (string) - The region where your cvm will be launch. You should
reference Region and Zone
for parameter taking.
- `zone` (string) - The zone where your cvm will be launch. You should
reference Region and Zone
for parameter taking.

View File

@ -0,0 +1,21 @@
<!-- Code generated from the comments of the TencentCloudImageConfig struct in builder/tencentcloud/cvm/image_config.go; DO NOT EDIT MANUALLY -->
- `image_description` (string) - Image description.
- `reboot` (bool) - Whether shutdown cvm to create Image. Default value is
false.
- `force_poweroff` (bool) - Whether to force power off cvm when create image.
Default value is false.
- `sysprep` (bool) - Whether enable Sysprep during creating windows image.
- `image_force_delete` (bool) - Image Force Delete
- `image_copy_regions` ([]string) - regions that will be copied to after
your image created.
- `image_share_accounts` ([]string) - accounts that will be shared to
after your image created.
- `skip_region_validation` (bool) - Do not check region and zone when validate.

View File

@ -0,0 +1,6 @@
<!-- Code generated from the comments of the TencentCloudImageConfig struct in builder/tencentcloud/cvm/image_config.go; DO NOT EDIT MANUALLY -->
- `image_name` (string) - The name you want to create your customize image,
it should be composed of no more than 20 characters, of letters, numbers
or minus sign.

View File

@ -0,0 +1,44 @@
<!-- Code generated from the comments of the TencentCloudRunConfig struct in builder/tencentcloud/cvm/run_config.go; DO NOT EDIT MANUALLY -->
- `associate_public_ip_address` (bool) - Whether allocate public ip to your cvm.
Default value is false.
- `instance_name` (string) - Instance name.
- `disk_type` (string) - Root disk type your cvm will be launched by. you could
reference Disk Type
for parameter taking.
- `disk_size` (int64) - Root disk size your cvm will be launched by. values range(in GB):
- `vpc_id` (string) - Specify vpc your cvm will be launched by.
- `vpc_name` (string) - Specify vpc name you will create. if vpc_id is not set, packer will
create a vpc for you named this parameter.
- `vpc_ip` (string) - Vpc Ip
- `subnet_id` (string) - Specify subnet your cvm will be launched by.
- `subnet_name` (string) - Specify subnet name you will create. if subnet_id is not set, packer will
create a subnet for you named this parameter.
- `cidr_block` (string) - Specify cider block of the vpc you will create if vpc_id not set
- `subnect_cidr_block` (string) - Specify cider block of the subnet you will create if
subnet_id not set
- `internet_charge_type` (string) - Internet Charge Type
- `internet_max_bandwidth_out` (int64) - Max bandwidth out your cvm will be launched by(in MB).
values can be set between 1 ~ 100.
- `security_group_id` (string) - Specify security group your cvm will be launched by.
- `security_group_name` (string) - Specify security name you will create if security_group_id not set.
- `user_data` (string) - userdata.
- `user_data_file` (string) - userdata file.
- `host_name` (string) - host name.
- `ssh_private_ip` (bool) - SSH Private Ip

View File

@ -0,0 +1,9 @@
<!-- Code generated from the comments of the TencentCloudRunConfig struct in builder/tencentcloud/cvm/run_config.go; DO NOT EDIT MANUALLY -->
- `source_image_id` (string) - The base image id of Image you want to create
your customized image from.
- `instance_type` (string) - The instance type your cvm will be launched by.
You should reference Instace Type
for parameter taking.

View File

@ -0,0 +1,20 @@
<!-- Code generated from the comments of the AccessConfig struct in builder/triton/access_config.go; DO NOT EDIT MANUALLY -->
- `triton_url` (string) - The URL of the Triton cloud API to use. If omitted
it will default to the us-sw-1 region of the Joyent Public cloud. If you
are using your own private Triton installation you will have to supply the
URL of the cloud API of your own Triton installation.
- `triton_user` (string) - The username of a user who has access to your
Triton account.
- `triton_key_material` (string) - Path to the file in which the private key
of triton_key_id is stored. For example /home/soandso/.ssh/id_rsa. If
this is not specified, the SSH agent is used to sign requests with the
triton_key_id specified.
- `insecure_skip_tls_verify` (bool) - secure_skip_tls_verify - (bool) This allows skipping TLS verification
of the Triton endpoint. It is useful when connecting to a temporary Triton
installation such as Cloud-On-A-Laptop which does not generally use a
certificate signed by a trusted root CA. The default is false.

View File

@ -0,0 +1,10 @@
<!-- Code generated from the comments of the AccessConfig struct in builder/triton/access_config.go; DO NOT EDIT MANUALLY -->
- `triton_account` (string) - The username of the Triton account to use when
using the Triton Cloud API.
- `triton_key_id` (string) - The fingerprint of the public key of the SSH key
pair to use for authentication with the Triton Cloud API. If
triton_key_material is not set, it is assumed that the SSH agent has the
private key corresponding to this key ID loaded.

View File

@ -0,0 +1,3 @@
<!-- Code generated from the comments of the MachineImageFilter struct in builder/triton/source_machine_config.go; DO NOT EDIT MANUALLY -->
- `most_recent` (bool) - Most Recent

View File

@ -0,0 +1,39 @@
<!-- Code generated from the comments of the SourceMachineConfig struct in builder/triton/source_machine_config.go; DO NOT EDIT MANUALLY -->
- `source_machine_name` (string) - Name of the VM used for building the
image. Does not affect (and does not have to be the same) as the name for a
VM instance running this image. Maximum 512 characters but should in
practice be much shorter (think between 5 and 20 characters). For example
mysql-64-server-image-builder. When omitted defaults to
packer-builder-[image_name].
- `source_machine_networks` ([]string) - The UUID's of Triton
networks added to the source machine used for creating the image. For
example if any of the provisioners which are run need Internet access you
will need to add the UUID's of the appropriate networks here. If this is
not specified, instances will be placed into the default Triton public and
internal networks.
- `source_machine_metadata` (map[string]string) - Triton metadata
applied to the VM used to create the image. Metadata can be used to pass
configuration information to the VM without the need for networking. See
Using the metadata
API in the
Joyent documentation for more information. This can for example be used to
set the user-script metadata key to have Triton start a user supplied
script after the VM has booted.
- `source_machine_tags` (map[string]string) - Tags applied to the
VM used to create the image.
- `source_machine_firewall_enabled` (bool) - Whether or not the firewall
of the VM used to create an image of is enabled. The Triton firewall only
filters inbound traffic to the VM. All outbound traffic is always allowed.
Currently this builder does not provide an interface to add specific
firewall rules. Unless you have a global rule defined in Triton which
allows SSH traffic enabling the firewall will interfere with the SSH
provisioner. The default is false.
- `source_machine_image_filter` (MachineImageFilter) - Filters used to populate the
source_machine_image field. Example:

View File

@ -0,0 +1,19 @@
<!-- Code generated from the comments of the SourceMachineConfig struct in builder/triton/source_machine_config.go; DO NOT EDIT MANUALLY -->
- `source_machine_package` (string) - The Triton package to use while
building the image. Does not affect (and does not have to be the same) as
the package which will be used for a VM instance running this image. On the
Joyent public cloud this could for example be g3-standard-0.5-smartos.
- `source_machine_image` (string) - The UUID of the image to base the new
image on. Triton supports multiple types of images, called 'brands' in
Triton / Joyent lingo, for contains and VM's. See the chapter Containers
and virtual machines in
the Joyent Triton documentation for detailed information. The following
brands are currently supported by this builder:joyent andkvm. The
choice of base image automatically decides the brand. On the Joyent public
cloud a valid source_machine_image could for example be
70e3ae72-96b6-11e6-9056-9737fd4d0764 for version 16.3.1 of the 64bit
SmartOS base image (a 'joyent' brand image). source_machine_image_filter
can be used to populate this UUID.

View File

@ -0,0 +1,17 @@
<!-- Code generated from the comments of the TargetImageConfig struct in builder/triton/target_image_config.go; DO NOT EDIT MANUALLY -->
- `image_description` (string) - Description of the image. Maximum 512
characters.
- `image_homepage` (string) - URL of the homepage where users can find
information about the image. Maximum 128 characters.
- `image_eula_url` (string) - URL of the End User License Agreement (EULA)
for the image. Maximum 128 characters.
- `image_acls` ([]string) - The UUID's of the users which will have
access to this image. When omitted only the owner (the Triton user whose
credentials are used) will have access to the image.
- `image_tags` (map[string]string) - Tag applied to the image.

View File

@ -0,0 +1,12 @@
<!-- Code generated from the comments of the TargetImageConfig struct in builder/triton/target_image_config.go; DO NOT EDIT MANUALLY -->
- `image_name` (string) - The name the finished image in Triton will be
assigned. Maximum 512 characters but should in practice be much shorter
(think between 5 and 20 characters). For example postgresql-95-server for
an image used as a PostgreSQL 9.5 server.
- `image_version` (string) - The version string for this image. Maximum 128
characters. Any string will do but a format of Major.Minor.Patch is
strongly advised by Joyent. See Semantic Versioning
for more information on the Major.Minor.Patch versioning format.

View File

@ -0,0 +1,69 @@
<!-- Code generated from the comments of the Config struct in builder/vagrant/builder.go; DO NOT EDIT MANUALLY -->
- `output_dir` (string) - The directory to create that will contain your output box. We always
create this directory and run from inside of it to prevent Vagrant init
collisions. If unset, it will be set to packer- plus your buildname.
- `checksum` (string) - The checksum for the .box file. The type of the checksum is specified
with checksum_type, documented below.
- `checksum_type` (string) - The type of the checksum specified in checksum. Valid values are none,
md5, sha1, sha256, or sha512. Although the checksum will not be verified
when checksum_type is set to "none", this is not recommended since OVA
files can be very large and corruption does happen from time to time.
- `box_name` (string) - if your source_box is a boxfile that we need to add to Vagrant, this is
the name to give it. If left blank, will default to "packer_" plus your
buildname.
- `provider` (string) - The vagrant provider.
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
completed. Defaults to "halt"
- `box_version` (string) - What box version to use when initializing Vagrant.
- `template` (string) - a path to a golang template for a vagrantfile. Our default template can
be found here. So far the only template variables available to you are
{{ .BoxName }} and {{ .SyncedFolder }}, which correspond to the Packer
options box_name and synced_folder.
- `synced_folder` (string) - Synced Folder
- `skip_add` (bool) - Don't call "vagrant add" to add the box to your local environment; this
is necessary if you want to launch a box that is already added to your
vagrant environment.
- `add_cacert` (string) - Equivalent to setting the
--cacert
option in vagrant add; defaults to unset.
- `add_capath` (string) - Equivalent to setting the
--capath option
in vagrant add; defaults to unset.
- `add_cert` (string) - Equivalent to setting the
--cert option in
vagrant add; defaults to unset.
- `add_clean` (bool) - Equivalent to setting the
--clean flag in
vagrant add; defaults to unset.
- `add_force` (bool) - Equivalent to setting the
--force flag in
vagrant add; defaults to unset.
- `add_insecure` (bool) - Equivalent to setting the
--insecure flag in
vagrant add; defaults to unset.
- `skip_package` (bool) - if true, Packer will not call vagrant package to
package your base box into its own standalone .box file.
- `output_vagrantfile` (string) - Output Vagrantfile
- `package_include` ([]string) - Package Include

View File

@ -0,0 +1,17 @@
<!-- Code generated from the comments of the Config struct in builder/vagrant/builder.go; DO NOT EDIT MANUALLY -->
- `source_path` (string) - URL of the vagrant box to use, or the name of the vagrant box.
hashicorp/precise64, ./mylocalbox.box and https://example.com/my-box.box
are all valid source boxes. If your source is a .box file, whether
locally or from a URL like the latter example above, you will also need
to provide a box_name. This option is required, unless you set
global_id. You may only set one or the other, not both.
- `global_id` (string) - the global id of a Vagrant box already added to Vagrant on your system.
You can find the global id of your Vagrant boxes using the command
vagrant global-status; your global_id will be a 7-digit number and
letter comination that you'll find in the leftmost column of the
global-status output. If you choose to use global_id instead of
source_box, Packer will skip the Vagrant initialize and add steps, and
simply launch the box directly using the global id.

View File

@ -0,0 +1,5 @@
<!-- Code generated from the comments of the ExportConfig struct in builder/virtualbox/common/export_config.go; DO NOT EDIT MANUALLY -->
- `format` (string) - Either ovf or ova, this specifies the output format
of the exported virtual machine. This defaults to ovf.

View File

@ -0,0 +1,8 @@
<!-- Code generated from the comments of the ExportOpts struct in builder/virtualbox/common/export_opts.go; DO NOT EDIT MANUALLY -->
- `export_opts` ([]string) - Additional options to pass to the
VBoxManage
export. This
can be useful for passing product information to include in the resulting
appliance file. Packer JSON configuration file example:

View File

@ -0,0 +1,11 @@
<!-- Code generated from the comments of the GuestAdditionsConfig struct in builder/virtualbox/common/guest_additions_config.go; DO NOT EDIT MANUALLY -->
- `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
be attached as a CD device to the virtual machine. If the mode is upload
the guest additions ISO will be uploaded to the path specified by
guest_additions_path. The default value is upload. If disable is used,
guest additions won't be downloaded, either.

View File

@ -0,0 +1,15 @@
<!-- Code generated from the comments of the HWConfig struct in builder/virtualbox/common/hw_config.go; DO NOT EDIT MANUALLY -->
- `cpus` (int) - The number of cpus to use for building the VM.
Defaults to 1.
- `memory` (int) - The amount of memory to use for building the VM
in megabytes. Defaults to 512 megabytes.
- `sound` (string) - Defaults to none. The type of audio device to use for
sound when building the VM. Some of the options that are available are
dsound, oss, alsa, pulse, coreaudio, null.
- `usb` (bool) - Specifies whether or not to enable the USB bus when
building the VM. Defaults to false.

View File

@ -0,0 +1,9 @@
<!-- Code generated from the comments of the OutputConfig struct in builder/virtualbox/common/output_config.go; DO NOT EDIT MANUALLY -->
- `output_directory` (string) - This is the path to the directory where the
resulting virtual machine will be created. This may be relative or absolute.
If relative, the path is relative to the working directory when packer
is executed. This directory must not exist or be empty prior to running
the builder. By default this is output-BUILDNAME where "BUILDNAME" is the
name of the build.

Some files were not shown because too many files have changed in this diff Show More