diff --git a/spacemk/exporters/terraform.py b/spacemk/exporters/terraform.py index 142719f..ba4958e 100644 --- a/spacemk/exporters/terraform.py +++ b/spacemk/exporters/terraform.py @@ -189,9 +189,16 @@ def _check_workspaces_data(self, data: list[dict]) -> list[dict]: logging.info("Start checking workspaces data") def check_for_bsl_terraform(version): + warning = None + + # Ensure version is not pessimistic + if version.startswith("~") or version.startswith("^"): + version = f"{version[1]}={version[2:]}" + warning = "Pessimistic version, will be changed to opportunistic." + if version == "latest" or semver.match(version, ">=1.5.7"): - return True - return False + return True, warning + return False, warning for key, item in enumerate(data): warnings = [] @@ -202,8 +209,11 @@ def check_for_bsl_terraform(version): if item.get("attributes.vcs-repo.service-provider") is None: warnings.append("No VCS configuration") - if check_for_bsl_terraform(item.get("attributes.terraform-version")): + bsl, warning = check_for_bsl_terraform(item.get("attributes.terraform-version")) + if bsl: warnings.append("BSL Terraform version") + if warning is not None: + warnings.append(warning) data[key]["warnings"] = ", ".join(warnings)