Skip to content

Commit

Permalink
Merge pull request #1358 from rzh/placement_group
Browse files Browse the repository at this point in the history
provider/aws: support for AWS Placement Group
  • Loading branch information
mitchellh committed Apr 22, 2015
2 parents b6cf0bb + 94bb3ed commit b755459
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 0 deletions.
8 changes: 8 additions & 0 deletions builtin/providers/aws/resource_aws_instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,13 @@ func resourceAwsInstance() *schema.Resource {
ForceNew: true,
},

"placement_group": &schema.Schema{
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
},

"instance_type": &schema.Schema{
Type: schema.TypeString,
Required: true,
Expand Down Expand Up @@ -314,6 +321,7 @@ func resourceAwsInstanceCreate(d *schema.ResourceData, meta interface{}) error {

placement := &ec2.Placement{
AvailabilityZone: aws.String(d.Get("availability_zone").(string)),
GroupName: aws.String(d.Get("placement_group").(string)),
}

if hasSubnet {
Expand Down
5 changes: 5 additions & 0 deletions builtin/providers/aws/resource_aws_instance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ func TestAccAWSInstance_normal(t *testing.T) {
return fmt.Errorf("bad availability zone: %#v", *v.Placement.AvailabilityZone)
}

if *v.Placement.GroupName != "terraform-placement-group" {
return fmt.Errorf("bad placement group name: %#v", *v.Placement.GroupName)
}

if len(v.SecurityGroups) == 0 {
return fmt.Errorf("no security groups: %#v", v.SecurityGroups)
}
Expand Down Expand Up @@ -530,6 +534,7 @@ resource "aws_instance" "foo" {
# us-west-2
ami = "ami-4fccb37f"
availability_zone = "us-west-2a"
placement_group = "terraform-placement-group"
instance_type = "m1.small"
security_groups = ["${aws_security_group.tf_test_foo.name}"]
Expand Down
2 changes: 2 additions & 0 deletions website/source/docs/providers/aws/r/instance.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ The following arguments are supported:

* `ami` - (Required) The AMI to use for the instance.
* `availability_zone` - (Optional) The AZ to start the instance in.
* `placement_group` - (Optional) The Placement Group to start the instance in.
* `ebs_optimized` - (Optional) If true, the launched EC2 instance will be
EBS-optimized.
* `instance_type` - (Required) The type of instance to start
Expand Down Expand Up @@ -120,6 +121,7 @@ The following attributes are exported:

* `id` - The instance ID.
* `availability_zone` - The availability zone of the instance.
* `placement_group` - The placement group of the instance.
* `key_name` - The key name of the instance
* `private_dns` - The Private DNS name of the instance
* `private_ip` - The private IP address.
Expand Down

0 comments on commit b755459

Please sign in to comment.