Open MartinLoeper opened 3 months ago
If you check your resulting configuration, you see that the condition
parameter is synthesized as a string, not a hcl boolean.
Either add expression syntax to the condition string:
env = TerraformVariable(self, "env", type="string")
env.add_validation(
condition=f"${{contains(['production', 'staging'], {env.string_value})}}",
error_message="ERROR: Valid types are production and staging"
)
or use the CDKTF equivalent of the contains
function.
from cdktf import TerraformVariable, FnGenerated
env = TerraformVariable(self, "env", type="string")
env.add_validation(
condition=FnGenerated.contains(["production", "staging"], env.string_value),
error_message="ERROR: Valid types are production and staging"
)
I'll give it a try! Thanks @nbaju1 !!
ارجو الحل
في أربعاء، 29 مايو، 2024 في 2:29 م، كتب Martin Löper < @.***>:
I'll give it a try! Thanks @nbaju1 https://github.com/nbaju1 !!
— Reply to this email directly, view it on GitHub https://github.com/hashicorp/terraform-cdk/issues/3571#issuecomment-2137185580, or unsubscribe https://github.com/notifications/unsubscribe-auth/A5IDPXF6UFP7LJARUQVRMS3ZEW3ZRAVCNFSM6AAAAABFPPVPVWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZXGE4DKNJYGA . You are receiving this because you are subscribed to this thread.Message ID: @.***>
Description
I am a fairly new cdktf user and try to add a validation condition on the env variable s.t. it can only be set to "staging" or "production". However, no matter what I try, cdktf refuses to evaluate my expression.
I searched the docs and could not find any information on how to specify the condition property.
What I expected to work:
However, it failed with:
I also tried to reference the input variable as follows:
... which failed with:
Does not make sense to me, as I included
var.env
into the condition and it looks similar as examples in the non-cdk docs.Could someone please shed some light on that topic?
Links
Help Wanted
Community Note