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

chore(deps): update terraform github.com/cloudposse/terraform-null-label to v0.25.0 (main) #29

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Apr 1, 2024

Mend Renovate

This PR contains the following updates:

Package Type Update Change
github.com/cloudposse/terraform-null-label module minor tags/0.3.1 -> 0.25.0

Release Notes

cloudposse/terraform-null-label (github.com/cloudposse/terraform-null-label)

v0.25.0

Compare Source

Add "tenant", "labels_as_tags", and "descriptors" @​Nuru (#​132)
what
  • Add additional label and id component: tenant
  • New input labels_as_tags controls which labels are exported as tags
  • New input descriptor_formats generates new output descriptors
  • Update README, remove link to obsolete terraform-terraform-label
why
  • Support users that host resources on behalf of and/or dedicated to single customers
  • Supersedes and closes #​131, giving people control over which tags the module generates
  • Simple mechanism for creating multiple identifiers from the same inputs, reducing the need to create multiple instances of null-label
  • Document tenant, labels_as_tags, descriptor_formats, add additional clarification, stop promoting obsolete module
Fix: Update README Snippets @​korenyoni (#​130)
what
  • Update README snippets to reflect use of Terraform Registry.
why
  • Including snippets that reflect use of the Terraform Registry make it easier for users to quickly instantiate a null_label module.
  • README is out of date and does not include snippets that reflect use of the Terraform Registry.
references
  • N/A
Bridgecrew compliance @​Nuru (#​125)
what
  • Resolve Bridgecrew compliance complaint about example Autoscaling Group (BC_AWS_GENERAL_31)
  • Fix typo in README
  • Include Terraform lock file in .gitignore
why
  • Get clean Bridgecrew badge
  • Correct confusing error
  • Ensure lock files are not checked into GitHub
note

The PR can and should be merged into master to update README and Bridgecrew without triggering a new release/version. These changes have no effect on the actual module in use and a release will create unnecessary ripple effects. However, merging to master will update the README and badges, so is worthwhile, and the changes will move forward into the next release.

Properly output descriptors of chained modules @​Nuru (#​133)
what
  • Properly output descriptors of chained modules
why
  • Bug fix; implement intended behavior

v0.24.1: Allow control of letter case of outputs

Compare Source

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 ids 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

🐛 Bug fix/Breaking change

This version introduced a bug fix that technically is a breaking change.

The input regex_replace_chars specifies a regular expression, and characters matching it are removed
from labels/id elements. Prior to this release, if the delimiter itself matched the regular expression,
then the delimiter would be removed from the attributes portion of the id. This was not a problem
for most users, since the default delimiter was - (dash) and the default regex allowed dashes, but
if you customized the delimiter and/or regex, this could affect you.

v0.24.0

Compare Source

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

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 ids 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: pre-release: Allow control of letter case of outputs

Compare Source

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 ids in Pascal case by setting label_value_case = "title" and delimiter = "".

v0.22.1

Compare Source

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

Compare Source

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

Compare Source

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

Compare Source

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 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 https://github.com/cloudposse/terraform-null-label/issues/104

v0.19.2

Compare Source

Remove symlink, polish documentation @​Nuru (#​101)
what
  • Replace symbolic link to context.tf (examples/autoscalinggroup/context.tf) with copy of file
  • Move module to top of context.tf and clean up documentation comments inside the file
why
  • Terraform clones the whole repo, not just the top directory, and the symbolic link causes problems for some IDEs
  • Module contains version number and source URL, which should be at the top of the file

v0.19.1

Compare Source

Include all context inputs as normalized outputs @​Nuru (#​100)
Enhancement to #​99
what
  • Include all context inputs as normalized outputs
why
  • Enable a consistent pattern of module.this.context.var to reference the input value with null defaults and module.this.var to reference the normalized value with nulls replaced by actual default values.
references
  • See #​99: Standardize context for input and chaining

v0.19.0

Compare Source

Standardize `context` for input and chaining @​Nuru (#​99)
what
  • Refine the context object concept:
    • The previous context output contained normalized and generated data. This has now been renamed normalized_context
    • The new context object output simply propagates the input unmodified
    • The new context.tf file can be dropped into any module to provide standard context inputs and a context output (module.this.context) that can be fed into other modules
  • Refine the id length limit:
    • Rename id_max_length to id_length_limit
    • Prevent consecutive delimiters and at the same time ensure that if the id is truncated, it is truncate to exactly id_length_limit characters
  • Ensure that it is possible to eliminate delimiters by setting delimiter = "". Closes #​77
  • Add additional tests for all of the above.
why
  • Provide a consistent interface to our modules, allow chaining, and provide something like a global setting as requested in #​88
  • Make length limit for id more intuitive. Since id is also used as a tag value, and AWS limits tag value length to 255 characters, limit the id length by default so it will not break AWS.
  • Some environments do not allow non-alphabetic characters in names
  • Greater code coverage for testing helps prevent bugs from creeping in as new features are added

v0.18.0: : Add id_max_length

Compare Source

This is a pre-release, to thank @​tibbing for his contribution. There will be breaking changes to this feature in the next release.

#​98 Thanks to @​tibbing

  • Adds a new optional variable id_max_length, that when set to a value greater than 0 will limit the length of ID output to given value.
  • The truncated ID is still disambiguated by suffixing the first 5 characters of the md5 hash of the full ID.
  • The full ID will still be available as a new output id_full.
  • The default value of id_max_length is 0, so that the change is not breaking any existing usages.

v0.17.0

Compare Source

v0.16.0: Removed unnecessary step for tags_as_list_of_maps

Compare Source

what
  • Cleaned up code, removed unnecessary step
  • Removed provider code for null_resource from versions
why

v0.15.0: Drop null_resource

Compare Source

what
  • Replace null_resource with Terraform 0.12 for-logic
Why
  • No provider dependency, less resources

v0.14.1: Fix example

Compare Source

what
  • Fix example
  • Apply TF 0.12 syntax
why
  • Remove TF version pinning from the provider in the example
  • TF 0.12 prefers using list index to get items from a list

v0.14.0

Compare Source

what
  • Use required_providers to pin Terraform providers
why
  • Pinning the module's providers version in required_providers block allows specifying only the required provider version for the module without the need to specify all providers with versions explicitly

v0.13.0: Add versions.tf

Compare Source

what
  • Add versions.tf
why
  • Standardize on a file name to pin Terraform and provider versions
  • The file with a standard name is easy to check manually by users and automatically by scripts
  • versions.tf is also automatically added by terraform 0.12upgrade tool

v0.12.2: Update Codefresh badge

Compare Source

what
  • Update Codefresh badge
why
  • Codefresh test pipeline has been moved to Codefresh terraform-modules project

v0.12.1

Compare Source

v0.12.0

Compare Source

v0.11.1

Compare Source

v0.11.0

Compare Source

v0.10.0

Compare Source

v0.9.0

Compare Source

v0.8.0

Compare Source

v0.7.0: Use regex_replace_chars from context and add it to the output context

Compare Source

what
  • Use regex_replace_chars from context and add it to the output context
why

v0.6.3: Enable hyphens in var.regex_replace_chars

Compare Source

what
  • Enable hyphens in var.regex_replace_chars
why

v0.6.2: Update regex_replace_chars variable

Compare Source

what
  • Update egex_replace_chars variable
why

v0.6.1: Fix var.regex_replace_chars implementation

Compare Source

what
  • Fix var.regex_replace_chars implementation
why

v0.6.0: Add regex_replace_chars variable

Compare Source

what
  • Add regex_replace_chars variable
why
  • Allow special characters in the generated ID

v0.5.4

Compare Source

v0.5.3

Compare Source

what
  • Fix tags: don't include tags with empty values
  • Fix Travis URL in README
why
  • Many resources (e.g. Elastic Beanstalk) fail if provided with tags with empty values
references

v0.5.2

Compare Source

what
  • Make attributes output a list
  • Fix race conditions when processing attributes
why
  • attributes input is a list, we should keep the same type for the output
  • Due to TF limitations, there was a race condition when merging attributes using the calculated delimiter. The delimiter was always taken from the context even if it was provided in var.delimiter, and just for attributes, the other outputs were OK

v0.5.1

Compare Source

what
  • Change how the final delimiter from the provided context or input variable is calculated
why

Fix the case where a module label is instantiated with a non-default delimiter, and then another label is generated based off the context but uses the default delimiter as the local var takes
precedence.

The only case this actually applies to is the delimiter, which has a default value of '-', however all others changed to make them consistent.

v0.5.0

Compare Source

what
  • Add new variable that allows for providing a label_order as a list to specify which variables and in what order go into the id output and Name tag.
  • The list can include all or none of the a variable names:
    "namespace", "environment", "stage", "name", "attributes"
why

Resolves https://github.com/cloudposse/terraform-null-label/issues/35

v0.4.1

Compare Source

v0.4.0: Context - Allows chaining label modules together

Compare Source

The module has a new context variable and output.
The module has a new environment variable.
The module now allows all variables to be optional and follows a set of rules to generate the outputs.

Context allows the variables of one label module to be passed to the next label module.
Allowing you to create one label that has the base set of values, and then creating every extra label
as a derivative of that.

The environment variable can be used with the stage variable or alone.
It was added because in some businesses the term environment is embedded as a "known term" for the separation of resources from development to production, so to keep this module from changing the embedded nomenclature this variable was added with backwards compatibility.

v0.3.8

Compare Source

v0.3.7: : Readme.yaml - fix avatars links

Compare Source

what
  • Remove home pages and avatars links
why
  • Build-harness does it automatically

v0.3.6

Compare Source

v0.3.5

Compare Source

what
  • Update README
  • Fix make targets
why
  • Some improvements and fixes
  • Use / instead of : in make targets

v0.3.4

Compare Source

what
  • Add support for list of tag maps
why
  • Certain kinds of resources (e.g. AWS AutoScaling groups) need them

v0.3.3

Compare Source

what
  • Use join+splat pattern in tags
why
  • New Terraform versions complain if a resource with count is used in outputs without splat syntax

Terraform will now detect and warn about outputs containing potentially-problematic references to resources with count set where the references does not use the "splat" syntax. This identifies situations where an output may reference a resource with count = 0 even if the count expression does not currently evaluate to 0, allowing the bug to be detected and fixed before the value is later changed to 0 and would thus become an error. This usage will become a fatal error in Terraform 0.12. (#​16735)

v0.3.2

Compare Source

what
  • Use join+splat pattern for outputs using resources with count
why
  • New Terraform versions complain if a resource with count is used in outputs without splat syntax

Resource 'null_resource.default' not found for variable 'null_resource.default.triggers.id'

Terraform will now detect and warn about outputs containing potentially-problematic references to resources with count set where the references does not use the "splat" syntax. This identifies situations where an output may reference a resource with count = 0 even if the count expression does not currently evaluate to 0, allowing the bug to be detected and fixed before the value is later changed to 0 and would thus become an error. This usage will become a fatal error in Terraform 0.12. (#​16735)


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.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot requested review from a team as code owners April 1, 2024 17:19
@renovate renovate bot added the auto-update This PR was automatically generated label Apr 1, 2024
@renovate renovate bot requested review from jamengual and joe-niland April 1, 2024 17:19
@mergify mergify bot added the readme Improvements or additions to the README label Apr 1, 2024
Copy link

mergify bot commented Apr 1, 2024

/terratest

Copy link

mergify bot commented Apr 1, 2024

💥 This pull request now has conflicts. Could you fix it @renovate[bot]? 🙏

@mergify mergify bot added the conflict This PR has conflicts label Apr 1, 2024
@mergify mergify bot closed this Apr 1, 2024
Copy link

mergify bot commented Apr 1, 2024

This automated PR was closed due to merge conflicts.

Copy link
Author

renovate bot commented Apr 1, 2024

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update (0.25.0). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

@renovate renovate bot deleted the renovate/main-github.com-cloudposse-terraform-null-label-0.x branch April 1, 2024 17:20
@mergify mergify bot removed readme Improvements or additions to the README conflict This PR has conflicts labels Apr 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auto-update This PR was automatically generated
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants