Releases: HBOCodeLabs/infratest
Releases · HBOCodeLabs/infratest
v0.10.0
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
* added assert volume tags
v0.8.0: (MINOR) Add AssertRoute53ZoneIsAssociatedWithVPC and Bug Fixes (#35)
* 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 …
…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)
* 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 …
…& 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
## 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…
… (#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)
### 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
## 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