-
Notifications
You must be signed in to change notification settings - Fork 0
Update dependency gruntwork-io/terragrunt to v0.97.2 #93
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
Open
renovate
wants to merge
1
commit into
main
Choose a base branch
from
renovate/gruntwork-io-terragrunt-0.x
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
9cbfdbe to
edef5a9
Compare
8613e05 to
1b41f57
Compare
1b41f57 to
4197278
Compare
4197278 to
85896cb
Compare
85896cb to
84cbf21
Compare
84cbf21 to
390d4a8
Compare
390d4a8 to
2dcd68f
Compare
2dcd68f to
38ca2dc
Compare
38ca2dc to
de42646
Compare
de42646 to
2ff0cde
Compare
a2d3c63 to
6eda2b8
Compare
6eda2b8 to
fe02a3c
Compare
fe02a3c to
caf567f
Compare
a1b12a2 to
b21c12c
Compare
b21c12c to
6845860
Compare
6845860 to
4b3c2da
Compare
4b3c2da to
3fbe9d0
Compare
3fbe9d0 to
f00c975
Compare
f00c975 to
7d04cfa
Compare
7d04cfa to
3c0b0ca
Compare
3c0b0ca to
c99ec99
Compare
c99ec99 to
7e36c95
Compare
7e36c95 to
95c660f
Compare
95c660f to
4988385
Compare
4988385 to
c88f92d
Compare
c88f92d to
aa44951
Compare
aa44951 to
b77c4ad
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v0.36.6→v0.97.2Release Notes
gruntwork-io/terragrunt (gruntwork-io/terragrunt)
v0.97.2Compare Source
🏎️ Performance Improvements
Partial parse used for
get_working_dir()To assess where Terragrunt is going to run OpenTofu, it needs partially parsed information from the relevant
terragrunt.hclfile of the unit running the HCLget_working_dir()function. The function was performing a full parse of theterragrunt.hclfile, which can be slow for users with large HCL configurations.Given that the parse only requires access to the value of
sourcein theterraformblock, a partial parse is now performed by the function, only looking at the contents of theterraformblock, improving performance significantly.🐛 Bug Fixes
False positive parsing errors suppressed
When parsing an include that defined dependencies, the HCL parser used by Terragrunt would emit spurious errors that are internally ignored. Those messages are now suppressed.
Signal propagation for interrupts fixed
A bug in how Terragrunt forwarded signals to processes it spawned (like running
tofu) resulted in underlying processes receivingSIGKILLsignals rather than the original signal (e.g.SIGINT) sent to the Terragrunt process. That has been fixed.🧹 Chores
Avoiding
contextchecksuppressionWhile not changing much functionally in Terragrunt, this release did involve quite a lot of changes to Terragrunt internals. The majority of these changes related to better propagation of the Golang [context](https://pkg.go.dev/context) object to better obey Golang best practices. These issues were reported by the
contextchecklinter in the codebase, but the findings were suppressed due to the scope of work required to address them.These changes should make it so that context is propagated correctly more reliably in the codebase, increasing the usefulness of things like OpenTelemetry tracing and reduced resource usage.
Note that some public function signatures have changed in the Terragrunt codebase, which may be a breaking change to users consuming Terragrunt as a library. Given that we do not offer any stability guarantees for usage of Terragrunt as a library, these changes are still to be included in a patch release.
What's Changed
get_working_dir()by @yhakbar in #5318contextchecksuppression by @yhakbar in #5320Full Changelog: gruntwork-io/terragrunt@v0.97.1...v0.97.2
v0.97.1Compare Source
✨ New Features
All HCL functions instrumented with OpenTelemetry
All Terragrunt HCL functions now emit OpenTelemetry spans when they run, making it easier to understand HCL function usage and performance.
HCL parsing telemetry improved
Additional fidelity has been added to traces emitted during parsing to give insight as to why configuration parsing is being performed, and how.
🐛 Bug Fixes
plan -destroycalled correctly for--filter-affectedA bug in the logic for
--filter-affectedresulted in removed units getting planned/applied instead of being destroyed when users supplied--filter-allow-destroy. That bug has been fixed.Nested spans in track parents appropriately even when the
TRACEPARENTenvironment variable is used.A bug in the logic for propagating
TRACEPARENTas the ultimate parent of traces started in Terragrunt prevented child traces from properly tracking parent spans. That bug has been fixed.Reports on runs in worktrees now use relative directories to worktree root
Instead of displaying runs of units in Git worktrees during Git-based filter expression runs with the absolute path of their directories in a temporary directory, they now display with the path to the unit relative to the root of the worktree.
Unnecessary relationship discovery prevented
Discovery of relationships between units has been made opt-in in the discovery process. This will result in no changes to usage of commands like
run --all, but will significantly improve the performance of commands likelistandstack generate.What's Changed
plan -destroyfor--filter-affectedby @yhakbar in #5295MapToSliceandStringListInsertby @yhakbar in #5297Full Changelog: gruntwork-io/terragrunt@v0.97.0...v0.97.1
v0.97.0Compare Source
⚒️ Breaking Changes
The
--queue-strict-includeflag is deprecatedTerragrunt no longer automatically includes dependencies of included units. As such the
--queue-strict-includeflag is no longer useful in the Terragrunt CLI.The flag has been deprecated, and no longer does anything. This flag will not be removed before 2.0.
Run report no longer reports
--queue-exclude-diras a reason for exclusionRun reports no longer report on units excluded from runs as a consequence of the
--queue-exclude-dirflag.The
--units-that-includeflag is deprecatedThe
--units-that-includeflag is now an alias for thereading=attribute filter, just like the--queue-include-units-readingflag.Given that the two flags no longer differ in functionality, and that the functionality of the
--units-that-includeis no longer strictly including units that are included, the flag has been deprecated.The
double-starstrict control is completeThe globbing behavior of Terragrunt in CLI flags has been updated to match all paths when ending with a trailing
**.🧪 Experiments Completed
The
filter-flagexperiment is completedThe
filter-flagexperiment is completed, and the--filterflag is now generally available.You can use filter expressions as a single unified API for controlling the Run Queue, replacing the need to use the following CLI flags:
—-queue-include-dir=path—-filter='{./path}'—-queue-exclude-dir=path—-filter='!{./path}'--queue-include-units-reading=root.hcl--filter='reading=root.hcl'--units-that-include=root.hcl--filter='reading=root.hcl'--queue-include-external-dependencies--filter='{./**}...'--queue-excludes-file=excludes.txt--filters-file='filters.txt'*--graph--filter='...{.}'--queue-excludes-filedoes not directly translate to the kind of file you can use for a--filters-file. To learn more, see the documentation.The table above also explains the aliasing that has been done internally to replace queue flags with their filter equivalents. The aliasing for these queue flags is present purely for backwards compatibility purposes, but they are not going to emit deprecation warnings, and will not be removed before the Terragrunt 1.0 release.
You are heavily encouraged to adopt the new
--filterflag for your infrastructure targeting needs as soon as feasible in your workflows. It will offer a significantly more flexible and powerful experience.To learn more see the Filters feature documentation.
🐛 Bug Fixes
The
get_original_terragrunt_dir()function is now supported interragrunt.stack.hclfilesWhen authoring explicit stacks, using the
get_original_terragrunt_dir()HCL function interragrunt.stack.hclfiles will now return the directory where theterragrunt.stack.hclfile lives, even when the configuration is read from another stack/unit usingread_terragrunt_config().Using Git-based expressions with the
--out-dirflag is fixedWhen using Git-based expressions using the
--filterflag, the relative path of units relative to their respective Git worktree roots is used for determining where the plan file will be saved, rather than a path in the relevant Git worktree.Color for output fetching is suppressed more reliably
Terragrunt will use
tofu output -json/terraform output -jsonmore reliably when users expect a lack of colors (like when colors are suppressed for Terragrunt).What's Changed
testing/synctestto makeTestWriteUnitLevelSummarymore reliable by @yhakbar in #5253get_original_terragrunt_dirduring stack generate by @philipmckenna-symphony in #5176ListContainsandListEqualsand using standard library instead by @yhakbar in #5221New Contributors
Full Changelog: https://github.com/gruntwork-io/terragrunt/compare/v0.96.1..v.0.97.0
v0.96.1Compare Source
🧪 Experiments Updated
The
--filter-affectedflag has more robust determination of the default branch in a Git repositoryThe
--filter-affectedflag will now use Git plumbing to interrogate the default branch as considered by the remote repository before falling back to interrogating local configurations for determination of a default branch (remember that you must use the filter-flag experiment to try this out).Git-based filter expressions now warn users when using local state
Usage of
--filterGit-based expressions in combination with local state will now emit a warning, recommending usage of remote states (remember that you must use the filter-flag experiment to try this out).See the warning at the bottom of Git-based expressions documentation for more information.
OpenTelemetry traces added for filter evaluation
Filter evaluation now emits OpenTelemetry spans and metrics, including filter resolution details, evaluation duration, and filtering scope. This helps teams analyze performance and pinpoint bottlenecks in filtering with large Terragrunt repositories.
🐛 Bug Fixes
Path-based filters targeting external paths fixed
A bug in the parsing of path-based filter expressions in the
--filterflag of the filter-flag experiment prevented parsing of path-based filters for external paths (e.g.--filter ../external-dir). This bug has been fixed.HTTPS Git CAS URLs fixed
A bug in the parsing of source URLs with forced usage of the Git protocol (e.g.
git::https://github.com/acme/catalog) prevented using the cas experiment with HTTPS Git URLs with forced usage of the Git protocol. This bug has been fixed.Regression of support for root
terragrunt.hclfixedA bug in the processing of
--queue-exclude-dirresulted in prefix based matching of non-glob expressions in--queue-exclude-dirvalues. This broke backwards compatibility for users with a rootterragrunt.hclfile instead of a differently named file for the root include (e.g.root.hcl). This bug has been fixed.Note that you are still advised to migrate away from using a root terragrunt.hcl as soon as possible for your team. We will maintain backwards compatibility until at least 2.0, however.
What's Changed
terragrunt.hclby @yhakbar in #5249--queue-include-externalisn't necessary when using the--filterflag by @yhakbar in #5216--filterresults in minimal parsing by @yhakbar in #5229util.JoinPathby @yhakbar in #5219Full Changelog: gruntwork-io/terragrunt@v0.96.0...v0.96.1
v0.96.0Compare Source
🛠️ Breaking Changes
The
--no-destroy-dependencies-checkflag has been deprecatedThe default behavior of Terragrunt with respect to checking dependents during destroys has been inverted. As a consequence the
--no-destroy-dependencies-checkhas been deprecated, and a new--destroy-dependencies-checkflag has been introduced.Previously, Terragrunt would automatically parse all configurations that might depend on a unit being destroyed to warn users that the destroyed configuration might orphan other units that depend on it. This was frequently undesirable behavior due to the fact that it introduced additional unnecessary work (parsing all HCL configurations unnecessarily), and could introduce errors if users had unrelated invalid HCL configurations.
Terragrunt now requires that users opt-in to this behavior via the new
--destroy-dependencies-checkflag, which enables the destroy check, and will not perform the destroy check by default.To learn more, see the no-destroy-dependencies-check strict control.
The
--disable-command-validationflag has been deprecatedTerragrunt no longer performs command name validation when passing commands to OpenTofu/Terraform from Terragrunt when using the
runcommand. This makes the--disable-command-validationflag unnecessary, as the lack of validation is now the default behavior.Previously, Terragrunt had no way to explicitly indicate that a command being used on the Terragrunt CLI was intended as a passthrough to the OpenTofu/Terraform CLI, so it was important that validation be done on the command being supplied on the Terragrunt CLI.
Since completion of the CLI Redesign, this has changed significantly. Users now have explicit shortcuts on the Terragrunt CLI for common OpenTofu/Terraform commands and an explicit interface for passing through OpenTofu/Terraform commands to the OpenTofu/Terraform CLIs using the
runcommand. By removing this validation, Terragrunt will now automatically support new OpenTofu/Terraform commands in future versions of the tools and allow for greater flexibility in IaC Engines, as novel commands can be introduced.To learn more, see the disable-command-validation strict control.
The
--experimental-engineflag now enables theiac-engineexperimentThe experimental IaC Engine feature was introduced in Terragrunt prior to the introduction of the experiment system. As such, it wasn’t enabled when users enabled experiment mode, and didn’t have a dedicated section in the experiments docs.
The
--experimental-engineflag is now an alias for explicitly enabling theiac-engineexperiment, and using IaC Engines will be allowed when using Terragrunt in experiment mode. This increases consistency with how experimental features are managed in Terragrunt, and reduces the surface area users have to be aware of in the Terragrunt CLI.Note that you can explicitly disable usage of engines now with the
--no-engineflag, even when the experiment is active.To learn more, see the iac-engine experiment.
The
--dependency-fetch-output-from-stateflag now enables thedependency-fetch-output-from-stateexperimentThe experimental —dependency-fetch-output-from-state flag was introduced in Terragrunt prior to the introduction of the experiment system. As such, it wasn’t enabled when users enabled experiment mode, and didn’t have a dedicated section in the experiments docs.
The
--dependency-fetch-output-from-stateflag is now an alias for explicitly enabling thedependency-fetch-output-from-stateexperiment, and Terragrunt will automatically attempt to fetch outputs from backend state when in experiment mode. This increases consistency with how experimental features are managed in Terragrunt, and reduces the surface area users have to be aware of in the Terragrunt CLI.Note that you can explicitly disable fetching output from state with the
--no-dependency-fetch-output-from-stateflag, even when the experiment is active.To learn more, see the dependency-fetch-output-from-state experiment.
🧪 Experiments Updated
The
filter-flagexperiment now supports the--filters-fileflagThe
--filters-fileflag has been introduced to allow for the application of multiple filters as defined in a newline-delimited text file, similar to the existing--excludes-fileflag (remember that you must use the filter-flag experiment to try this).$ terragrunt find --filters-file custom-filters.txt # No results in `./unstable` discovered.When the
filter-flagexperiment is active, Terragrunt will automatically parse and apply filters found in a.terragrunt-filtersfile, similar to how it automatically parses and applies excludes found in a.terragrunt-excludesfile.To explicitly disable usage of filter files (including the automatic
.terragrunt-filtersfile), use the--no-filters-fileflag.Unlike the
--excludes-file, usage of the--filters-fileflag also allows for always filtering for particular configurations.To learn more, see the filters file documentation.
🐛 Bug Fixes
Unnecessary
.terragrunt-cachedirectory no longer generated inrun --allrunsFixed a regression where
run --allwould create empty.terragrunt-cachedirectories in the current working directory, even when not needed.What's Changed
--destroy-dependencies-checkby @yhakbar in #5204--filters-fileflag by @yhakbar in #5111--disable-command-validationby @yhakbar in #5189iac-engineexperiment by @yhakbar in #5203dependency-fetch-output-from-stateexperiment by @yhakbar in #5201.terragrunt-cachedir at the stack level by @yhakbar in #5231--filters-fileflag by @yhakbar in #5112New Contributors
Full Changelog: gruntwork-io/terragrunt@v0.95.1...v0.96.0
v0.95.1Compare Source
🧪 Experiments Updated
The
filter-flagexperiment now supports the--filter-affectedflagThe
--filter-affectedflag has been introduced as an convenience alias for--filter [main...HEAD](remember that you must use the filter-flag experiment to try this).Note that if you have local Git configurations that results in a different branch being your default branch, that branch will be used instead of
main.🐛 Bug Fixes
Integration of
--queue-strict-includewith--queue-include-units-readingfixedA regression in
--queue-strict-includeresulted in empty run queues when using a combination of--queue-strict-includewith--queue-include-units-reading. That bug has been resolved.Integration of
--sourcewithrun --allfixedA regression in
--sourceprevented it from working correctly in combination withrun --all, resulting in empty run queues. That bug has been resolved.Integration of Git-expressions with explicit stacks
A bug in the implementation of explicit stack generation for Git-expressions prevented stacks from being generated in Git worktrees when using Git-expressions in the
filter-flagexperiment. That bug has been resolved.🧹 Chores
Dependencies updates
What's Changed
--filter-affectedflag by @yhakbar in #5109TestExcludeDirstests by @yhakbar in #5215TestAwsDocsTerralithToTerragruntGuidetest by @yhakbar in #5220run --allwith--sourceby @yhakbar in #5209--queue-strict-includeintegration with--queue-include-units-readingby @yhakbar in #5222--filter-affectedby @yhakbar in #5110Full Changelog: gruntwork-io/terragrunt@v0.95.0...v0.95.1
v0.95.0Compare Source
🛠️ Breaking Changes
The
--queue-exclude-externalflag has been deprecatedPreviously, Terragrunt would automatically pull in external dependencies (dependencies outside the current working directory when running
terragrunt run --all) into the run queue.To prevent this behavior, users had to manually supply the
--queue-exclude-externalflag. This has caused significant confusion and unexpected behavior for users over the duration of it’s existence in the Terragrunt CLI. To prevent this unexpected behavior for users and follow the principle of least surprise, this flag has been deprecated and its behavior is now the default in Terragrunt.To explicitly request inclusion of external dependencies in the run queue, use the —queue-include-external flag.
⚙️ Process Updates
OpenTofu 1.11.x added to compatibility matrix
We are now continuously testing against OpenTofu 1.11.1 in our Continuous Integration testing, and have updated the compatibility matrix to reflect that.
🧪 Updated Experiments
The
filter-flagexperiment now supports Git-based expressionsThe
--filterflag can now be used to filter units based on changes in Git history (remember that you must use the filter-flag experiment to try this).For more information, see the dedicated documentation on Git-Based Filtering.
🐛 Bug Fixes
Units now properly flush stdout in
run --allA regression in unit stdout flushing caused stdout for unit logs to hang pending resolution of
run --allruns. This regression has been fixed to ensure that logs are streamed in real time again.Queue entries now properly run, even if dependent units are excluded
A bug in run queue optimization made it so that excluding the dependent of a unit within a multi-unit run queue would incorrectly exclude the dependency unit from the run queue. This bug has been resolved, and units are now properly included, even if their dependents are excluded.
Provider cache server only contacts relevant registries
The provider cache server was incorrectly establishing a connection with multiple registries even though only one registry for a given IaC tool run by Terragrunt. For users with network-restricted environments, this could cause problems. Terragrunt will now only contact the relevant registry for a given IaC tool unless users explicitly request for usage of multiple registries.
📖 Documentation Updates
Provider cache server no longer documented as experimental
The Provider Cache Server has been used in production by a good portion of the Terragrunt community based on voluntary community reporting. The need for the feature is also mitigated by advances in OpenTofu that makes the Automatic Provider Cache Dir the default solution all Terragrunt users using OpenTofu ≥ v1.10.0.
As such, the Provider Cache Server has been promoted to a generally available feature that is exclusively opt-in for users that cannot benefit from the Automatic Provider Cache Dir feature, or are better served by the Provider Cache Server due to scale or platform limitations.
What's Changed
--filter-allow-destroyflag by @yhakbar in #5210TestAwsDocsTerralithToTerragruntGuideuntil we get a new release by @yhakbar in #5208--filterGit support by @yhakbar in #5108--queue-exclude-dir/--filterequivalence test by @yhakbar in #5078Full Changelog: gruntwork-io/terragrunt@v0.94.0...v0.95.0
v0.94.0Compare Source
✨ Features
NOTE: Although this release is marked as backward incompatible, it is functionally compatible as nothing has been changed in Terragrunt internals. The minor version release is useful to mark the change in Terraform version that is being tested.
What's Changed
Full Changelog: gruntwork-io/terragrunt@v0.93.13...v0.94.0
v0.93.13Compare Source
🐛 Bug Fixes
Catalog module source URL construction
Fixed malformed version-pinned catalog module URLs where
TerraformSourcePath()incorrectly placed//moduleDirafter?ref=, ensuring correct root and submodule URL formatting.What's Changed
Full Changelog: gruntwork-io/terragrunt@v0.93.12...v0.93.13
v0.93.12Compare Source
🐛 Bug Fixes
False positive errors during dependent units discovery
Reduced false-positive log messages emitted while discovering dependent units during destroy operations.
What's Changed
Full Changelog: gruntwork-io/terragrunt@v0.93.11...v0.93.12
v0.93.11Compare Source
🐛 Bug Fixes
Stack files matching
Fixed stack detection so only files whose base name exactly matches the default stack name are treated as stack files.
What's Changed
Full Changelog: gruntwork-io/terragrunt@v0.93.10...v0.93.11
v0.93.10Compare Source
🐛 Bug Fixes
Handling of disabled units in discovery
Discovery now skips units that are marked as disabled.
What's Changed
Full Changelog: gruntwork-io/terragrunt@v0.93.9...v0.93.10
v0.93.9Compare Source
✨ New Features
Added support for Openbao encryption provider
Key provider now supports
openbao🐛 Bug Fixes
Fixed error in calling sensitive() function in HCL
HCL sensitive() function now correctly handles values and calls without errors.
What's Changed
Full Changelog: gruntwork-io/terragrunt@v0.93.8...v0.93.9
v0.93.8Compare Source
⚙️ Process Improvements
Terragrunt static executables
What's Changed
Full Changelog: gruntwork-io/terragrunt@v0.93.7...v0.93.8
v0.93.7Compare Source
What's Changed
OriginalTerragruntConfigPathto parse options by @kazsakke in #5090New Contributors
Full Changelog: gruntwork-io/terragrunt@v0.93.6...v0.93.7
v0.93.6Compare Source
⚙️ Process Improvements
Terragrunt release automation moved to GitHub Actions
The release automation for Terragrunt has moved to GitHub Actions. With this move, Terragrunt releases now support:
.zipand.tar.gzrelease artifacts)You can still download standalone executables from release assets for backward compatibility.
🧪 Experiments Updated
The
filter-flagexperiment now supports thesource=attributeThe
--filterflag can now be used to filter units by their usage of particular OpenTofu/Terraform modules in theirterraformsourceblocks (remember that you must use thefilter-flagexperiment to try this).For more information, see the filter feature documentation.
What's Changed
--filtersource=support by @yhakbar in #5075--filterforsource=attribute by @yhakbar in #5076Full Changelog: gruntwork-io/terragrunt@v0.93.5...v0.93.6
v0.93.5Compare Source
🧪 Experiments Updated
The
filter-flagexperiment now supports--filterinstack generateThe
--filterflag can now be used in thestack generatecommand, and any command that performs stack generation, e.g.run --all(remember that you must use thefilter-flagexperiment to try this).The
--filterflag works in a slightly unique way when used to control stack generation in that it needs to be explicitly restricted to stacks for it to impact stack generation using thetype=stackattribute filter.e.g.
The reason for this is that stack generation can also be done automatically as part of other commands, like
run, and thus we need to make it clear that we’re trying to control stack generation rather than run behavior.For more information, see the filter feature documentation
What's Changed
-filterinstack generateby [@yhakbar](Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), 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.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.