Skip to content

Conversation

@james00012
Copy link
Contributor

Summary

This PR introduces new helper functions for terragrunt run-all operations and refactors the helm module by removing unnecessary empty document handling.

Changes

New Terragrunt Helpers

  • ApplyAll/ApplyAllE: Execute terragrunt run-all apply with auto-approve
  • DestroyAll/DestroyAllE: Execute terragrunt run-all destroy with auto-approve
  • PlanAllExitCode/PlanAllExitCodeE: Execute terragrunt run-all plan and capture detailed exit codes (0, 1, or 2)
  • Added comprehensive test coverage for all new functions

Helm Module Refactoring

  • Removed empty YAML document handling logic from modules/helm/template.go
  • Removed corresponding empty document test cases from modules/helm/template_test.go

Test Plan

  • All new terragrunt functions include unit tests that verify behavior
  • Tests cover both success and error scenarios
  • Existing helm tests continue to pass after removing empty document handling

Files Changed

  • modules/terragrunt/apply.go (new)
  • modules/terragrunt/apply_test.go (new)
  • modules/terragrunt/destroy.go (new)
  • modules/terragrunt/destroy_test.go (new)
  • modules/terragrunt/plan.go (new)
  • modules/terragrunt/plan_test.go (new)
  • modules/terragrunt/cmd.go (updated)
  • modules/helm/template.go (updated)
  • modules/helm/template_test.go (updated)

This change introduces new helper functions for terragrunt run-all operations
and removes unnecessary empty document handling from the helm module.

Changes:
- Add ApplyAll/ApplyAllE functions to run terragrunt apply with run-all
- Add DestroyAll/DestroyAllE functions to run terragrunt destroy with run-all
- Add PlanAllExitCode/PlanAllExitCodeE to get detailed exit codes from plan operations
- Add comprehensive test coverage for the new terragrunt helpers
- Remove empty YAML document handling from helm/template.go (no longer needed)
- Remove corresponding empty document tests from helm/template_test.go
Add deprecation warnings to all terragrunt stack-related functions:
- TgStackRun/TgStackRunE: Recommend using ApplyAll/ApplyAllE
- TgStackClean/TgStackCleanE: Recommend using DestroyAll/DestroyAllE
- TgStackGenerate/TgStackGenerateE: Recommend using PlanAllExitCode/ApplyAll
- TgOutput/TgOutputE/TgOutputJson/TgOutputJsonE: Recommend using terraform.Output methods

The 'stack' commands are deprecated in Terragrunt and users should migrate
to the newer run-all commands or individual module operations.
Critical fixes:
- Rename getExitCodeForTerraformCommandE to getExitCodeForTerragruntCommandE
  for clarity (it runs terragrunt, not terraform)

Warning fixes:
- Rename TestApplyAllTgError to TestApplyAllNoError (test uses no-error fixture)
- Rename TestDestroyAllTgError to TestDestroyAllNoError and add assertions
- Add proper assertion for destroy output to ensure it completes successfully

Minor improvements:
- Update function comments to explicitly specify 'run-all' commands
- Standardize comment formatting (returns vs return, exit code consistency)
@james00012 james00012 merged commit 798180b into main Oct 16, 2025
2 of 3 checks passed
@jeromepochat
Copy link

jeromepochat commented Oct 27, 2025

Hi @james00012!
It looks this PR unintentionally reverts #1597

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.

4 participants