diff --git a/CHANGELOG.md b/CHANGELOG.md index ea19b59ab..48f85df99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ ## 0.4.0 (unreleased) +FEATURES: +* builder/amazon/ebs: Ability to specify which availability zone to create + instance in. [GH-536] ## 0.3.10 (October 20, 2013) diff --git a/builder/amazon/common/run_config.go b/builder/amazon/common/run_config.go index b21999260..8025cf0f0 100644 --- a/builder/amazon/common/run_config.go +++ b/builder/amazon/common/run_config.go @@ -23,6 +23,7 @@ type RunConfig struct { SubnetId string `mapstructure:"subnet_id"` TemporaryKeyPairName string `mapstructure:"temporary_key_pair_name"` VpcId string `mapstructure:"vpc_id"` + AvailZone string `mapstructure:"avail_zone"` // Unexported fields that are calculated from others sshTimeout time.Duration @@ -83,6 +84,7 @@ func (c *RunConfig) Prepare(t *packer.ConfigTemplate) []error { "subnet_id": &c.SubnetId, "temporary_key_pair_name": &c.TemporaryKeyPairName, "vpc_id": &c.VpcId, + "avail_zone": &c.AvailZone, } for n, ptr := range templates { diff --git a/builder/amazon/ebs/builder.go b/builder/amazon/ebs/builder.go index 376a90e2b..f646d694f 100644 --- a/builder/amazon/ebs/builder.go +++ b/builder/amazon/ebs/builder.go @@ -101,6 +101,7 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe SourceAMI: b.config.SourceAmi, IamInstanceProfile: b.config.IamInstanceProfile, SubnetId: b.config.SubnetId, + AvailZone: b.config.AvailZone, BlockDevices: b.config.BlockDevices, }, &common.StepConnectSSH{ diff --git a/website/source/docs/builders/amazon-ebs.html.markdown b/website/source/docs/builders/amazon-ebs.html.markdown index 7248a2e2d..58d1dbcd7 100644 --- a/website/source/docs/builders/amazon-ebs.html.markdown +++ b/website/source/docs/builders/amazon-ebs.html.markdown @@ -120,6 +120,9 @@ Optional: * `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. +* `avail_zone` (string) - Destination availability zone to launch instance in. + Leave this empty to allow Amazon to auto-assign.. + ## Basic Example Here is a basic example. It is completely valid except for the access keys: