Release notes

Features

  • #57 - Utilise Grolifant 5.x under the hood and remove deprecated Grolifant APIs.

  • #84 - Allow ability to add one or more files containing variables.

  • #85 - USe --patch-arg and --patch-args in case workarounds are required on the command-lines.

  • #88 - Add OpenTofu support.

  • #92 - Restructure plugins to use a model-based approach. Set minimum Gradle support to 7.3 and JDK to 11.

  • #99 - Support Gitlab as a backend and as provider authentication.

  • #100 - Replace org.ysb33r.terraform.remotestate.terraformcloud plugin with direct backend support in org.ysb33r.terraform.base plugin.

  • #101 - Restructure Terraform wrapper plugin and add an equivalent OpenTofu plugin.

  • #102 - Allow AwsSecrets to extract appropriate AWS environment variables on demand.

  • #103 - Support taint and untaint commands for terraform and tofu.

  • #104 - All tasks within one workspace have an execution order.

  • #105 - tf*Init* tasks will lock plugin cache directory access during execution.

  • #106 - Allow a source set to manage its own plugin cache directory.

  • #107 - Place an execution sequence in place for source sets.

  • #108 - All tool-executing tasks in a source set must not run in parallel.

Bugs

  • #109 - Source sets other than the default is relying on the incorrect init task.

Other

  • #83 - Update bootstrap pages about the application of org.ysb33r.(terraform|opentofu).rc plugin to root projects of multi-project setups.

  • #89 - Plugin fails compatibility testing using GradleTest v3.0.0 and Java 8,

Breaking changes

  • remoteStateVarProvider is now a direct member of the source set and is tied to the backend that is utilised by the source set.

  • The org.ysb33r.terraform.aws plugin has been replaced with a simpler, but more efficient org.ysb33r.iac.aws.assumerole plugin.

  • The org.ysb33r.terraform.check plugin has been dropped. Formatting is now part of the org.ysb33r.terraform plugin.

  • The org.ysb33r.terraform.remotestate.s3 plugin has been dropped. S3 remote state is supported in org.ysb33r.terrform.base and org.ysb33r.terraform plugins.

  • The org.ysb33r.terraform.remotestate.terraformcloud plugin has been dropped. Legacy Terraform Cloud is supported directly in org.ysb33r.terraform.base and org.ysb33r.terraform plugins.

  • The org.ysb33r.terraform.gitlab plugin has been dropped.

  • Variables can no longer be configured on a the terraform extension on or on tasks. All variables need to be configured within the source set or using a sourceSets.all.variables approach.

  • Text templates for backends are no longer supported. They were unwieldy to use, and a pure all-tokens template is now automatically used.

  • Update access to the plugin cache directory is controlled via a locking mechanism. Turn this off via terraformrc or opentofurc if you do not need it.

Contributors

A special thanks goes to the following contributors who carried us through 1.x releases

Dealing with concurrency in the execution of native Terraform and OpenTofu processes in a non-trivial matter. Here we have to thank the following people for their very useful suggestions and code examples leading up to the 2.0 release:

Bugs

  • #81 - Support ARM architecture on MacOSX.

  • #86 - SourceSet output variables do not always read from the correct sourceset.

Other

  • #80 - use Grolifant 3.0.1 supporting gradle 8, after using Grolifant 2

  • Default version of Terraform is 1.8.0.