Course outlines for learning terraform.
try| expected time | requirements |
|---|---|
| 30 minutes | A computer with Terraform installed, terraform knowledge. |
Goal: Write modules that have optional parameters.
Sometimes you want to use a module that has many parameters, some are optional. For example;
repositories = {
my_repo_5 = {
description = "My wonderful fifth repository."
},
my_repo_6 = {
description = "My wonderful sixth repository."
homepage_url = "https://robertdebock.nl/"
has_issues = false
has_projects = false
has_wiki = false
}
}
The example above shows a map of two entries; my_repo_5 and my_repo_6. The my_repo_6 has more options than my_repo_5. This means the module should try to see if a variable is set, otherwise return null.
null means the whole parameter is removed, as if it was not described.
See here.
Here is how to try parameters:
module "github" {
source = "../../"
for_each = var.repositories
repository_name = each.key
repository_description = each.value.description
repository_homepage_url = try(each.value.homepage_url, null)
repository_has_issues = try(each.value.has_issues, null)
repository_has_projects = try(each.value.has_projects, null)
repository_has_wiki = try(each.value.has_wiki, null)
}
See this repository. Or more complex.