cloudposse/terraform-null-label
### [`v0.24.1`](https://togithub.com/cloudposse/terraform-null-label/releases/0.24.1)
[Compare Source](https://togithub.com/cloudposse/terraform-null-label/compare/0.24.0...0.24.1)
Allow control of letter case of outputs @SweetOps (#107)
You now have control over the letter case of generated tag names and supplied labels, which means you also have control over the letter case of the ultimate `id`.
Labels are the elements you can include in `label_order`, namely `namespace`, `environment`, `stage`, `name`, and `attributes`. For every non-empty label, a corresponding tag name is generated. For `namespace`, `environment`, `stage`, the output is the formatted, normalized input. (By "normalized" we mean that it goes through `regex_replace_chars`.), For `attributes`, which is a list, each element is normalized, duplicates are removed, and the resulting list is converted to a string by joining the elements with the `delimiter` (defaults to hyphen). For `name`, which is special, the output is the same as `id`, which is the joining of the labels in the order specified by `label_order` and separated by `delimiter`.
- You can set `label_key_case` to one of `upper`, `lower`, or `title`, which will result in generated `tag` names in the corresponding case: `NAME`, `name`, or `Name`. For backwards compatibility, `title` is the default
- You can set `label_value_case` to one of `upper`, `lower`, `title`, or `none`, which will result in output label values in the corresponding case (with `none` meaning no case conversion of any kind will be done, though the labels will still be subject to `regex_replace_chars`). The case converted labels will show up not just in the module output of the labels themselves, but also in the `tag` values and in the `id` string.
You can look at the test cases in `examples/complete` and the expected results in `test/src/examples_complete_test.go` to see examples of how this is supposed to work.
One interesting example is that you can create `id`s in Pascal case by setting `label_value_case = "title"` and `delimiter = ""`.
Include updates to exports/context.tf @Nuru (#122 and #123)
##### what
- Include updates to `exports/context.tf`
- Update README with features and compatibilty
- Add validation for `id_length_limit`
##### why
- The `exports/context.tf` is what gets distributed and needs to be in sync
- Replace outdated information
- Was not validated earlier because validators are not supported in TF 0.12 but now we are dropping support for TF 0.12 and so we can add validators
Restore backward compatibility with v0.22.1 and earlier @Nuru (#121)
##### what
- Restore backward compatibility with v0.22.1 and earlier
- Allow setting of `label_key_case` and `label_value_case` by vars, not just by context attributes.
##### why
- Allow interoperability of old and new modules
- Normally, root modules make settings via individual variables, not by setting an entire context block.
Incorporates and closes [#120](https://togithub.com/cloudposse/terraform-null-label/issues/120)
### [`v0.24.0`](https://togithub.com/cloudposse/terraform-null-label/releases/0.24.0)
[Compare Source](https://togithub.com/cloudposse/terraform-null-label/compare/0.23.0...0.24.0)
Restore backward compatibility with v0.22.1 and earlier @Nuru (#121)
##### what
- Restore backward compatibility with v0.22.1 and earlier
- Allow setting of `label_key_case` and `label_value_case` by vars, not just by context attributes.
##### why
- Allow interoperability of old and new modules
- Normally, root modules make settings via individual variables, not by setting an entire context block.
Incorporates and closes [#120](https://togithub.com/cloudposse/terraform-null-label/issues/120)
Allow control of letter case of outputs @SweetOps (#107)
You now have control over the letter case of generated tag names and supplied labels, which means you also have control over the letter case of the ultimate `id`.
Labels are the elements you can include in `label_order`, namely `namespace`, `environment`, `stage`, `name`, and `attributes`. For every non-empty label, a corresponding tag name is generated. For `namespace`, `environment`, `stage`, the output is the formatted, normalized input. (By "normalized" we mean that it goes through `regex_replace_chars`.), For `attributes`, which is a list, each element is normalized, duplicates are removed, and the resulting list is converted to a string by joining the elements with the `delimiter` (defaults to hyphen). For `name`, which is special, the output is the same as `id`, which is the joining of the labels in the order specified by `label_order` and separated by `delimiter`.
- You can set `label_key_case` to one of `upper`, `lower`, or `title`, which will result in generated `tag` names in the corresponding case: `NAME`, `name`, or `Name`. For backwards compatibility, `title` is the default
- You can set `label_value_case` to one of `upper`, `lower`, `title`, or `none`, which will result in output label values in the corresponding case (with `none` meaning no case conversion of any kind will be done, though the labels will still be subject to `regex_replace_chars`). The case converted labels will show up not just in the module output of the labels themselves, but also in the `tag` values and in the `id` string.
You can look at the test cases in `examples/complete` and the expected results in `test/src/examples_complete_test.go` to see examples of how this is supposed to work.
One interesting example is that you can create `id`s in Pascal case by setting `label_value_case = "title"` and `delimiter = ""`.
##### Known issues
- `exports/context.tf` still not backwards compatible
- Validation for `id_length` not included in `exports/context.tf`
### [`v0.23.0`](https://togithub.com/cloudposse/terraform-null-label/releases/0.23.0)
[Compare Source](https://togithub.com/cloudposse/terraform-null-label/compare/0.22.1...0.23.0)
##### Known issues
- Does not interoperate with earlier versions of `null-label`. The canonical `context = module.this.context` fails if `module.this.context` is an older version
- `context.tf` does not incorporate `var.label_key_case` and `var.label_value_case` into the `module.this` object, preventing those variables from taking effect in the root module's `module.this`.
feat: add support for setting letter case of context tags @SweetOps (#107)
With this release, you gain control over the letter case of generated tag names and supplied labels, which means you also have control over the letter case of the ultimate `id`.
Labels are the elements you can include in `label_order`, namely `namespace`, `environment`, `stage`, `name`, and `attributes`. For every non-empty label, a corresponding tag name is generated. For `namespace`, `environment`, `stage`, the output is the formatted, normalized input. (By "normalized" we mean that it goes through `regex_replace_chars`.), For `attributes`, which is a list, each element is normalized, duplicates are removed, and the resulting list is converted to a string by joining the elements with the `delimiter` (defaults to hyphen). For `name`, which is special, the output is the same as `id`, which is the joining of the labels in the order specified by `label_order` and separated by `delimiter`.
- You can set `label_key_case` to one of `upper`, `lower`, or `title`, which will result in generated `tag` names in the corresponding case: `NAME`, `name`, or `Name`. For backwards compatibility, `title` is the default
- You can set `label_value_case` to one of `upper`, `lower`, `title`, or `none`, which will result in output label values in the corresponding case (with `none` meaning no case conversion of any kind will be done, though the labels will still be subject to `regex_replace_chars`). The case converted labels will show up not just in the module output of the labels themselves, but also in the `tag` values and in the `id` string.
You can look at the test cases in `examples/complete` and the expected results in `test/src/examples_complete_test.go` to see examples of how this is supposed to work.
One interesting example is that you can create `id`s in Pascal case by setting `label_value_case = "title"` and `delimiter = ""`.
### [`v0.22.1`](https://togithub.com/cloudposse/terraform-null-label/releases/0.22.1)
[Compare Source](https://togithub.com/cloudposse/terraform-null-label/compare/0.22.0...0.22.1)
Add var.attributes to end of context.attributes, not vice versa @Nuru (#114)
##### what
- Add `var.attributes` to end of `context.attributes`, not vice versa
- Update to current workflows (with some exceptions)
##### why
- Modules should append to attributes passed in, not insert themselves ahead of others
- New features, like auto-format (but holding back some, because this is a special module)
##### references
- closes #113
- closes #108
### [`v0.22.0`](https://togithub.com/cloudposse/terraform-null-label/releases/0.22.0)
[Compare Source](https://togithub.com/cloudposse/terraform-null-label/compare/0.21.0...0.22.0)
**Breaking change:** This release updates minimum Terraform version requirement to 0.12.26
Convert context.tf to registry reference @Nuru (#110)
#### what
- Convert `context.tf` to use registry reference
- Update version requirement to `>= 0.12.26`
- Switch auto-publish to draft mode
#### why
- New standard way to reference modules
- Minimum version that supports registry references
- Ensure that version numbers are set manually and match what is in `context.tf`
### [`v0.21.0`](https://togithub.com/cloudposse/terraform-null-label/releases/0.21.0)
[Compare Source](https://togithub.com/cloudposse/terraform-null-label/compare/0.20.0...0.21.0)
Update `null-label` version used for exporting into other modules @aknysh (#106)
#### what
* Update `null-label` version used for exporting into other modules
#### why
* New release will be made from this PR - use this release in `exports/context.tf` to be exported into other modules
### [`v0.20.0`](https://togithub.com/cloudposse/terraform-null-label/releases/0.20.0)
[Compare Source](https://togithub.com/cloudposse/terraform-null-label/compare/0.19.2...0.20.0)
Update versions.tf to support tf .14 @kiddom-kq (#105)
Adds support for Terraform `0..14` (currently in `beta2`)
I've currently got it pinned to `< 0.14.1` to be conservative. Can update to `< 0.15` or similar.
#### what
- Bumps `versions.tf` to support terraform `0.14`
#### why
- I make extensive use of this label module (it's an _amazing_ contribution to the TF ecosystem. Thank you!)
- I am currently running into an [unrelated](https://togithub.com/hashicorp/terraform/issues/26579) issue w/ TF `0.13`. The proposed workaround for that unrelated issue does not work for me at this time.
- The solution is to use tf `0.14` which is in beta, now.
#### references
Fixes [#104](https://togithub.com/cloudposse/terraform-null-label/issues/104)
Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
0.19.2
->0.24.1
Release Notes
cloudposse/terraform-null-label
### [`v0.24.1`](https://togithub.com/cloudposse/terraform-null-label/releases/0.24.1) [Compare Source](https://togithub.com/cloudposse/terraform-null-label/compare/0.24.0...0.24.1)Allow control of letter case of outputs @SweetOps (#107)
You now have control over the letter case of generated tag names and supplied labels, which means you also have control over the letter case of the ultimate `id`. Labels are the elements you can include in `label_order`, namely `namespace`, `environment`, `stage`, `name`, and `attributes`. For every non-empty label, a corresponding tag name is generated. For `namespace`, `environment`, `stage`, the output is the formatted, normalized input. (By "normalized" we mean that it goes through `regex_replace_chars`.), For `attributes`, which is a list, each element is normalized, duplicates are removed, and the resulting list is converted to a string by joining the elements with the `delimiter` (defaults to hyphen). For `name`, which is special, the output is the same as `id`, which is the joining of the labels in the order specified by `label_order` and separated by `delimiter`. - You can set `label_key_case` to one of `upper`, `lower`, or `title`, which will result in generated `tag` names in the corresponding case: `NAME`, `name`, or `Name`. For backwards compatibility, `title` is the default - You can set `label_value_case` to one of `upper`, `lower`, `title`, or `none`, which will result in output label values in the corresponding case (with `none` meaning no case conversion of any kind will be done, though the labels will still be subject to `regex_replace_chars`). The case converted labels will show up not just in the module output of the labels themselves, but also in the `tag` values and in the `id` string. You can look at the test cases in `examples/complete` and the expected results in `test/src/examples_complete_test.go` to see examples of how this is supposed to work. One interesting example is that you can create `id`s in Pascal case by setting `label_value_case = "title"` and `delimiter = ""`.Include updates to exports/context.tf @Nuru (#122 and #123)
##### what - Include updates to `exports/context.tf` - Update README with features and compatibilty - Add validation for `id_length_limit` ##### why - The `exports/context.tf` is what gets distributed and needs to be in sync - Replace outdated information - Was not validated earlier because validators are not supported in TF 0.12 but now we are dropping support for TF 0.12 and so we can add validatorsRestore backward compatibility with v0.22.1 and earlier @Nuru (#121)
##### what - Restore backward compatibility with v0.22.1 and earlier - Allow setting of `label_key_case` and `label_value_case` by vars, not just by context attributes. ##### why - Allow interoperability of old and new modules - Normally, root modules make settings via individual variables, not by setting an entire context block. Incorporates and closes [#120](https://togithub.com/cloudposse/terraform-null-label/issues/120)Restore backward compatibility with v0.22.1 and earlier @Nuru (#121)
##### what - Restore backward compatibility with v0.22.1 and earlier - Allow setting of `label_key_case` and `label_value_case` by vars, not just by context attributes. ##### why - Allow interoperability of old and new modules - Normally, root modules make settings via individual variables, not by setting an entire context block. Incorporates and closes [#120](https://togithub.com/cloudposse/terraform-null-label/issues/120)Allow control of letter case of outputs @SweetOps (#107)
You now have control over the letter case of generated tag names and supplied labels, which means you also have control over the letter case of the ultimate `id`. Labels are the elements you can include in `label_order`, namely `namespace`, `environment`, `stage`, `name`, and `attributes`. For every non-empty label, a corresponding tag name is generated. For `namespace`, `environment`, `stage`, the output is the formatted, normalized input. (By "normalized" we mean that it goes through `regex_replace_chars`.), For `attributes`, which is a list, each element is normalized, duplicates are removed, and the resulting list is converted to a string by joining the elements with the `delimiter` (defaults to hyphen). For `name`, which is special, the output is the same as `id`, which is the joining of the labels in the order specified by `label_order` and separated by `delimiter`. - You can set `label_key_case` to one of `upper`, `lower`, or `title`, which will result in generated `tag` names in the corresponding case: `NAME`, `name`, or `Name`. For backwards compatibility, `title` is the default - You can set `label_value_case` to one of `upper`, `lower`, `title`, or `none`, which will result in output label values in the corresponding case (with `none` meaning no case conversion of any kind will be done, though the labels will still be subject to `regex_replace_chars`). The case converted labels will show up not just in the module output of the labels themselves, but also in the `tag` values and in the `id` string. You can look at the test cases in `examples/complete` and the expected results in `test/src/examples_complete_test.go` to see examples of how this is supposed to work. One interesting example is that you can create `id`s in Pascal case by setting `label_value_case = "title"` and `delimiter = ""`.feat: add support for setting letter case of context tags @SweetOps (#107)
With this release, you gain control over the letter case of generated tag names and supplied labels, which means you also have control over the letter case of the ultimate `id`. Labels are the elements you can include in `label_order`, namely `namespace`, `environment`, `stage`, `name`, and `attributes`. For every non-empty label, a corresponding tag name is generated. For `namespace`, `environment`, `stage`, the output is the formatted, normalized input. (By "normalized" we mean that it goes through `regex_replace_chars`.), For `attributes`, which is a list, each element is normalized, duplicates are removed, and the resulting list is converted to a string by joining the elements with the `delimiter` (defaults to hyphen). For `name`, which is special, the output is the same as `id`, which is the joining of the labels in the order specified by `label_order` and separated by `delimiter`. - You can set `label_key_case` to one of `upper`, `lower`, or `title`, which will result in generated `tag` names in the corresponding case: `NAME`, `name`, or `Name`. For backwards compatibility, `title` is the default - You can set `label_value_case` to one of `upper`, `lower`, `title`, or `none`, which will result in output label values in the corresponding case (with `none` meaning no case conversion of any kind will be done, though the labels will still be subject to `regex_replace_chars`). The case converted labels will show up not just in the module output of the labels themselves, but also in the `tag` values and in the `id` string. You can look at the test cases in `examples/complete` and the expected results in `test/src/examples_complete_test.go` to see examples of how this is supposed to work. One interesting example is that you can create `id`s in Pascal case by setting `label_value_case = "title"` and `delimiter = ""`.Add var.attributes to end of context.attributes, not vice versa @Nuru (#114)
##### what - Add `var.attributes` to end of `context.attributes`, not vice versa - Update to current workflows (with some exceptions) ##### why - Modules should append to attributes passed in, not insert themselves ahead of others - New features, like auto-format (but holding back some, because this is a special module) ##### references - closes #113 - closes #108Convert context.tf to registry reference @Nuru (#110)
#### what - Convert `context.tf` to use registry reference - Update version requirement to `>= 0.12.26` - Switch auto-publish to draft mode #### why - New standard way to reference modules - Minimum version that supports registry references - Ensure that version numbers are set manually and match what is in `context.tf`Update `null-label` version used for exporting into other modules @aknysh (#106)
#### what * Update `null-label` version used for exporting into other modules #### why * New release will be made from this PR - use this release in `exports/context.tf` to be exported into other modulesUpdate versions.tf to support tf .14 @kiddom-kq (#105)
Adds support for Terraform `0..14` (currently in `beta2`) I've currently got it pinned to `< 0.14.1` to be conservative. Can update to `< 0.15` or similar. #### what - Bumps `versions.tf` to support terraform `0.14` #### why - I make extensive use of this label module (it's an _amazing_ contribution to the TF ecosystem. Thank you!) - I am currently running into an [unrelated](https://togithub.com/hashicorp/terraform/issues/26579) issue w/ TF `0.13`. The proposed workaround for that unrelated issue does not work for me at this time. - The solution is to use tf `0.14` which is in beta, now. #### references Fixes [#104](https://togithub.com/cloudposse/terraform-null-label/issues/104)Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.