Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add encryption support to aws_instance.root_block_device #7757

Merged
merged 5 commits into from
Aug 2, 2019

Conversation

joestump
Copy link
Contributor

Fixes #6246

Changes proposed in this pull request:

  • Adds encrypted and kms_key_id to the root_block_device attribute in aws_instance.
  • Adds kms_key_id support to ebs_block_device as well.

Output from acceptance testing:

==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./... -v -parallel 20 -run=TestAccAWSInstance_encryptedRootVolume -timeout 120m
?   	github.com/terraform-providers/terraform-provider-aws	[no test files]
=== RUN   TestAccAWSInstance_encryptedRootVolume
=== PAUSE TestAccAWSInstance_encryptedRootVolume
=== CONT  TestAccAWSInstance_encryptedRootVolume
--- PASS: TestAccAWSInstance_encryptedRootVolume (182.84s)
PASS
ok  	github.com/terraform-providers/terraform-provider-aws/aws	184.157s

And...

==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./... -v -parallel 20 -run=TestAccAWSInstance_blockDevices -timeout 120m
?   	github.com/terraform-providers/terraform-provider-aws	[no test files]
=== RUN   TestAccAWSInstance_blockDevices
=== PAUSE TestAccAWSInstance_blockDevices
=== CONT  TestAccAWSInstance_blockDevices
--- PASS: TestAccAWSInstance_blockDevices (125.37s)
PASS
ok  	github.com/terraform-providers/terraform-provider-aws/aws	126.646s

@ghost ghost added size/L Managed by automation to categorize the size of a PR. service/ec2 Issues and PRs that pertain to the ec2 service. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. labels Feb 28, 2019
@ghost ghost added the documentation Introduces or discusses updates to documentation. label Feb 28, 2019
@joestump
Copy link
Contributor Author

@bflad bump. 😄

@aeschright aeschright requested a review from a team June 26, 2019 00:47
@bflad bflad added the enhancement Requests to existing resources that expand the functionality or scope. label Aug 2, 2019
@bflad bflad self-assigned this Aug 2, 2019
bflad added a commit that referenced this pull request Aug 2, 2019
…nd root_block_device configuration block encryption and kms_key_arn arguments

Reference: #4861
Reference: #7757

Having combined and resolved conflicts between #4861 and #7757, performed the following changes:

* Ensured that existing acceptance testing was untouched and only new tests were added
* Ensured data source added new attributes to match resource to prevent panics
* Renamed kms_key_id to kms_key_arn for clarity
* Mark new arguments as Computed: true to only show operators differences when a value is configured

Output from acceptance testing:

```
--- PASS: TestAccAWSInstance_EbsBlockDevice_KmsKeyArn (122.98s)
--- PASS: TestAccAWSInstance_RootBlockDevice_KmsKeyArn (127.93s)
--- PASS: TestAccAWSInstanceDataSource_RootBlockDevice_KmsKeyArn (132.34s)
--- PASS: TestAccAWSInstanceDataSource_EbsBlockDevice_KmsKeyArn (140.01s)
```
@bflad bflad added this to the v2.23.0 milestone Aug 2, 2019
@bflad
Copy link
Contributor

bflad commented Aug 2, 2019

Hi @joestump 👋 Thank you for this contribution and apologies for the lengthy merge process.

We have combined #4861, #7757, and some followup work so that the aws_instance resource and data source will support the encryption and kms_key_id arguments with both ebs_block_device and root_block_device. These enhancements will go out with version 2.23.0 of the Terraform AWS Provider, releasing next week.

--- PASS: TestAccAWSInstance_addSecondaryInterface (105.67s)
--- PASS: TestAccAWSInstance_addSecurityGroupNetworkInterface (217.17s)
--- PASS: TestAccAWSInstance_associatePublic_defaultPrivate (44.58s)
--- PASS: TestAccAWSInstance_associatePublic_defaultPublic (50.90s)
--- PASS: TestAccAWSInstance_associatePublic_explicitPrivate (71.19s)
--- PASS: TestAccAWSInstance_associatePublic_explicitPublic (71.06s)
--- PASS: TestAccAWSInstance_associatePublic_overridePrivate (50.87s)
--- PASS: TestAccAWSInstance_associatePublic_overridePublic (50.79s)
--- PASS: TestAccAWSInstance_associatePublicIPAndPrivateIP (70.96s)
--- PASS: TestAccAWSInstance_basic (115.07s)
--- PASS: TestAccAWSInstance_blockDevices (94.01s)
--- PASS: TestAccAWSInstance_changeInstanceType (339.11s)
--- PASS: TestAccAWSInstance_creditSpecification_isNotAppliedToNonBurstable (91.99s)
--- PASS: TestAccAWSInstance_creditSpecification_standardCpuCredits (77.48s)
--- PASS: TestAccAWSInstance_creditSpecification_standardCpuCredits_t2Tot3Taint (459.91s)
--- PASS: TestAccAWSInstance_creditSpecification_unknownCpuCredits_t2 (111.79s)
--- PASS: TestAccAWSInstance_creditSpecification_unknownCpuCredits_t3 (293.73s)
--- PASS: TestAccAWSInstance_creditSpecification_unlimitedCpuCredits (76.85s)
--- PASS: TestAccAWSInstance_creditSpecification_unlimitedCpuCredits_t2Tot3Taint (350.73s)
--- PASS: TestAccAWSInstance_creditSpecification_unspecifiedDefaultsToStandard (193.72s)
--- PASS: TestAccAWSInstance_creditSpecification_updateCpuCredits (92.51s)
--- PASS: TestAccAWSInstance_creditSpecificationT3_standardCpuCredits (279.61s)
--- PASS: TestAccAWSInstance_creditSpecificationT3_unlimitedCpuCredits (312.14s)
--- PASS: TestAccAWSInstance_creditSpecificationT3_unspecifiedDefaultsToUnlimited (305.64s)
--- PASS: TestAccAWSInstance_creditSpecificationT3_updateCpuCredits (129.74s)
--- PASS: TestAccAWSInstance_disableApiTermination (106.76s)
--- PASS: TestAccAWSInstance_disappears (208.33s)
--- PASS: TestAccAWSInstance_EbsBlockDevice_KmsKeyId (96.43s)
--- PASS: TestAccAWSInstance_forceNewAndTagsDrift (91.27s)
--- PASS: TestAccAWSInstance_getPasswordData_falseToTrue (157.57s)
--- PASS: TestAccAWSInstance_getPasswordData_trueToFalse (187.90s)
--- PASS: TestAccAWSInstance_GP2IopsDevice (178.60s)
--- PASS: TestAccAWSInstance_GP2WithIopsValue (192.05s)
--- PASS: TestAccAWSInstance_importBasic (206.86s)
--- PASS: TestAccAWSInstance_importInDefaultVpcBySgId (196.44s)
--- PASS: TestAccAWSInstance_importInDefaultVpcBySgName (198.84s)
--- PASS: TestAccAWSInstance_instanceProfileChange (284.21s)
--- PASS: TestAccAWSInstance_ipv6_supportAddressCount (91.12s)
--- PASS: TestAccAWSInstance_ipv6_supportAddressCountWithIpv4 (61.07s)
--- PASS: TestAccAWSInstance_ipv6_supportAddressCountWithIpv4 (91.69s)
--- PASS: TestAccAWSInstance_ipv6AddressCountAndSingleAddressCausesError (6.80s)
--- PASS: TestAccAWSInstance_keyPairCheck (71.27s)
--- PASS: TestAccAWSInstance_multipleRegions (130.07s)
--- PASS: TestAccAWSInstance_NetworkInstanceRemovingAllSecurityGroups (75.58s)
--- PASS: TestAccAWSInstance_NetworkInstanceSecurityGroups (82.36s)
--- PASS: TestAccAWSInstance_NetworkInstanceVPCSecurityGroupIDs (72.07s)
--- PASS: TestAccAWSInstance_noAMIEphemeralDevices (172.12s)
--- PASS: TestAccAWSInstance_placementGroup (171.05s)
--- PASS: TestAccAWSInstance_primaryNetworkInterface (62.85s)
--- PASS: TestAccAWSInstance_primaryNetworkInterfaceSourceDestCheck (45.98s)
--- PASS: TestAccAWSInstance_privateIP (215.31s)
--- PASS: TestAccAWSInstance_RootBlockDevice_KmsKeyId (294.73s)
--- PASS: TestAccAWSInstance_rootBlockDeviceMismatch (60.88s)
--- PASS: TestAccAWSInstance_rootInstanceStore (77.11s)
--- PASS: TestAccAWSInstance_sourceDestCheck (106.55s)
--- PASS: TestAccAWSInstance_tags (344.66s)
--- PASS: TestAccAWSInstance_UserData_EmptyStringToUnspecified (83.89s)
--- PASS: TestAccAWSInstance_UserData_UnspecifiedToEmptyString (84.78s)
--- PASS: TestAccAWSInstance_userDataBase64 (209.29s)
--- PASS: TestAccAWSInstance_volumeTags (106.31s)
--- PASS: TestAccAWSInstance_volumeTagsComputed (121.81s)
--- PASS: TestAccAWSInstance_vpc (109.39s)
--- PASS: TestAccAWSInstance_withIamInstanceProfile (118.89s)
--- PASS: TestAccAWSInstanceDataSource_AzUserData (229.07s)
--- PASS: TestAccAWSInstanceDataSource_basic (118.88s)
--- PASS: TestAccAWSInstanceDataSource_blockDevices (88.20s)
--- PASS: TestAccAWSInstanceDataSource_creditSpecification (86.16s)
--- PASS: TestAccAWSInstanceDataSource_EbsBlockDevice_KmsKeyId (110.83s)
--- PASS: TestAccAWSInstanceDataSource_getPasswordData_falseToTrue (161.42s)
--- PASS: TestAccAWSInstanceDataSource_getPasswordData_trueToFalse (169.14s)
--- PASS: TestAccAWSInstanceDataSource_GetUserData (163.49s)
--- PASS: TestAccAWSInstanceDataSource_GetUserData_NoUserData (116.04s)
--- PASS: TestAccAWSInstanceDataSource_gp2IopsDevice (186.51s)
--- PASS: TestAccAWSInstanceDataSource_keyPair (84.88s)
--- PASS: TestAccAWSInstanceDataSource_PlacementGroup (71.30s)
--- PASS: TestAccAWSInstanceDataSource_privateIP (57.50s)
--- PASS: TestAccAWSInstanceDataSource_RootBlockDevice_KmsKeyId (106.82s)
--- PASS: TestAccAWSInstanceDataSource_rootInstanceStore (86.51s)
--- PASS: TestAccAWSInstanceDataSource_tags (243.25s)
--- PASS: TestAccAWSInstanceDataSource_VPC (105.44s)
--- PASS: TestAccAWSInstanceDataSource_VPCSecurityGroups (131.62s)
--- SKIP: TestAccAWSInstance_importInEc2Classic (1.10s)

@bflad bflad merged commit 1f29fb5 into hashicorp:master Aug 2, 2019
bflad added a commit that referenced this pull request Aug 2, 2019
…nd root_block_device configuration block encryption and kms_key_arn arguments

Reference: #4861
Reference: #7757

Having combined and resolved conflicts between #4861 and #7757, performed the following changes:

* Ensured that existing acceptance testing was untouched and only new tests were added
* Ensured data source added new attributes to match resource to prevent panics
* Mark new arguments as Computed: true to only show operators differences when a value is configured

Output from acceptance testing:

```
--- PASS: TestAccAWSInstance_addSecondaryInterface (105.67s)
--- PASS: TestAccAWSInstance_addSecurityGroupNetworkInterface (217.17s)
--- PASS: TestAccAWSInstance_associatePublic_defaultPrivate (44.58s)
--- PASS: TestAccAWSInstance_associatePublic_defaultPublic (50.90s)
--- PASS: TestAccAWSInstance_associatePublic_explicitPrivate (71.19s)
--- PASS: TestAccAWSInstance_associatePublic_explicitPublic (71.06s)
--- PASS: TestAccAWSInstance_associatePublic_overridePrivate (50.87s)
--- PASS: TestAccAWSInstance_associatePublic_overridePublic (50.79s)
--- PASS: TestAccAWSInstance_associatePublicIPAndPrivateIP (70.96s)
--- PASS: TestAccAWSInstance_basic (115.07s)
--- PASS: TestAccAWSInstance_blockDevices (94.01s)
--- PASS: TestAccAWSInstance_changeInstanceType (339.11s)
--- PASS: TestAccAWSInstance_creditSpecification_isNotAppliedToNonBurstable (91.99s)
--- PASS: TestAccAWSInstance_creditSpecification_standardCpuCredits (77.48s)
--- PASS: TestAccAWSInstance_creditSpecification_standardCpuCredits_t2Tot3Taint (459.91s)
--- PASS: TestAccAWSInstance_creditSpecification_unknownCpuCredits_t2 (111.79s)
--- PASS: TestAccAWSInstance_creditSpecification_unknownCpuCredits_t3 (293.73s)
--- PASS: TestAccAWSInstance_creditSpecification_unlimitedCpuCredits (76.85s)
--- PASS: TestAccAWSInstance_creditSpecification_unlimitedCpuCredits_t2Tot3Taint (350.73s)
--- PASS: TestAccAWSInstance_creditSpecification_unspecifiedDefaultsToStandard (193.72s)
--- PASS: TestAccAWSInstance_creditSpecification_updateCpuCredits (92.51s)
--- PASS: TestAccAWSInstance_creditSpecificationT3_standardCpuCredits (279.61s)
--- PASS: TestAccAWSInstance_creditSpecificationT3_unlimitedCpuCredits (312.14s)
--- PASS: TestAccAWSInstance_creditSpecificationT3_unspecifiedDefaultsToUnlimited (305.64s)
--- PASS: TestAccAWSInstance_creditSpecificationT3_updateCpuCredits (129.74s)
--- PASS: TestAccAWSInstance_disableApiTermination (106.76s)
--- PASS: TestAccAWSInstance_disappears (208.33s)
--- PASS: TestAccAWSInstance_EbsBlockDevice_KmsKeyArn (96.43s)
--- PASS: TestAccAWSInstance_forceNewAndTagsDrift (91.27s)
--- PASS: TestAccAWSInstance_getPasswordData_falseToTrue (157.57s)
--- PASS: TestAccAWSInstance_getPasswordData_trueToFalse (187.90s)
--- PASS: TestAccAWSInstance_GP2IopsDevice (178.60s)
--- PASS: TestAccAWSInstance_GP2WithIopsValue (192.05s)
--- PASS: TestAccAWSInstance_importBasic (206.86s)
--- PASS: TestAccAWSInstance_importInDefaultVpcBySgId (196.44s)
--- PASS: TestAccAWSInstance_importInDefaultVpcBySgName (198.84s)
--- PASS: TestAccAWSInstance_instanceProfileChange (284.21s)
--- PASS: TestAccAWSInstance_ipv6_supportAddressCount (91.12s)
--- PASS: TestAccAWSInstance_ipv6_supportAddressCountWithIpv4 (61.07s)
--- PASS: TestAccAWSInstance_ipv6_supportAddressCountWithIpv4 (91.69s)
--- PASS: TestAccAWSInstance_ipv6AddressCountAndSingleAddressCausesError (6.80s)
--- PASS: TestAccAWSInstance_keyPairCheck (71.27s)
--- PASS: TestAccAWSInstance_multipleRegions (130.07s)
--- PASS: TestAccAWSInstance_NetworkInstanceRemovingAllSecurityGroups (75.58s)
--- PASS: TestAccAWSInstance_NetworkInstanceSecurityGroups (82.36s)
--- PASS: TestAccAWSInstance_NetworkInstanceVPCSecurityGroupIDs (72.07s)
--- PASS: TestAccAWSInstance_noAMIEphemeralDevices (172.12s)
--- PASS: TestAccAWSInstance_placementGroup (171.05s)
--- PASS: TestAccAWSInstance_primaryNetworkInterface (62.85s)
--- PASS: TestAccAWSInstance_primaryNetworkInterfaceSourceDestCheck (45.98s)
--- PASS: TestAccAWSInstance_privateIP (215.31s)
--- PASS: TestAccAWSInstance_RootBlockDevice_KmsKeyArn (294.73s)
--- PASS: TestAccAWSInstance_rootBlockDeviceMismatch (60.88s)
--- PASS: TestAccAWSInstance_rootInstanceStore (77.11s)
--- PASS: TestAccAWSInstance_sourceDestCheck (106.55s)
--- PASS: TestAccAWSInstance_tags (344.66s)
--- PASS: TestAccAWSInstance_UserData_EmptyStringToUnspecified (83.89s)
--- PASS: TestAccAWSInstance_UserData_UnspecifiedToEmptyString (84.78s)
--- PASS: TestAccAWSInstance_userDataBase64 (209.29s)
--- PASS: TestAccAWSInstance_volumeTags (106.31s)
--- PASS: TestAccAWSInstance_volumeTagsComputed (121.81s)
--- PASS: TestAccAWSInstance_vpc (109.39s)
--- PASS: TestAccAWSInstance_withIamInstanceProfile (118.89s)
--- PASS: TestAccAWSInstanceDataSource_AzUserData (229.07s)
--- PASS: TestAccAWSInstanceDataSource_basic (118.88s)
--- PASS: TestAccAWSInstanceDataSource_blockDevices (88.20s)
--- PASS: TestAccAWSInstanceDataSource_creditSpecification (86.16s)
--- PASS: TestAccAWSInstanceDataSource_EbsBlockDevice_KmsKeyArn (110.83s)
--- PASS: TestAccAWSInstanceDataSource_getPasswordData_falseToTrue (161.42s)
--- PASS: TestAccAWSInstanceDataSource_getPasswordData_trueToFalse (169.14s)
--- PASS: TestAccAWSInstanceDataSource_GetUserData (163.49s)
--- PASS: TestAccAWSInstanceDataSource_GetUserData_NoUserData (116.04s)
--- PASS: TestAccAWSInstanceDataSource_gp2IopsDevice (186.51s)
--- PASS: TestAccAWSInstanceDataSource_keyPair (84.88s)
--- PASS: TestAccAWSInstanceDataSource_PlacementGroup (71.30s)
--- PASS: TestAccAWSInstanceDataSource_privateIP (57.50s)
--- PASS: TestAccAWSInstanceDataSource_RootBlockDevice_KmsKeyArn (106.82s)
--- PASS: TestAccAWSInstanceDataSource_rootInstanceStore (86.51s)
--- PASS: TestAccAWSInstanceDataSource_tags (243.25s)
--- PASS: TestAccAWSInstanceDataSource_VPC (105.44s)
--- PASS: TestAccAWSInstanceDataSource_VPCSecurityGroups (131.62s)
--- SKIP: TestAccAWSInstance_importInEc2Classic (1.10s)
```
bflad added a commit that referenced this pull request Aug 2, 2019
@ghost
Copy link

ghost commented Aug 7, 2019

This has been released in version 2.23.0 of the Terraform AWS provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading.

For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template for triage. Thanks!

@ghost
Copy link

ghost commented Nov 2, 2019

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.

If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. Thanks!

@ghost ghost locked and limited conversation to collaborators Nov 2, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
documentation Introduces or discusses updates to documentation. enhancement Requests to existing resources that expand the functionality or scope. service/ec2 Issues and PRs that pertain to the ec2 service. size/L Managed by automation to categorize the size of a PR. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

EBS root block encryption not available in EC2
3 participants