From fe8ba9bb77d9a0ef64ec0a8e4bc752975683e6cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Odstr=C4=8Dil=C3=ADk?= Date: Thu, 19 Dec 2024 15:22:52 +0100 Subject: [PATCH] fix: path empty string defaults --- .pre-commit-config.yaml | 3 +- README.md | 38 ++++++++++---------- scripts/sync-variables.py | 76 ++++++++++++++++++++++++++++++++------- variables-addon-irsa.tf | 10 +++--- variables-addon-oidc.tf | 12 +++---- variables-addon.tf | 16 ++++----- 6 files changed, 103 insertions(+), 52 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 86ba8a6..bdf3914 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -41,7 +41,8 @@ repos: hooks: - id: sync-variables name: Sync module variables - entry: scripts/sync-variables.py + entry: ./scripts/sync-variables.py language: system types: [python] always_run: true + pass_filenames: false diff --git a/README.md b/README.md index 1480180..44d71f4 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ See [basic example](examples/basic) for further information. | [argo\_destination\_server](#input\_argo\_destination\_server) | Destination server for ArgoCD Application. Defaults to `https://kubernetes.default.svc`. | `string` | | [argo\_enabled](#input\_argo\_enabled) | If set to `true`, the module will be deployed as ArgoCD Application, otherwise it will be deployed as a Helm release. Defaults to `false`. | `bool` | | [argo\_helm\_enabled](#input\_argo\_helm\_enabled) | If set to `true`, the ArgoCD Application manifest will be deployed using Kubernetes provider as a Helm release. Otherwise it'll be deployed as a Kubernetes manifest. See README for more info. Defaults to `false`. | `bool` | -| [argo\_helm\_values](#input\_argo\_helm\_values) | Value overrides to use when deploying ArgoCD Application object with Helm. Defaults to `.` | `string` | +| [argo\_helm\_values](#input\_argo\_helm\_values) | Value overrides to use when deploying ArgoCD Application object with Helm. Defaults to `""`. | `string` | | [argo\_helm\_wait\_backoff\_limit](#input\_argo\_helm\_wait\_backoff\_limit) | Backoff limit for ArgoCD Application Helm release wait job. Defaults to `6`. | `number` | | [argo\_helm\_wait\_node\_selector](#input\_argo\_helm\_wait\_node\_selector) | Node selector for ArgoCD Application Helm release wait job. Defaults to `{}`. | `map(string)` | | [argo\_helm\_wait\_timeout](#input\_argo\_helm\_wait\_timeout) | Timeout for ArgoCD Application Helm release wait job. Defaults to `10m`. | `string` | @@ -91,7 +91,7 @@ See [basic example](examples/basic) for further information. | [helm\_cleanup\_on\_fail](#input\_helm\_cleanup\_on\_fail) | Allow deletion of new resources created in this Helm upgrade when upgrade fails. Defaults to `false`. | `bool` | | [helm\_create\_namespace](#input\_helm\_create\_namespace) | Create the Namespace if it does not yet exist. Defaults to `true`. | `bool` | | [helm\_dependency\_update](#input\_helm\_dependency\_update) | Runs Helm dependency update before installing the chart. Defaults to `false`. | `bool` | -| [helm\_description](#input\_helm\_description) | Set Helm release description attribute (visible in the history). Defaults to `.` | `string` | +| [helm\_description](#input\_helm\_description) | Set Helm release description attribute (visible in the history). Defaults to `""`. | `string` | | [helm\_devel](#input\_helm\_devel) | Use Helm chart development versions, too. Equivalent to version '>0.0.0-0'. If version is set, this is ignored. Defaults to `false`. | `bool` | | [helm\_disable\_openapi\_validation](#input\_helm\_disable\_openapi\_validation) | If set, the installation process will not validate rendered Helm templates against the Kubernetes OpenAPI Schema. Defaults to `false`. | `bool` | | [helm\_disable\_webhooks](#input\_helm\_disable\_webhooks) | Prevent Helm chart hooks from running. Defaults to `false`. | `bool` | @@ -106,12 +106,12 @@ See [basic example](examples/basic) for further information. | [helm\_release\_name](#input\_helm\_release\_name) | Helm release name (required). | `string` | | [helm\_render\_subchart\_notes](#input\_helm\_render\_subchart\_notes) | If set, render Helm subchart notes along with the parent. Defaults to `true`. | `bool` | | [helm\_replace](#input\_helm\_replace) | Re-use the given name of Helm release, only if that name is a deleted release which remains in the history. This is unsafe in production. Defaults to `false`. | `bool` | -| [helm\_repo\_ca\_file](#input\_helm\_repo\_ca\_file) | Helm repositories CA cert file. Defaults to `.` | `string` | -| [helm\_repo\_cert\_file](#input\_helm\_repo\_cert\_file) | Helm repositories cert file. Defaults to `.` | `string` | -| [helm\_repo\_key\_file](#input\_helm\_repo\_key\_file) | Helm repositories cert key file. Defaults to `.` | `string` | -| [helm\_repo\_password](#input\_helm\_repo\_password) | Password for HTTP basic authentication against the Helm repository. Defaults to `.` | `string` | +| [helm\_repo\_ca\_file](#input\_helm\_repo\_ca\_file) | Helm repositories CA cert file. Defaults to `""`. | `string` | +| [helm\_repo\_cert\_file](#input\_helm\_repo\_cert\_file) | Helm repositories cert file. Defaults to `""`. | `string` | +| [helm\_repo\_key\_file](#input\_helm\_repo\_key\_file) | Helm repositories cert key file. Defaults to `""`. | `string` | +| [helm\_repo\_password](#input\_helm\_repo\_password) | Password for HTTP basic authentication against the Helm repository. Defaults to `""`. | `string` | | [helm\_repo\_url](#input\_helm\_repo\_url) | Helm repository (required). | `string` | -| [helm\_repo\_username](#input\_helm\_repo\_username) | Username for HTTP basic authentication against the Helm repository. Defaults to `.` | `string` | +| [helm\_repo\_username](#input\_helm\_repo\_username) | Username for HTTP basic authentication against the Helm repository. Defaults to `""`. | `string` | | [helm\_reset\_values](#input\_helm\_reset\_values) | When upgrading, reset the values to the ones built into the Helm chart. Defaults to `false`. | `bool` | | [helm\_reuse\_values](#input\_helm\_reuse\_values) | When upgrading, reuse the last Helm release's values and merge in any overrides. If `var.helm_reset_values` is specified, this is ignored. Defaults to `false`. | `bool` | | [helm\_set\_sensitive](#input\_helm\_set\_sensitive) | Value block with custom sensitive values to be merged with the values yaml that won't be exposed in the plan's diff. Defaults to `{}`. | `map(any)` | @@ -125,11 +125,11 @@ See [basic example](examples/basic) for further information. | [irsa\_assume\_role\_policy\_condition\_test](#input\_irsa\_assume\_role\_policy\_condition\_test) | Specifies the condition test to use for the assume role trust policy. Defaults to `StringEquals`. | `string` | | [irsa\_assume\_role\_policy\_condition\_values](#input\_irsa\_assume\_role\_policy\_condition\_values) | Specifies the values for the assume role trust policy condition. Each entry in this list must follow the required format `system:serviceaccount:$service_account_namespace:$service_account_name`. If this variable is left as the default, `local.irsa_assume_role_policy_condition_values_default` is used instead, which is a list containing a single value. Note that if this list is defined, the `service_account_name` and `service_account_namespace` variables are ignored. Defaults to `[]`. | `list(string)` | | [irsa\_permissions\_boundary](#input\_irsa\_permissions\_boundary) | ARN of the policy that is used to set the permissions boundary for the IRSA role. | `string` | -| [irsa\_policy](#input\_irsa\_policy) | Policy to be attached to the IRSA role. Applied only if `irsa_policy_enabled` is `true`. Defaults to `.` | `string` | +| [irsa\_policy](#input\_irsa\_policy) | Policy to be attached to the IRSA role. Applied only if `irsa_policy_enabled` is `true`. Defaults to `""`. | `string` | | [irsa\_policy\_enabled](#input\_irsa\_policy\_enabled) | Whether to create IAM policy specified by `irsa_policy`. Mutually exclusive with `irsa_assume_role_enabled`. Defaults to `false`. | `bool` | | [irsa\_role\_create](#input\_irsa\_role\_create) | Whether to create IRSA role and annotate Service Account. Defaults to `true`. | `bool` | -| [irsa\_role\_name](#input\_irsa\_role\_name) | IRSA role name. The value is prefixed by `var.irsa_role_name_prefix`. Defaults to the addon Helm chart name. Defaults to `.` | `string` | -| [irsa\_role\_name\_prefix](#input\_irsa\_role\_name\_prefix) | IRSA role name prefix. Defaults to addon IRSA component name (if provided) with `irsa` suffix. Defaults to `.` | `string` | +| [irsa\_role\_name](#input\_irsa\_role\_name) | IRSA role name. The value is prefixed by `var.irsa_role_name_prefix`. Defaults to the addon Helm chart name. Defaults to `""`. | `string` | +| [irsa\_role\_name\_prefix](#input\_irsa\_role\_name\_prefix) | IRSA role name prefix. Defaults to addon IRSA component name (if provided) with `irsa` suffix. Defaults to `""`. | `string` | | [irsa\_tags](#input\_irsa\_tags) | IRSA resources tags. Defaults to `{}`. | `map(string)` | | [namespace](#input\_namespace) | The Kubernetes Namespace in which the Helm chart will be installed (required). | `string` | | [oidc\_additional\_policies](#input\_oidc\_additional\_policies) | Map of the additional policies to be attached to OIDC role. Where key is arbitrary id and value is policy ARN. Defaults to `{}`. | `map(string)` | @@ -137,25 +137,25 @@ See [basic example](examples/basic) for further information. | [oidc\_assume\_role\_enabled](#input\_oidc\_assume\_role\_enabled) | Whether OIDC is allowed to assume role defined by `oidc_assume_role_arn`. Mutually exclusive with `oidc_policy_enabled`. Defaults to `false`. | `bool` | | [oidc\_assume\_role\_policy\_condition\_test](#input\_oidc\_assume\_role\_policy\_condition\_test) | Specifies the condition test to use for the assume role trust policy. Defaults to `StringLike`. | `string` | | [oidc\_assume\_role\_policy\_condition\_values](#input\_oidc\_assume\_role\_policy\_condition\_values) | Specifies the values for the assume role trust policy condition. Defaults to `[]`. | `list(string)` | -| [oidc\_assume\_role\_policy\_condition\_variable](#input\_oidc\_assume\_role\_policy\_condition\_variable) | Specifies the variable to use for the assume role trust policy. Defaults to `.` | `string` | -| [oidc\_custom\_provider\_arn](#input\_oidc\_custom\_provider\_arn) | Specifies a custom OIDC provider ARN. Defaults to `.` | `string` | +| [oidc\_assume\_role\_policy\_condition\_variable](#input\_oidc\_assume\_role\_policy\_condition\_variable) | Specifies the variable to use for the assume role trust policy. Defaults to `""`. | `string` | +| [oidc\_custom\_provider\_arn](#input\_oidc\_custom\_provider\_arn) | Specifies a custom OIDC provider ARN. Defaults to `""`. | `string` | | [oidc\_openid\_client\_ids](#input\_oidc\_openid\_client\_ids) | List of OpenID Connect client IDs that are allowed to assume the OIDC provider. Defaults to `[]`. | `list(string)` | -| [oidc\_openid\_provider\_url](#input\_oidc\_openid\_provider\_url) | OIDC provider URL. Defaults to `.` | `string` | +| [oidc\_openid\_provider\_url](#input\_oidc\_openid\_provider\_url) | OIDC provider URL. Defaults to `""`. | `string` | | [oidc\_openid\_thumbprints](#input\_oidc\_openid\_thumbprints) | List of thumbprints of the OIDC provider's server certificate. Defaults to `[]`. | `list(string)` | | [oidc\_permissions\_boundary](#input\_oidc\_permissions\_boundary) | ARN of the policy that is used to set the permissions boundary for the OIDC role. | `string` | -| [oidc\_policy](#input\_oidc\_policy) | Policy to be attached to the OIDC role. Applied only if `oidc_policy_enabled` is `true`. Defaults to `.` | `string` | +| [oidc\_policy](#input\_oidc\_policy) | Policy to be attached to the OIDC role. Applied only if `oidc_policy_enabled` is `true`. Defaults to `""`. | `string` | | [oidc\_policy\_enabled](#input\_oidc\_policy\_enabled) | Whether to create IAM policy specified by `oidc_policy`. Mutually exclusive with `oidc_assume_role_enabled`. Defaults to `false`. | `bool` | | [oidc\_provider\_create](#input\_oidc\_provider\_create) | Whether to create OIDC provider. Set to `false` if you want to disable default OIDC provider when `var.oidc_custom_provider_arn` is set. Defaults to `true`. | `bool` | | [oidc\_role\_create](#input\_oidc\_role\_create) | Whether to create OIDC role. Defaults to `true`. | `bool` | -| [oidc\_role\_name](#input\_oidc\_role\_name) | OIDC role name. The value is prefixed by `var.oidc_role_name_prefix`. Defaults to the addon Helm chart name. Defaults to `.` | `string` | -| [oidc\_role\_name\_prefix](#input\_oidc\_role\_name\_prefix) | OIDC role name prefix. Defaults to addon OIDC component name (if provided) with `oidc` suffix. Defaults to `.` | `string` | +| [oidc\_role\_name](#input\_oidc\_role\_name) | OIDC role name. The value is prefixed by `var.oidc_role_name_prefix`. Defaults to the addon Helm chart name. Defaults to `""`. | `string` | +| [oidc\_role\_name\_prefix](#input\_oidc\_role\_name\_prefix) | OIDC role name prefix. Defaults to addon OIDC component name (if provided) with `oidc` suffix. Defaults to `""`. | `string` | | [oidc\_tags](#input\_oidc\_tags) | OIDC resources tags. Defaults to `{}`. | `map(string)` | | [rbac\_create](#input\_rbac\_create) | Whether to create and use RBAC resources. Defaults to `true`. | `bool` | | [service\_account\_create](#input\_service\_account\_create) | Whether to create Service Account. Defaults to `true`. | `bool` | -| [service\_account\_name](#input\_service\_account\_name) | The Kubernetes Service Account name. Defaults to the addon name. Defaults to `.` | `string` | -| [service\_account\_namespace](#input\_service\_account\_namespace) | The Kubernetes Service Account namespace. Defaults to the addon namespace. Defaults to `.` | `string` | +| [service\_account\_name](#input\_service\_account\_name) | The Kubernetes Service Account name. Defaults to the addon name. Defaults to `""`. | `string` | +| [service\_account\_namespace](#input\_service\_account\_namespace) | The Kubernetes Service Account namespace. Defaults to the addon namespace. Defaults to `""`. | `string` | | [settings](#input\_settings) | Additional Helm sets which will be passed to the Helm chart values. Defaults to `{}`. | `map(any)` | -| [values](#input\_values) | Additional YAML encoded values which will be passed to the Helm chart. Defaults to `.` | `string` | +| [values](#input\_values) | Additional YAML encoded values which will be passed to the Helm chart. Defaults to `""`. | `string` | ## Outputs | Name | Description | diff --git a/scripts/sync-variables.py b/scripts/sync-variables.py index a3cdc76..55352a6 100755 --- a/scripts/sync-variables.py +++ b/scripts/sync-variables.py @@ -3,10 +3,11 @@ import os import hcl2 import re +import argparse +import logging from jinja2 import Environment, FileSystemLoader -def terraform_type(value): - """Remove ${} from Terraform type definitions""" +def filter_terraform_type(value): # Currently there is a limition in handling Terraform complex types # https://github.com/amplify-education/python-hcl2/issues/179 # https://github.com/amplify-education/python-hcl2/issues/172 @@ -14,29 +15,78 @@ def terraform_type(value): return re.sub(r'\${(.*)}', r'\1', value) return value -env = Environment(loader=FileSystemLoader(".")) -env.filters['terraform_type'] = terraform_type +def filter_terraform_default(value): + if isinstance(value, bool): + return str(value).lower() -template = env.from_string("""# IMPORTANT: This file is synced with the "terraform-aws-eks-universal-addon" module. Any changes to this file might be overwritten upon the next release of that module. + if isinstance(value, str): + if value == "": + return '\\"\\"' + + return value + +def get_template(): + env = Environment(loader=FileSystemLoader(".")) + env.filters['terraform_type'] = filter_terraform_type + env.filters['terraform_default'] = filter_terraform_default + + return env.from_string("""# IMPORTANT: This file is synced with the "terraform-aws-eks-universal-addon" module. Any changes to this file might be overwritten upon the next release of that module. {%- for variable in variables %} {%- for name, spec in variable.items() %} {%- if name != 'enabled' %} variable "{{ name }}" { type = {{ spec.type | terraform_type }} default = null - description = "{{ spec.description }}{% if spec.default is defined and spec.default != None %} Defaults to `{% if spec.default is boolean %}{{ spec.default | string | lower }}{% else %}{{ spec.default }}{% endif %}`.{% endif %}" + description = "{{ spec.description }}{% if spec.default is defined and spec.default != None %} Defaults to `{{ spec.default | terraform_default }}`.{% endif %}" } {%- endif %} {%- endfor %} {% endfor %} """) -for module in os.listdir('.terraform/modules'): - if not module.startswith('addon') or module.find(".") != -1: - continue +def get_logger(args): + log_level = args.log.upper() + + numeric_level = getattr(logging, log_level, None) + if not isinstance(numeric_level, int): + raise ValueError('Invalid log level `%s`' % log_level) + + logging.basicConfig(format='%(levelname)s: %(message)s', level=numeric_level) + + return logging.getLogger(__name__) + +def main(args): + log = get_logger(args) + log.info("Syncing variables from Terraform modules...") + log.warning("Terraform variable complex types are NOT supported!") + + template = get_template() + + for module in os.listdir('.terraform/modules'): # Iterate over all initialized modules + if not module.startswith('addon') or module.find(".") != -1: # Skip non-addon modules, ie. nested modules + log.info("Skipping module `%s`", module) + continue + + log.info("Processing module `%s`", module) + + source = '.terraform/modules/'+module+'/modules/'+module+'/variables.tf' + target = 'variables-'+module+'.tf' + + with open(source, 'r') as f: + log.info("Reading variables from `%s`", source) + + variables = hcl2.load(f).get('variable') + log.info("Collected variables: %d", len(variables)) + log.debug(variables) + + with open(target, "w") as f: + log.info("Writing variables to `%s`", target) + f.write(template.render(variables=variables)) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description='Sync Terraform variables from the local addon modules to proxy variable files') + parser.add_argument('--log', default='INFO', help='Set the logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)') - with open('.terraform/modules/'+module+'/modules/'+module+'/variables.tf', 'r') as f: - variables = hcl2.load(f).get('variable') + args = parser.parse_args() - with open("variables-"+module+".tf", "w") as f: - f.write(template.render(variables=variables)) + main(args) diff --git a/variables-addon-irsa.tf b/variables-addon-irsa.tf index 9e53d94..c19a1bd 100644 --- a/variables-addon-irsa.tf +++ b/variables-addon-irsa.tf @@ -27,13 +27,13 @@ variable "service_account_create" { variable "service_account_name" { type = string default = null - description = "The Kubernetes Service Account name. Defaults to the addon name. Defaults to ``." + description = "The Kubernetes Service Account name. Defaults to the addon name. Defaults to `\"\"`." } variable "service_account_namespace" { type = string default = null - description = "The Kubernetes Service Account namespace. Defaults to the addon namespace. Defaults to ``." + description = "The Kubernetes Service Account namespace. Defaults to the addon namespace. Defaults to `\"\"`." } variable "irsa_role_create" { @@ -45,13 +45,13 @@ variable "irsa_role_create" { variable "irsa_role_name_prefix" { type = string default = null - description = "IRSA role name prefix. Defaults to addon IRSA component name (if provided) with `irsa` suffix. Defaults to ``." + description = "IRSA role name prefix. Defaults to addon IRSA component name (if provided) with `irsa` suffix. Defaults to `\"\"`." } variable "irsa_role_name" { type = string default = null - description = "IRSA role name. The value is prefixed by `var.irsa_role_name_prefix`. Defaults to the addon Helm chart name. Defaults to ``." + description = "IRSA role name. The value is prefixed by `var.irsa_role_name_prefix`. Defaults to the addon Helm chart name. Defaults to `\"\"`." } variable "irsa_policy_enabled" { @@ -63,7 +63,7 @@ variable "irsa_policy_enabled" { variable "irsa_policy" { type = string default = null - description = "Policy to be attached to the IRSA role. Applied only if `irsa_policy_enabled` is `true`. Defaults to ``." + description = "Policy to be attached to the IRSA role. Applied only if `irsa_policy_enabled` is `true`. Defaults to `\"\"`." } variable "irsa_assume_role_enabled" { diff --git a/variables-addon-oidc.tf b/variables-addon-oidc.tf index 823f0e3..c61d1dc 100644 --- a/variables-addon-oidc.tf +++ b/variables-addon-oidc.tf @@ -9,7 +9,7 @@ variable "oidc_provider_create" { variable "oidc_custom_provider_arn" { type = string default = null - description = "Specifies a custom OIDC provider ARN. Defaults to ``." + description = "Specifies a custom OIDC provider ARN. Defaults to `\"\"`." } variable "oidc_role_create" { @@ -21,13 +21,13 @@ variable "oidc_role_create" { variable "oidc_role_name_prefix" { type = string default = null - description = "OIDC role name prefix. Defaults to addon OIDC component name (if provided) with `oidc` suffix. Defaults to ``." + description = "OIDC role name prefix. Defaults to addon OIDC component name (if provided) with `oidc` suffix. Defaults to `\"\"`." } variable "oidc_role_name" { type = string default = null - description = "OIDC role name. The value is prefixed by `var.oidc_role_name_prefix`. Defaults to the addon Helm chart name. Defaults to ``." + description = "OIDC role name. The value is prefixed by `var.oidc_role_name_prefix`. Defaults to the addon Helm chart name. Defaults to `\"\"`." } variable "oidc_policy_enabled" { @@ -39,7 +39,7 @@ variable "oidc_policy_enabled" { variable "oidc_policy" { type = string default = null - description = "Policy to be attached to the OIDC role. Applied only if `oidc_policy_enabled` is `true`. Defaults to ``." + description = "Policy to be attached to the OIDC role. Applied only if `oidc_policy_enabled` is `true`. Defaults to `\"\"`." } variable "oidc_assume_role_enabled" { @@ -87,7 +87,7 @@ variable "oidc_assume_role_policy_condition_values" { variable "oidc_assume_role_policy_condition_variable" { type = string default = null - description = "Specifies the variable to use for the assume role trust policy. Defaults to ``." + description = "Specifies the variable to use for the assume role trust policy. Defaults to `\"\"`." } variable "oidc_openid_client_ids" { @@ -99,7 +99,7 @@ variable "oidc_openid_client_ids" { variable "oidc_openid_provider_url" { type = string default = null - description = "OIDC provider URL. Defaults to ``." + description = "OIDC provider URL. Defaults to `\"\"`." } variable "oidc_openid_thumbprints" { diff --git a/variables-addon.tf b/variables-addon.tf index f521703..3ff4513 100644 --- a/variables-addon.tf +++ b/variables-addon.tf @@ -51,7 +51,7 @@ variable "settings" { variable "values" { type = string default = null - description = "Additional YAML encoded values which will be passed to the Helm chart. Defaults to ``." + description = "Additional YAML encoded values which will be passed to the Helm chart. Defaults to `\"\"`." } variable "argo_namespace" { @@ -141,7 +141,7 @@ variable "argo_spec" { variable "argo_helm_values" { type = string default = null - description = "Value overrides to use when deploying ArgoCD Application object with Helm. Defaults to ``." + description = "Value overrides to use when deploying ArgoCD Application object with Helm. Defaults to `\"\"`." } variable "argo_kubernetes_manifest_computed_fields" { @@ -171,31 +171,31 @@ variable "argo_kubernetes_manifest_wait_fields" { variable "helm_repo_key_file" { type = string default = null - description = "Helm repositories cert key file. Defaults to ``." + description = "Helm repositories cert key file. Defaults to `\"\"`." } variable "helm_repo_cert_file" { type = string default = null - description = "Helm repositories cert file. Defaults to ``." + description = "Helm repositories cert file. Defaults to `\"\"`." } variable "helm_repo_ca_file" { type = string default = null - description = "Helm repositories CA cert file. Defaults to ``." + description = "Helm repositories CA cert file. Defaults to `\"\"`." } variable "helm_repo_username" { type = string default = null - description = "Username for HTTP basic authentication against the Helm repository. Defaults to ``." + description = "Username for HTTP basic authentication against the Helm repository. Defaults to `\"\"`." } variable "helm_repo_password" { type = string default = null - description = "Password for HTTP basic authentication against the Helm repository. Defaults to ``." + description = "Password for HTTP basic authentication against the Helm repository. Defaults to `\"\"`." } variable "helm_devel" { @@ -315,7 +315,7 @@ variable "helm_replace" { variable "helm_description" { type = string default = null - description = "Set Helm release description attribute (visible in the history). Defaults to ``." + description = "Set Helm release description attribute (visible in the history). Defaults to `\"\"`." } variable "helm_lint" {