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 support for OpenTofu #1352

Merged
merged 11 commits into from
Oct 9, 2023
Merged

Add support for OpenTofu #1352

merged 11 commits into from
Oct 9, 2023

Conversation

denis256
Copy link
Member

@denis256 denis256 commented Oct 5, 2023

Description

Included changes:

  • added identification of default executable used in terraform tests: terraform or tofu
  • updated tests to match the execution of tofu
  • updated cicrcle ci to run a separate test suite with tofu and removed terraform
  • updated terraform version used in tests to 1.5.7

Fixes #1333.

TODOs

Read the Gruntwork contribution guidelines.

  • Update the docs.
  • Run the relevant tests successfully, including pre-commit checks.
  • Ensure any 3rd party code adheres with our license policy or delete this line if its not applicable.
  • Include release notes. If this PR is backward incompatible, include a migration guide.

Release Notes (draft)

Added / Removed / Updated [X].

Added support for OpenTofu in terraform module.

Migration Guide

Switching to tofu:

  1. Install OpenTofu cli https://github.com/opentofu/opentofu
  2. Apply one of:

@denis256 denis256 marked this pull request as ready for review October 9, 2023 15:18
@denis256 denis256 changed the title [WIP] Add support for OpenTofu Add support for OpenTofu Oct 9, 2023
@denis256 denis256 merged commit 48ff8d3 into master Oct 9, 2023
3 checks passed
@denis256 denis256 deleted the feature/opentofu-1333 branch October 9, 2023 16:39
virtualroot added a commit to virtualroot/awesome-opentofu that referenced this pull request Oct 11, 2023
> Fallback to tofu if terraform is not available

gruntwork-io/terratest#1352
kayman-mk added a commit to cattle-ops/terraform-aws-gitlab-runner that referenced this pull request Oct 12, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change | Age | Adoption | Passing |
Confidence |
|---|---|---|---|---|---|---|---|
| [aws](https://registry.terraform.io/providers/hashicorp/aws)
([source](https://togithub.com/hashicorp/terraform-provider-aws)) |
required_provider | minor | `5.19.0` -> `5.20.1` |
[![age](https://developer.mend.io/api/mc/badges/age/terraform-provider/aws/5.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/terraform-provider/aws/5.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/terraform-provider/aws/5.19.0/5.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/terraform-provider/aws/5.19.0/5.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [boto3](https://togithub.com/boto/boto3) | | patch | `==1.28.60` ->
`==1.28.62` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/boto3/1.28.62?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/boto3/1.28.62?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/boto3/1.28.60/1.28.62?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/boto3/1.28.60/1.28.62?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [botocore](https://togithub.com/boto/botocore) | | patch | `==1.31.60`
-> `==1.31.62` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/botocore/1.31.62?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/botocore/1.31.62?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/botocore/1.31.60/1.31.62?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/botocore/1.31.60/1.31.62?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| checkmarx/kics | container | patch | `v1.7.9-debian` ->
`v1.7.10-debian` |
[![age](https://developer.mend.io/api/mc/badges/age/docker/checkmarx%2fkics/v1.7.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/docker/checkmarx%2fkics/v1.7.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/docker/checkmarx%2fkics/v1.7.9/v1.7.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/checkmarx%2fkics/v1.7.9/v1.7.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[github.com/gruntwork-io/terratest](https://togithub.com/gruntwork-io/terratest)
| require | minor | `v0.45.0` -> `v0.46.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgruntwork-io%2fterratest/v0.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgruntwork-io%2fterratest/v0.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgruntwork-io%2fterratest/v0.45.0/v0.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgruntwork-io%2fterratest/v0.45.0/v0.46.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [github.com/xanzy/go-gitlab](https://togithub.com/xanzy/go-gitlab) |
require | minor | `v0.92.3` -> `v0.93.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fxanzy%2fgo-gitlab/v0.93.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fxanzy%2fgo-gitlab/v0.93.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fxanzy%2fgo-gitlab/v0.92.3/v0.93.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fxanzy%2fgo-gitlab/v0.92.3/v0.93.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| peter-evans/slash-command-dispatch | action | digest | `c5d899d` ->
`34d58dd` |
[![age](https://developer.mend.io/api/mc/badges/age/github-tags/peter-evans%2fslash-command-dispatch/?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/github-tags/peter-evans%2fslash-command-dispatch/?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/github-tags/peter-evans%2fslash-command-dispatch//?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/peter-evans%2fslash-command-dispatch//?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>hashicorp/terraform-provider-aws (aws)</summary>

###
[`v5.20.1`](https://togithub.com/hashicorp/terraform-provider-aws/blob/HEAD/CHANGELOG.md#5201-October-10-2023)

[Compare
Source](https://togithub.com/hashicorp/terraform-provider-aws/compare/v5.20.0...v5.20.1)

NOTES:

- provider: Build with [Terraform Plugin Framework
v1.4.1](https://togithub.com/hashicorp/terraform-plugin-framework/blob/main/CHANGELOG.md#141-october-09-2023),
fixing potential [initialization
errors](https://togithub.com/hashicorp/terraform/issues/33990) when
using v1.6 of the Terraform CLI.

###
[`v5.20.0`](https://togithub.com/hashicorp/terraform-provider-aws/blob/HEAD/CHANGELOG.md#5200-October-6-2023)

[Compare
Source](https://togithub.com/hashicorp/terraform-provider-aws/compare/v5.19.0...v5.20.0)

FEATURES:

- **New Resource:** `aws_guardduty_detector_feature`
([#&#8203;31463](https://togithub.com/hashicorp/terraform-provider-aws/issues/31463))
- **New Resource:** `aws_servicequotas_template`
([#&#8203;33688](https://togithub.com/hashicorp/terraform-provider-aws/issues/33688))
- **New Resource:** `aws_sesv2_account_vdm_attributes`
([#&#8203;33705](https://togithub.com/hashicorp/terraform-provider-aws/issues/33705))
- **New Resource:**
`aws_verifiedaccess_instance_trust_provider_attachment`
([#&#8203;33734](https://togithub.com/hashicorp/terraform-provider-aws/issues/33734))

ENHANCEMENTS:

- data-source/aws_guardduty_detector: Add `features` attribute
([#&#8203;31463](https://togithub.com/hashicorp/terraform-provider-aws/issues/31463))
- resource/aws_finspace_kx_cluster: Increase default creation timeout to
45 minutes, default deletion timeout to 60 minutes
([#&#8203;33745](https://togithub.com/hashicorp/terraform-provider-aws/issues/33745))
- resource/aws_finspace_kx_environment: Increase default deletion
timeout to 45 minutes
([#&#8203;33745](https://togithub.com/hashicorp/terraform-provider-aws/issues/33745))
- resource/aws_guardduty_filter: Add plan-time validation of `name`
([#&#8203;21030](https://togithub.com/hashicorp/terraform-provider-aws/issues/21030))
- resource/aws_kinesis_firehose_delivery_stream: Add
`opensearchserverless_configuration` and `msk_source_configuration`
configuration blocks
([#&#8203;33101](https://togithub.com/hashicorp/terraform-provider-aws/issues/33101))
- resource/aws_kinesis_firehose_delivery_stream: Add
`opensearchserverless` as a valid `destination` value
([#&#8203;33101](https://togithub.com/hashicorp/terraform-provider-aws/issues/33101))

BUG FIXES:

- data-source/aws_fsx_ontap_storage_virtual_machine: Fix crash when
`active_directory_configuration.self_managed_active_directory_configuration.file_system_administrators_group`
is not configured
([#&#8203;33800](https://togithub.com/hashicorp/terraform-provider-aws/issues/33800))
- resource/aws_ec2\_transit_gateway_route : Fix TGW route search filter
to avoid routes being missed when more than 1,000 static routes are in a
TGW route table
([#&#8203;33765](https://togithub.com/hashicorp/terraform-provider-aws/issues/33765))
- resource/aws_fsx_ontap_storage_virtual_machine: Fix crash when
`active_directory_configuration.self_managed_active_directory_configuration.file_system_administrators_group`
is not configured
([#&#8203;33800](https://togithub.com/hashicorp/terraform-provider-aws/issues/33800))
- resource/aws_medialive_channel: Fix VPC settings flatten/expand/docs.
([#&#8203;33558](https://togithub.com/hashicorp/terraform-provider-aws/issues/33558))
- resource/aws_vpc_endpoint: Set `dns_options.dns_record_ip_type` to
`Computed` to prevent diffs
([#&#8203;33743](https://togithub.com/hashicorp/terraform-provider-aws/issues/33743))

</details>

<details>
<summary>boto/boto3 (boto3)</summary>

###
[`v1.28.62`](https://togithub.com/boto/boto3/blob/HEAD/CHANGELOG.rst#12862)

[Compare
Source](https://togithub.com/boto/boto3/compare/1.28.61...1.28.62)

\=======

- enhancement:Dependencies: \[`botocore`] Add support for urllib3 2.0
for Python 3.10+
- api-change:`ec2`: \[`botocore`] Documentation updates for Elastic
Compute Cloud (EC2).
- api-change:`fsx`: \[`botocore`] After performing steps to repair the
Active Directory configuration of a file system, use this action to
initiate the process of attempting to recover to the file system.
- api-change:`marketplace-catalog`: \[`botocore`] This release adds
support for Document type as an alternative for stringified JSON for
StartChangeSet, DescribeChangeSet and DescribeEntity APIs
- api-change:`quicksight`: \[`botocore`] NullOption in
FilterListConfiguration; Dataset schema/table max length increased;
Support total placement for pivot table visual; Lenient mode relaxes the
validation to create resources with definition; Data sources can be
added to folders; Redshift data sources support IAM Role-based
authentication
- api-change:`transfer`: \[`botocore`] This release updates the max
character limit of PreAuthenticationLoginBanner and
PostAuthenticationLoginBanner to 4096 characters

###
[`v1.28.61`](https://togithub.com/boto/boto3/blob/HEAD/CHANGELOG.rst#12861)

[Compare
Source](https://togithub.com/boto/boto3/compare/1.28.60...1.28.61)

\=======

- api-change:`omics`: \[`botocore`] Add Etag Support for Omics Storage
in ListReadSets and GetReadSetMetadata API
- api-change:`rds`: \[`botocore`] Updates Amazon RDS documentation for
corrections and minor improvements.
- api-change:`route53`: \[`botocore`] Add hostedzonetype filter to
ListHostedZones API.
- api-change:`securityhub`: \[`botocore`] Added new resource detail
objects to ASFF, including resources for AwsEventsEventbus,
AwsEventsEndpoint, AwsDmsEndpoint, AwsDmsReplicationTask,
AwsDmsReplicationInstance, AwsRoute53HostedZone, and AwsMskCluster
- api-change:`storagegateway`: \[`botocore`] Add SoftwareVersion to
response of DescribeGatewayInformation.
- api-change:`workspaces`: \[`botocore`] This release introduces Manage
applications. This feature allows users to manage their WorkSpaces
applications by associating or disassociating their WorkSpaces with
applications. The DescribeWorkspaces API will now additionally return
OperatingSystemName in its responses.

</details>

<details>
<summary>boto/botocore (botocore)</summary>

###
[`v1.31.62`](https://togithub.com/boto/botocore/blob/HEAD/CHANGELOG.rst#13162)

[Compare
Source](https://togithub.com/boto/botocore/compare/1.31.61...1.31.62)

\=======

- enhancement:Dependencies: Add support for urllib3 2.0 for Python 3.10+
- api-change:`ec2`: Documentation updates for Elastic Compute Cloud
(EC2).
- api-change:`fsx`: After performing steps to repair the Active
Directory configuration of a file system, use this action to initiate
the process of attempting to recover to the file system.
- api-change:`marketplace-catalog`: This release adds support for
Document type as an alternative for stringified JSON for StartChangeSet,
DescribeChangeSet and DescribeEntity APIs
- api-change:`quicksight`: NullOption in FilterListConfiguration;
Dataset schema/table max length increased; Support total placement for
pivot table visual; Lenient mode relaxes the validation to create
resources with definition; Data sources can be added to folders;
Redshift data sources support IAM Role-based authentication
- api-change:`transfer`: This release updates the max character limit of
PreAuthenticationLoginBanner and PostAuthenticationLoginBanner to 4096
characters

###
[`v1.31.61`](https://togithub.com/boto/botocore/blob/HEAD/CHANGELOG.rst#13161)

[Compare
Source](https://togithub.com/boto/botocore/compare/1.31.60...1.31.61)

\=======

- api-change:`omics`: Add Etag Support for Omics Storage in ListReadSets
and GetReadSetMetadata API
- api-change:`rds`: Updates Amazon RDS documentation for corrections and
minor improvements.
- api-change:`route53`: Add hostedzonetype filter to ListHostedZones
API.
- api-change:`securityhub`: Added new resource detail objects to ASFF,
including resources for AwsEventsEventbus, AwsEventsEndpoint,
AwsDmsEndpoint, AwsDmsReplicationTask, AwsDmsReplicationInstance,
AwsRoute53HostedZone, and AwsMskCluster
- api-change:`storagegateway`: Add SoftwareVersion to response of
DescribeGatewayInformation.
- api-change:`workspaces`: This release introduces Manage applications.
This feature allows users to manage their WorkSpaces applications by
associating or disassociating their WorkSpaces with applications. The
DescribeWorkspaces API will now additionally return OperatingSystemName
in its responses.

</details>

<details>
<summary>gruntwork-io/terratest
(github.com/gruntwork-io/terratest)</summary>

###
[`v0.46.0`](https://togithub.com/gruntwork-io/terratest/releases/tag/v0.46.0)

[Compare
Source](https://togithub.com/gruntwork-io/terratest/compare/v0.45.0...v0.46.0)

#### Modules affected

-   `terraform`

#### Description

-   Added support for OpenTofu in `terraform` module

##### Migration Guide

Switching to tofu:

1.  Install OpenTofu cli https://github.com/opentofu/opentofu
2.  Apply one of:

-   Option 1: Remove `terraform` binary from `PATH`
- Option 2: use [`TerraformBinary`
config](https://togithub.com/gruntwork-io/terratest/blob/master/modules/terraform/options.go#L41)
to specify `tofu` executable

#### Related links

<!-- Links to each PR or issue that are being addressed in this release.
The drafter will autoinclude each merged PR. -->

-
[gruntwork-io/terratest#1352

<!-- RELEASE_NOTES_DRAFTER_MARKER_RELATED_LINKS_NEXT -->

</details>

<details>
<summary>xanzy/go-gitlab (github.com/xanzy/go-gitlab)</summary>

###
[`v0.93.1`](https://togithub.com/xanzy/go-gitlab/compare/v0.93.0...v0.93.1)

[Compare
Source](https://togithub.com/xanzy/go-gitlab/compare/v0.93.0...v0.93.1)

###
[`v0.93.0`](https://togithub.com/xanzy/go-gitlab/compare/v0.92.3...v0.93.0)

[Compare
Source](https://togithub.com/xanzy/go-gitlab/compare/v0.92.3...v0.93.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/cattle-ops/terraform-aws-gitlab-runner).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjMiLCJ1cGRhdGVkSW5WZXIiOiIzNy44LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Matthias Kay <matthias.kay@hlag.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add OpenTofu support
2 participants