|
| 1 | +# Feature Flags |
| 2 | + |
| 3 | +Pipelines supports optional feature flags that allow you to enable or disable specific behaviors. You can configure these flags by setting them as environment variables within your [HCL](/2.0/reference/pipelines/configurations-as-code/api#env-block) or [YAML](/2.0/reference/pipelines/configurations#env) configuration files. |
| 4 | + |
| 5 | + |
| 6 | +## Available Flags |
| 7 | + |
| 8 | +#### `PIPELINES_FEATURE_EXPERIMENT_ALL` |
| 9 | +<ul> |
| 10 | +<li> |
| 11 | +Enables all Pipelines experiment flags. |
| 12 | +</li> |
| 13 | +<li> |
| 14 | +**Default Value**: Disabled |
| 15 | +</li> |
| 16 | +<li> |
| 17 | +**How to Enable**: Set to `"true"` |
| 18 | +</li> |
| 19 | +</ul> |
| 20 | + |
| 21 | +#### `PIPELINES_FEATURE_EXPERIMENT_AGGRESSIVE_CONSOLIDATION` |
| 22 | +<ul> |
| 23 | +<li> |
| 24 | +Enables Pipelines to consolidate as many Terragrunt plan/apply changes as possible into a single `run-all` job. This leads to less duplicated work e.g. when both FileChanged and a EnvCommonChanged should trigger a plan in the same unit. When [consolidate_added_or_changed](/2.0/reference/pipelines/configurations-as-code/api#consolidate_added_or_changed) is enabled this will include Module Changed / Added jobs. |
| 25 | + |
| 26 | +This behavior will likely become the default in a major release of Pipelines but is currently opt-in due to being a breaking change to functionality. |
| 27 | +</li> |
| 28 | +<li> |
| 29 | +**Default Value**: Disabled |
| 30 | +</li> |
| 31 | +<li>**How to Enable**: Set to `"true"`</li> |
| 32 | +</ul> |
| 33 | + |
| 34 | +#### `PIPELINES_FEATURE_EXPERIMENT_COLOCATED_FILE_UNIT_CHANGE_DETECTION` |
| 35 | +<ul> |
| 36 | +<li> |
| 37 | +Enables changes to files within a Terragrunt Unit to be detected as a ModuleChanged job instead of a FileChanged job. A Terragrunt Unit is any directory excluding the root of the repository containing a `terragrunt.hcl` file. |
| 38 | + |
| 39 | +E.g. given a repository containing the following files: |
| 40 | +``` |
| 41 | +tags.yml |
| 42 | +dir1/terragrunt.hcl |
| 43 | +dir1/myvars.json |
| 44 | +``` |
| 45 | + |
| 46 | +When this flag is enabled Pipelines will detect changes to `dir1/myvars.json` as a ModuleChanged for `dir1` and run Terragrunt Plan/Apply for this directory. While `tags.yml` will be detected as as a FileChanged event and Pipelines will run Terragrunt with [queue-include-units-reading](https://terragrunt.gruntwork.io/docs/reference/cli-options/#queue-include-units-reading) for this file. |
| 47 | + |
| 48 | +This behavior will likely become the default in a major release of Pipelines but is currently opt-in due to being a breaking change to functionality. |
| 49 | +</li> |
| 50 | +<li> |
| 51 | +**Default Value**: Disabled |
| 52 | +</li> |
| 53 | +<li> |
| 54 | +**How to Enable**: Set to `"true"` |
| 55 | +</li> |
| 56 | +</ul> |
| 57 | + |
| 58 | +#### `PIPELINES_FEATURE_EXPERIMENT_MINIMIZE_BLAST_RADIUS` |
| 59 | +<ul> |
| 60 | +<li> |
| 61 | +Enables Terragrunt features to reduce the potential changes during a run-all. Terragrunt [queue-strict-include](https://terragrunt.gruntwork.io/docs/reference/cli-options/#queue-strict-include) and [queue-exclude-external](https://terragrunt.gruntwork.io/docs/reference/cli-options/#queue-exclude-external) are enabled by default which excludes dependencies from being planned/applied during run-all, and more closely matches the behavior of a single unit change. |
| 62 | + |
| 63 | +This behavior will likely become the default in a major release of Pipelines but is currently opt-in due to being a breaking change to functionality. |
| 64 | +</li> |
| 65 | +<li> |
| 66 | +**Default Value**: Disabled |
| 67 | +</li> |
| 68 | +<li> |
| 69 | +**How to Enable**: Set to `"true"` |
| 70 | +</li> |
| 71 | +</ul> |
| 72 | + |
| 73 | +#### `PIPELINES_FEATURE_TERRAGRUNT_INCLUDE_UNITS_READING` |
| 74 | +<ul> |
| 75 | +<li> |
| 76 | +Enables FileChanged jobs where changes to non HCL files trigger Terragrunt runs using [queue-include-units-reading](https://terragrunt.gruntwork.io/docs/reference/cli-options/#queue-include-units-reading). |
| 77 | + |
| 78 | +This is a break-glass feature flag and can be used to disable this functionality if it is causing issues. |
| 79 | +</li> |
| 80 | +<li> |
| 81 | +**Default Value**: Enabled if the detected Terragrunt version supports [queue-include-units-reading](https://terragrunt.gruntwork.io/docs/reference/cli-options/#queue-include-units-reading) |
| 82 | +</li> |
| 83 | +<li> |
| 84 | +**How to Disable**: Set to `"false"` |
| 85 | +</li> |
| 86 | +</ul> |
| 87 | + |
| 88 | +#### `PIPELINES_FEATURE_TERRAGRUNT_STACK_GENERATE` |
| 89 | +<ul> |
| 90 | +<li> |
| 91 | +Enables native Terragrunt stack support using commands like `terragrunt stack generate`. |
| 92 | + |
| 93 | +This is a break-glass feature flag and can be used to disable this functionality if it is causing issues. |
| 94 | +</li> |
| 95 | +<li> |
| 96 | +**Default Value**: Enabled if the detected Terragrunt version supports [stacks](https://terragrunt.gruntwork.io/docs/reference/cli-options/#stack-commands) |
| 97 | +</li> |
| 98 | +<li> |
| 99 | +**How to Disable**: Set to `"false"` |
| 100 | +</li> |
| 101 | +</ul> |
0 commit comments