Commit Graph

3691 Commits

Author SHA1 Message Date
Paul Hinze 73d20b4c58 providers/aws: add root_block_device to aws_instance
AWS provides a single `BlockDeviceMapping` to manage three different
kinds of block devices:

 (a) The root volume
 (b) Ephemeral storage
 (c) Additional EBS volumes

Each of these types has slightly different semantics [1].

(a) The root volume is defined by the AMI; it can only be customized
with `volume_size`, `volume_type`, and `delete_on_termination`.

(b) Ephemeral storage is made available based on instance type [2]. It's
attached automatically if _no_ block device mappings are specified, and
must otherwise be defined with block device mapping entries that contain
only DeviceName set to a device like "/dev/sdX" and VirtualName set to
"ephemeralN".

(c) Additional EBS volumes are controlled by mappings that omit
`virtual_name` and can specify `volume_size`, `volume_type`,
`delete_on_termination`, `snapshot_id`, and `encryption`.

After deciding to ignore root block devices to fix #859, we had users
with configurations that were attempting to manage the root block device chime
in on #913.

Terraform does not have the primitives to be able to properly handle a
single collection of resources that is partially managed and partially
computed, so our strategy here is to break out logical sub-resources for
Terraform and hide the BlockDeviceMapping inside the provider
implementation.

Now (a) is supported by the `root_block_device` sub-resource, and (b)
and (c) are still both merged together under `block_device`, though I
have yet to see ephemeral block devices working properly.

Looking into possibly separating out `ephemeral_block_device` and
`ebs_block_device` sub-resources as well, which seem like the logical
next step. We'll wait until the next big release for this, though, since
it will break backcompat.

[1] http://bit.ly/ec2bdmap
[2] http://bit.ly/instancestorebytype

Fixes #913
Refs #858
2015-02-18 13:15:11 -06:00
Radek Simko 6c8dd9e8fa Unreachable code removed 2015-02-18 18:28:09 +00:00
Radek Simko e149a97658 Make composite literals to use keyed fields
This will prevent following error:
 - * composite literal uses unkeyed fields
2015-02-18 18:26:59 +00:00
Mitchell Hashimoto fe113579ac update CHANGELOG 2015-02-18 10:23:47 -08:00
Mitchell Hashimoto a91eaa1fce Merge pull request #997 from hashicorp/b-validate-subresource
helper/schema: validate subresources more effectively
2015-02-18 10:23:12 -08:00
Mitchell Hashimoto 659a77c6ae helper/schema: validate subresources more effectively 2015-02-18 09:41:55 -08:00
Mitchell Hashimoto fc7c859c8a providers/aws: egress should be computed 2015-02-18 09:27:55 -08:00
Mitchell Hashimoto 5e8c3113b4 providers/aws: style change 2015-02-18 09:07:46 -08:00
Mitchell Hashimoto a4d6420d58 update CHANGELOG 2015-02-18 06:57:43 -08:00
Mitchell Hashimoto 4f10f6a15b update CHANGELOG 2015-02-18 06:57:06 -08:00
Mitchell Hashimoto 44c45994c8 Merge pull request #963 from julienba/master
providers/aws: vpc_peering_connection
2015-02-18 06:56:28 -08:00
jba 372035368f allow update 2015-02-18 10:45:12 +01:00
Mitchell Hashimoto db729e5571 update cHANGELOG 2015-02-17 17:46:36 -08:00
Mitchell Hashimoto 2edd7a4009 Merge pull request #993 from hashicorp/b-getok
helper/schema: change GetOk semantics to mean non-zero
2015-02-17 17:46:02 -08:00
Mitchell Hashimoto fa7f496bef helper/schema: zero value of a set should be empty 2015-02-17 16:58:47 -08:00
Mitchell Hashimoto 7d32c8946a helper/schema: GetOk now only returns true if set to non-zero value 2015-02-17 16:55:39 -08:00
Mitchell Hashimoto b3b8688616 update CHANGELOG 2015-02-17 16:41:57 -08:00
Mitchell Hashimoto c40238041c providers/aws: fix bad arg giving wrong type [GH-992] 2015-02-17 16:39:51 -08:00
Mitchell Hashimoto e04def93e6 Merge pull request #991 from hashicorp/b-autoscale-lc-update
providers/aws: allow in-place update of launch configuration
2015-02-17 16:29:56 -08:00
Mitchell Hashimoto 0a69ec3d05 update CHANGELOG 2015-02-17 16:20:40 -08:00
Mitchell Hashimoto 5dc1b70777 update CHANGELOG 2015-02-17 16:18:38 -08:00
Mitchell Hashimoto faec39b8c1 Merge pull request #990 from hashicorp/b-set-change
helper/schema: GetChange shouldn't return true when no change
2015-02-17 16:17:44 -08:00
Mitchell Hashimoto bfa3a2997a Update CHANGELOG 2015-02-17 16:15:37 -08:00
Mitchell Hashimoto 7f6e13ab32 Merge pull request #989 from hashicorp/b-empty-map
helper/schema: empty map values should show up in diff [GH-968]
2015-02-17 16:14:52 -08:00
Mitchell Hashimoto 24c6ce4e04 update CHANGELOG 2015-02-17 16:14:37 -08:00
Mitchell Hashimoto 84e72b817c Merge pull request #988 from hashicorp/b-prov-multi
config: bare splat variables should not be allowed in provisioners
2015-02-17 16:12:52 -08:00
Mitchell Hashimoto 5a64d0900b providers/aws: test for allowing in-place lC update 2015-02-17 16:12:02 -08:00
Mitchell Hashimoto b5df47efc9 providers/aws: support updating ASG launch config [GH-904] 2015-02-17 15:48:15 -08:00
Mitchell Hashimoto 66f7731995 helper/schema: GetChange shouldn't return true when no change 2015-02-17 15:43:19 -08:00
Mitchell Hashimoto 5c06cc386a helper/schema: empty map values should show up in diff [GH-968] 2015-02-17 15:22:45 -08:00
Mitchell Hashimoto e9778c85a5 helper/schema: clarify test 2015-02-17 14:46:24 -08:00
Mitchell Hashimoto dbfb95fcd5 helper/schema: show in diff when no config is going to empty set 2015-02-17 14:45:18 -08:00
Mitchell Hashimoto cc3c03d3b3 update CHANGELOG 2015-02-17 14:00:29 -08:00
Mitchell Hashimoto 0feb29944c Merge pull request #856 from CashStar/aws_egress
provider/aws: adding support for egress rules in AWS Security Groups
2015-02-17 13:59:47 -08:00
Mitchell Hashimoto 4bcf6cf6b2 config: bare splat variables should not be allowed in provisioners
[GH-636]
2015-02-17 13:32:45 -08:00
Mitchell Hashimoto dee1071cf4 Merge pull request #987 from hashicorp/b-bad-diff
helper/schema: computed fields in state shouldn't cause diff to zero value
2015-02-17 13:18:33 -08:00
Mitchell Hashimoto fd274d7328 helper/schema: update test desc 2015-02-17 13:17:23 -08:00
Mitchell Hashimoto bcdec738d4 helper/schema: default the new value to zero only for the decode 2015-02-17 13:16:59 -08:00
Mitchell Hashimoto ad6be99f5b helper/schema: failing test 2015-02-17 13:15:30 -08:00
Mitchell Hashimoto 72a35cb44a update CHANGELOG 2015-02-17 11:52:07 -08:00
Mitchell Hashimoto 2ee2b9e26f Merge pull request #986 from hashicorp/b-remove-set
helper/schema: Diff with set going to 0 elements removes it from state
2015-02-17 11:50:50 -08:00
Mitchell Hashimoto 1a39903fe2 Merge pull request #984 from hashicorp/b-zero-diffs
helper/schema: Diff should be empty if the zero value is in the state
2015-02-17 11:50:43 -08:00
Mitchell Hashimoto c2f3f0594d terraform: sort dependencies of resource state [GH-928] 2015-02-17 11:47:53 -08:00
Mitchell Hashimoto 2212d6895d helper/schema: diff with set going to 0 elements removes it from state 2015-02-17 11:38:56 -08:00
Mitchell Hashimoto c22ba7d3a8 helper/schema: fix test index 2015-02-17 11:14:04 -08:00
Mitchell Hashimoto cbcfb26ec6 helper/schema: add test for sets 2015-02-17 11:12:45 -08:00
Mitchell Hashimoto b778a65a83 helper/schema: diff of zero value in state with lack of value should not
diff
2015-02-17 11:10:45 -08:00
Bryce Kahle fa8280a56c Add split docs 2015-02-17 13:24:34 -05:00
nevins-b b7238ca6f2 adding documentation 2015-02-17 13:23:10 -05:00
Mitchell Hashimoto 1752c93e0c update CHANGELOG 2015-02-17 09:44:44 -08:00