Celebrating OpenTofu GA With Our New CI Testing Feature!

Roni Frantchi
Director of Engineering, OpenTofu Founding Team

After a whirlwind five months since HashiCorp's license change last summer, we are happy to announce that OpenTofu is now officially released as a stable, tested, and production-ready product – a true drop-in replacement for Terraform v1.6.

Together with the rest of the steering committee, our vision for OpenTofu is to create a community-driven solution that's impartial and modular. By combining these elements, we aim to foster future innovation, ensuring a thriving and robust IaC ecosystem for years to come.

To support the release we are rolling CI Testing, leveraging the new [.code]tofu test [.code] capability available in OpenTofu v1.6. 

More on that, the OpenTofu roadmap, and our other OpenTofu news below.

Expanding OpenTofu Support with New CI Testing Feature

OpenTofu is hitting the ground running with a new public registry and a new tofu test  feature that allows users to run a series of checks against their configuration, before resource deployment.  

To make a long story short, the new feature allows users to define conditions that have to be met for a successful run. For example, to have the content of a file say “Hello world!”:

run "test" {
  assert {
    condition     = file(local_file.test.filename) == "Hello world!"
    error_message = "Incorrect content in ${local_file.test.filename}."
  }
}

Expanding on this, today we are introducing a new CI Testing feature that seamlessly incorporates testing capabilities into our private module registry—an existing tool our customers use to manage inventories of their trusted reusable modules.

enable testing in env0

Successful runs and (more importantly) test failures will be visible in PR, Git, and our system, helping to quickly pinpoint issues. This augments the Registry screen to act as a ‘single pane of glass’ that you can use to monitor the health of your modules across the entire architecture.

tofu test env0 integration

Drilling down you can view test logs for each module. You can also add custom variables on the fly,  just for the test runs,  which could be very useful for quick troubleshooting.

The result is easy access to actionable context, which will help env0 users reduce the time and effort required for identifying and fixing issues, as well as for the ongoing management of their module inventory. 

CI Testing is rolling out as Beta, currently available to all env0 users - Free plan included. Importantly, it will be our first OpenTofu-exclusive feature, not supported in legacy Terraform versions (1.5 and below). 

If you are interested in experiencing it firsthand or just trying using OpenTofu in general, you can do it with ease by switching from Terraform to OpenTofu with just a few clicks: 

Note: Recently we have also rolled out OpenTofu support for Terragrunt, the community’s favorite Terraform and OpenTofu wrapper to seamlessly - allowing Terragrunt deployment to seamlessly run OpenTofu behind the scenes.

OpenTofu Roadmap Ahead

With this first GA release, OpenTofu serves as the only  drop-in, open-source alternative to Terraform, allowing everyone to keep using their familiar configuration without compromising the migration to using BSL software. 

With this initial goal achieved, we are now gearing up to reap the fruit of FOSS - collaborating with the community toward long-awaited, highly anticipated enhancements and features. Here are three we can confirm to be coming soon:

1. Client-Side State Encryption

Client-side state encryption is a priority for our next (v1.7) release. This feature was proposed years ago for Terraform, but was never implemented in the free version (only in the premium Terraform Cloud and Terraform Enterprise offerings).

With the next version of OpenTofu, it will become a standard part of the platform. This is revolutionary in terms of Infrastructure-as-Code security, decoupling this capability from a paywall. You can delve deeper into the GitHub Issue. 

2. Better Parameterization

Currently, you are unable to use variables or locals in the many commonly used “areas” of the Terraform/Opentofu configuration (e.g., module source or a backend configuration). This leads to inefficiencies, inconsistencies, and frustration, forcing users to constantly repeat themselves when instantiating providers, modules, or backends.

To improve the situation we are planning to expand the use of variables in OpenTofu, in a way that would enable them to be used in module sources, backend configurations, provider configurations, etc. This will help users DRY out their configuration and save valuable energy and time in the process.

3. Backends as Plugins

OpenTofu has been getting a lot of requests for adding new state backends. To address these we will be working to provide better extensibility, making the process of creating a state backend simpler and more accessible to everyone.

Being able to integrate with as many tools as possible, and extending a platform’s capabilities as much as possible, is what Open Source is all about.  

OpenTofu Day at KubeCon EU

KubeCon OpenTofu day EU

Building on the momentum of recent announcements, this is also a good time to mark your calendars for the first major in-person community event—OpenTofu Day on March 19, 2024. 

Sponsored by the Linux Foundation and co-located with KubeCon Europe 2024 in Paris, it promises to be an exciting gathering for the OpenTofu community. For us, this will be a great opportunity to connect in person with other members whose support has been fueling our work for these past few months. 

There will be some great talks as well, of course, with dozens of proposals for papers already submitted through December. Presentations will discuss the future of the Infrastructure-as-Code ecosystem with topics ranging from supply chain security to cohesion between OpenTofu and Terraform, and even a look ahead “beyond OpenTofu.” 

Use this link to register for KubeCon Europe and make sure to follow the #OpenTofuDay on Twitter and LinkedIn to stay in the loop.

Sincerely, Thank You All

As of now, OpenTofu boasts a track record of over 42,000 downloads. OpenTofu's main repository has earned over 16,700 stars, accompanied by 580 forks, 60 committers, and over 1,000 pull requests and issues. 

Moreover, several organizations are supporting our project as sponsors. Notably, Cloudflare has generously contributed hosting and CDN services for our new public registry, and BuildKite sponsored PackageCloud, enabling us to successfully launch packages for apt and yum repos and Debian and RPM archives.

With this announcement, we want to seize the opportunity to extend our heartfelt gratitude to all individuals and organizations who helped make this project a reality. 

Sincerely, thank you all.

After a whirlwind five months since HashiCorp's license change last summer, we are happy to announce that OpenTofu is now officially released as a stable, tested, and production-ready product – a true drop-in replacement for Terraform v1.6.

Together with the rest of the steering committee, our vision for OpenTofu is to create a community-driven solution that's impartial and modular. By combining these elements, we aim to foster future innovation, ensuring a thriving and robust IaC ecosystem for years to come.

To support the release we are rolling CI Testing, leveraging the new [.code]tofu test [.code] capability available in OpenTofu v1.6. 

More on that, the OpenTofu roadmap, and our other OpenTofu news below.

Expanding OpenTofu Support with New CI Testing Feature

OpenTofu is hitting the ground running with a new public registry and a new tofu test  feature that allows users to run a series of checks against their configuration, before resource deployment.  

To make a long story short, the new feature allows users to define conditions that have to be met for a successful run. For example, to have the content of a file say “Hello world!”:

run "test" {
  assert {
    condition     = file(local_file.test.filename) == "Hello world!"
    error_message = "Incorrect content in ${local_file.test.filename}."
  }
}

Expanding on this, today we are introducing a new CI Testing feature that seamlessly incorporates testing capabilities into our private module registry—an existing tool our customers use to manage inventories of their trusted reusable modules.

enable testing in env0

Successful runs and (more importantly) test failures will be visible in PR, Git, and our system, helping to quickly pinpoint issues. This augments the Registry screen to act as a ‘single pane of glass’ that you can use to monitor the health of your modules across the entire architecture.

tofu test env0 integration

Drilling down you can view test logs for each module. You can also add custom variables on the fly,  just for the test runs,  which could be very useful for quick troubleshooting.

The result is easy access to actionable context, which will help env0 users reduce the time and effort required for identifying and fixing issues, as well as for the ongoing management of their module inventory. 

CI Testing is rolling out as Beta, currently available to all env0 users - Free plan included. Importantly, it will be our first OpenTofu-exclusive feature, not supported in legacy Terraform versions (1.5 and below). 

If you are interested in experiencing it firsthand or just trying using OpenTofu in general, you can do it with ease by switching from Terraform to OpenTofu with just a few clicks: 

Note: Recently we have also rolled out OpenTofu support for Terragrunt, the community’s favorite Terraform and OpenTofu wrapper to seamlessly - allowing Terragrunt deployment to seamlessly run OpenTofu behind the scenes.

OpenTofu Roadmap Ahead

With this first GA release, OpenTofu serves as the only  drop-in, open-source alternative to Terraform, allowing everyone to keep using their familiar configuration without compromising the migration to using BSL software. 

With this initial goal achieved, we are now gearing up to reap the fruit of FOSS - collaborating with the community toward long-awaited, highly anticipated enhancements and features. Here are three we can confirm to be coming soon:

1. Client-Side State Encryption

Client-side state encryption is a priority for our next (v1.7) release. This feature was proposed years ago for Terraform, but was never implemented in the free version (only in the premium Terraform Cloud and Terraform Enterprise offerings).

With the next version of OpenTofu, it will become a standard part of the platform. This is revolutionary in terms of Infrastructure-as-Code security, decoupling this capability from a paywall. You can delve deeper into the GitHub Issue. 

2. Better Parameterization

Currently, you are unable to use variables or locals in the many commonly used “areas” of the Terraform/Opentofu configuration (e.g., module source or a backend configuration). This leads to inefficiencies, inconsistencies, and frustration, forcing users to constantly repeat themselves when instantiating providers, modules, or backends.

To improve the situation we are planning to expand the use of variables in OpenTofu, in a way that would enable them to be used in module sources, backend configurations, provider configurations, etc. This will help users DRY out their configuration and save valuable energy and time in the process.

3. Backends as Plugins

OpenTofu has been getting a lot of requests for adding new state backends. To address these we will be working to provide better extensibility, making the process of creating a state backend simpler and more accessible to everyone.

Being able to integrate with as many tools as possible, and extending a platform’s capabilities as much as possible, is what Open Source is all about.  

OpenTofu Day at KubeCon EU

KubeCon OpenTofu day EU

Building on the momentum of recent announcements, this is also a good time to mark your calendars for the first major in-person community event—OpenTofu Day on March 19, 2024. 

Sponsored by the Linux Foundation and co-located with KubeCon Europe 2024 in Paris, it promises to be an exciting gathering for the OpenTofu community. For us, this will be a great opportunity to connect in person with other members whose support has been fueling our work for these past few months. 

There will be some great talks as well, of course, with dozens of proposals for papers already submitted through December. Presentations will discuss the future of the Infrastructure-as-Code ecosystem with topics ranging from supply chain security to cohesion between OpenTofu and Terraform, and even a look ahead “beyond OpenTofu.” 

Use this link to register for KubeCon Europe and make sure to follow the #OpenTofuDay on Twitter and LinkedIn to stay in the loop.

Sincerely, Thank You All

As of now, OpenTofu boasts a track record of over 42,000 downloads. OpenTofu's main repository has earned over 16,700 stars, accompanied by 580 forks, 60 committers, and over 1,000 pull requests and issues. 

Moreover, several organizations are supporting our project as sponsors. Notably, Cloudflare has generously contributed hosting and CDN services for our new public registry, and BuildKite sponsored PackageCloud, enabling us to successfully launch packages for apt and yum repos and Debian and RPM archives.

With this announcement, we want to seize the opportunity to extend our heartfelt gratitude to all individuals and organizations who helped make this project a reality. 

Sincerely, thank you all.

Logo Podcast
With special guest
Andrew Brown

Schedule a technical demo. See env0 in action.

CTA Illustration