Hi there!
I have started using the cdktf-tf-module-stack project to build a module with CDKTF.
I have set up a CDKTF project which uses the CDKTF Module and it works fine with a basic test, even passing a variable with a TFModuleVariable
.
Now I want to do a more complex use case, that would involve having a TFModuleVariable
which would be a complex object. Then I want to loop over it, and that is what fails. My current CDKTF module code looks like this:
class GitHubModule extends TFModuleStack {
constructor(scope: Construct, id: string) {
super(scope, id);
new ProviderRequirement(this, "github", "6.0.0", "integrations/github")
const memberships = new TFModuleVariable(this, "memberships", {
description: "Admin and members of the organization",
default: {
admins: ["fake"],
members: ["fake"]
}
})
memberships.value.admins.forEach(function(user: string) {
new Membership(scope, `github-membership-${user}", {
username: user,
role: "admin"
})
})
}
}
And that fails with:
[ERROR] default - TypeError: Cannot read properties of undefined (reading โforEachโ)
I understand that, at synth time the content is undefined
and therefore it fails. But then, this does not allow to pass dynamic configurations like this? I tried adding default
values so that it could have some value, but it still failed.
Thanks a lot in advance!
Fran