Skip to content

Releases: HBOCodeLabs/infratest

v0.10.0

09 May 15:28
cde97c3
Compare
Choose a tag to compare

What's Changed

  • added: Vault assertion method by @yardbirdsax in #36
  • Bump github.com/aws/aws-sdk-go-v2/service/ec2 from 1.12.0 to 1.142.1 by @dependabot in #120
  • Bump github.com/aws/aws-sdk-go-v2/service/route53 from 1.12.0 to 1.36.1 by @dependabot in #121
  • chore: upgrade go and various deps by @yardbirdsax in #129
  • Bump k8s.io/apimachinery from 0.29.1 to 0.29.3 by @dependabot in #140
  • Bump github.com/aws/aws-sdk-go-v2/service/iam from 1.28.7 to 1.31.3 by @dependabot in #141
  • Bump github.com/gruntwork-io/terratest from 0.46.11 to 0.46.14 by @dependabot in #148
  • Bump github.com/aws/aws-sdk-go-v2/service/eks from 1.37.1 to 1.42.1 by @dependabot in #147

Full Changelog: v0.9.0...v0.10.0

v0.9.0: (MINOR) added assert volume tags method

20 May 19:12
c7897c8
Compare
Choose a tag to compare

v0.8.0: (MINOR) Add AssertRoute53ZoneIsAssociatedWithVPC and Bug Fixes (#35)

13 May 13:58
b81c244
Compare
Choose a tag to compare
* Add function to check for zone <-> VPC association

* Rework AssertEC2InstancesBalancedInSubnets

* Tweaks to AssertEC2InstancesBalancedInSubnets

* Refactor AssertEC2InstancesBalancedInSubnets to only accept instances list

v0.7.2: Refactoring VolumeId Tests to use gomock; Adding additional tests to …

11 Mar 19:41
dd23474
Compare
Choose a tag to compare
…assert the calls to functions (#32)

* The EC2 Volume tests have been refactored to use `gomock` instead of the home grown mock objects.

v0.7.1: Ensuring tests run for the correct device id (#30)

01 Mar 16:33
943de4b
Compare
Choose a tag to compare
* FIXES: The methods for asserting volume type, throughput, and IOPS values previously did not assert against only the specified device ID. That is now corrected.

v0.7.0: (MINOR) Adding code for testing & getting ec2 volume type, threshold …

23 Feb 18:08
4758482
Compare
Choose a tag to compare
…& iops (#28)

## ADDED
* Methods for testing & getting ec2 volume type, threshold & iops. This change will support customizing & testing volume types other than gp2.

v0.6.0: (MINOR) Add new AWS IAM Role method

01 Feb 18:09
e1d1ede
Compare
Choose a tag to compare
## ADDS
* Added the `AssertIAMRoleMaxSessionDuration method to assert the MaxDurationSession attribute value for a given AWS IAM Role.

v0.5.0: (MINOR) New methods for Kubernetes job assertion and EKS interactions…

01 Feb 17:14
9502340
Compare
Choose a tag to compare
… (#26)

### SUMMARY

This resolves #21 , with the exception that currently the reason for the job failure (e.g. job logs) is not outputted by the test. Streaming / capturing logs proved to be more complex, so a separate issue will be opened to enhance the method in the future.

* A new package `k8s` has been added with some methods around asserting things against Kubernetes clusters.
* New methods have been added to the `aws` package around interacting with EKS clusters. 
* An integration test using `kind` has been added for this new method. A new Make target of `k8s-integration-test` has been added to run this.
* The GitHub workflow for validating PRs has been updated to run these integrations tests with a matrix of k8s versions from 1.19-1.21.

### DEVELOPER IMPACT

#### ADDED
* A new `k8s` package has been added with numerous methods around asserting tests against Kubernetes clusters:
  * `k8s.AssertJobSucceeds`: This method runs a job against a Kubernetes cluster, and asserts that it finishes successfully.
  * `k8s.GetClientsetE`: This method is a wrapper around some Kubernetes API methods that makes constructing a new [`Clientset`](https://pkg.go.dev/k8s.io/client-go@v0.23.1/kubernetes#Clientset) object easy in various ways. Several functional option methods have been added in support of this, including:
    * `k8s.WithGetClientsetEHost`: This method configures a host name to be used by the clientset.
    * `k8s.WithGetClientsetEToken`: This method configures a bearer token to be used by the clientset.
    * `k8s.WithGetClientsetETLSCAData`: This method configures the CA certificate to be trusted by the clientset when connecting to the Kubernetes API endpoint.
    * `k8s.WithGetClientsetEKubeconfigPath`: This method configures the clientset using an existing config file. It should only be used in isolation for best results. 
* New methods around EKS clusters have been added to the `aws` package.
  * `aws.GetEKSClusterE`: This method retrieves useful information around EKS clusters, such as cluster endpoints.
  * `aws.GetEKSTokenE`: This method returns a bearer token that can be used to authenticate against EKS clusters using the Kubernetes `client-go` library and other methods in the `k8s` package.
#### CHANGED
* The module now requires Go v1.17 at a minimum. This is due to an upstream issue with the Kubernetes API library; please see [this PR comment](https://github.com/kubernetes/kubernetes/issues/106666#issuecomment-989459922).

v0.4.0: (MINOR) Fix for AssertEC2TagValue method (#24)

21 Jan 16:44
372195b
Compare
Choose a tag to compare
### SUMMARY
* Fixed bug in  `aws.AssertEC2TagValue` method.
* Removed deprecated (and broken) `aws.AssertEC2TagValueE` method.

### REMOVED
* The deprecated AssertEC2TagValueE method has been removed. It was broken and would not have worked.

### FIXES
* The AssertEC2TagValue method now correctly includes the specified Instance ID in the filter list. Previously it did not include this, causing it to assert against all instances in a region.

### MISC
* The tests for the `aws.AssertEC2TagValue` method have been updated to use the `gomock` mocks rather than the hand written ones.

### Contribution Checklist
* [X] All changes have been reflected in comparable unit test changes or additions.
* [ ] (N/A) Any interactions with third party clients are done via interface types rather than direct interactions.
* [ ] (N/A) All new functions follow the required naming standard.
* [ ] (N/A) All new functions follow the required signature standards.

v0.3.0: (MINOR) improve R53 functions

21 Dec 21:38
632881c
Compare
Choose a tag to compare
## CHANGES

* rename the `AssertRecordExistsInHostedZone` to `AssertRoute53RecordExistsInHostedZone` for consistency
* ensure that a `context.Context` is properly passed to `ListHostedZonesByName`, as is required by https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/route53#Client.ListHostedZonesByName