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

Road to 1.0 Deprecated Feature Removal Schedule #3535

Open
yhakbar opened this issue Nov 7, 2024 · 0 comments
Open

Road to 1.0 Deprecated Feature Removal Schedule #3535

yhakbar opened this issue Nov 7, 2024 · 0 comments

Comments

@yhakbar
Copy link
Collaborator

yhakbar commented Nov 7, 2024

On the road to the first major release of Terragrunt 1.0, some breaking changes will take place that remove functionality in Terragrunt.

While features will primarily be introduced as backwards compatible, deprecated features will be gradually removed leading up to 1.0, and remain supported until the next major version, 2.0. More on this can be found here, in the CLI Redesign RFC.

Note that users can also leverage Strict Mode to opt-in to these breaking changes before they occur to confirm that they are ready to adopt the releases where the changes take place. All deprecated functionality will be introduced to a strict mode control before it is fully removed to give users the chance to try out the removal preemptively.

The items listed below will be listed in order of their eventual removal. Initially, they will be listed with To Be Decided (TBD) deadlines for their removal, but as we get closer to 1.0, they will be scheduled, and removed slowly.

This is a living document. If you have concerns or would like to request that the order or deadline for feature removal change, please share your feedback. More may be added to this schedule as we get closer to 1.0.

Removal Schedule

  1. Removal of longstanding deprecated commands (e.g. plan-all) - TBD
  2. Removal of legacy Terragrunt flags (all flags that start with terragrunt-) - TBD
  3. Removal of backend provisioning as default behavior - TBD
  4. Removal of command forwarding by default - TBD
  5. Removal of deprecated commands (e.g. terragrunt-info) - TBD
  6. Removal of behavior where inputs are read from dependencies - TBD
  7. Removal of deprecated runtime controls (skip, retryable_errors) - TBD

Removed Features

The following is a breakdown of the items listed above, and why they are being removed.

Removal of longstanding deprecated commands

For quite a long time, commands like plan-all have been deprecated in favor of the run-all command, which can be used in combination with other commands like plan, apply, etc instead of a dedicated command. Most users have already adopted run-all, so this should be relatively safe to do today.

Removal of legacy Terragrunt flags

As discussed here, by 1.0, Terragrunt users will no longer have to use flags named with a terragrunt- prefix for every flag.

Once there is a new corresponding flag for every existing terragrunt- prefixed flag, the run and exec commands are introduced, and dedicated OpenTofu shortcuts are introduced, the terragrunt- prefixed flags will no longer be necessary. At this stage, these flags can be removed.

Removal of backend provisioning as default behavior

As discussed here, the current default behavior of Terragrunt whereby backend resource provisioning is attempted by default is not desirable, and better alternatives exist.

Once the backend command is introduced, along with the --backend-bootstrap flag, this behavior can be removed from Terragrunt.

Removal of command forwarding by default

As discussed here, the current default behavior of Terragrunt forwarding all commands to OpenTofu/Terraform when they are not native commands in Terragrunt causes a lot of confusion and errors for users.

Once the run command is introduced, along with dedicated OpenTofu command shortcuts, this behavior can be removed.

Removal of deprecated commands

As discussed here, there are numerous instances where existing, infrequently used commands in Terragrunt can be restructured into a better organized, more consistent system.

Once these new commands are introduced to make the existing commands deprecated, legacy commands like terragrunt-info can be removed.

Removal of behavior where inputs are read from dependencies

As discussed here, the current default behavior of Terragrunt where dependencies expose their inputs as accessible values slows Terragrunt configuration parsing significantly.

Given that users can simply forward inputs of dependencies as outputs, this behavior can be removed.

@yhakbar yhakbar pinned this issue Nov 7, 2024
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

No branches or pull requests

1 participant