main.tf (55 lines of code) (raw):
/**
* The entrypoint for this Module.
*/
locals {
charts = var.charts
}
resource "helm_release" "this" {
//count = length(local.charts)
for_each = { for c in local.charts : substr(format("%s-%s", c.app.name, c.namespace), 0, 63) => c }
namespace = try(each.value.namespace, "kube-none")
repository = try(each.value.repository, null)
repository_key_file = try(lookup(each.value.repository_config, "repository_key_file", null), null)
repository_cert_file = try(lookup(each.value.repository_config, "repository_cert_file", null), null)
repository_ca_file = try(lookup(each.value.repository_config, "repository_ca_file", null), null)
repository_username = try(lookup(each.value.repository_config, "repository_username", null), null)
repository_password = try(lookup(each.value.repository_config, "repository_password", null), null)
name = each.value.app["name"]
version = each.value.app["version"]
chart = each.value.app["chart"]
force_update = lookup(each.value.app, "force_update", true)
wait = lookup(each.value.app, "wait", true)
recreate_pods = lookup(each.value.app, "recreate_pods", false)
max_history = lookup(each.value.app, "max_history", 0)
lint = lookup(each.value.app, "lint", true)
cleanup_on_fail = lookup(each.value.app, "cleanup_on_fail", true)
create_namespace = lookup(each.value.app, "create_namespace", false)
disable_webhooks = lookup(each.value.app, "disable_webhooks", false)
verify = lookup(each.value.app, "verify", true)
reuse_values = lookup(each.value.app, "reuse_values", false)
reset_values = lookup(each.value.app, "reset_values", false)
atomic = lookup(each.value.app, "atomic", false)
skip_crds = lookup(each.value.app, "skip_crds", false)
render_subchart_notes = lookup(each.value.app, "render_subchart_notes", true)
disable_openapi_validation = lookup(each.value.app, "disable_openapi_validation", false)
wait_for_jobs = lookup(each.value.app, "wait_for_jobs", true)
dependency_update = lookup(each.value.app, "dependency_update", true)
replace = lookup(each.value.app, "replace", false)
values = each.value.values != null ? [each.value.values] : []
dynamic "set" {
iterator = item
for_each = each.value.params == null ? [] : each.value.params
content {
name = item.value.name
value = item.value.value
}
}
dynamic "set_sensitive" {
iterator = item
for_each = each.value.secrets == null ? [] : each.value.secrets
content {
name = item.value.name
value = item.value.value
}
}
}