Terraform version:
Terraform v0.12.6
+ provider.external v1.2.0
+ provider.helm v0.10.4
+ provider.rancher2 v1.6.0
I have this resource in my rancher module:
resource "helm_release" "rancher" {
name = "rancher"
namespace = "cattle-system"
repository = data.helm_repository.rancher_repo.metadata[0].name
chart = "${data.helm_repository.rancher_repo.metadata[0].name}/rancher"
version = var.rancher_chart_version
set {
name = "letsEncrypt.environment"
value = var.letsencrypt_env
}
set {
name = "hostname"
value = var.rancher_dns
}
set {
name = "ingress.tls.source"
value = var.rancher_ssl
}
set {
name = "letsEncrypt.email"
value = var.notification_email
}
}
I want to create an output to use the var.rancher_dns.
Creating an output like this
output "rancher_url" {
value = helm_release.rancher
}
will give me an output like this:
rancher_url = {
"chart" = "rancher-stable/rancher"
"disable_webhooks" = false
"force_update" = false
"id" = "rancher"
"metadata" = [
{
"chart" = "rancher"
"name" = "rancher"
"namespace" = "cattle-system"
"revision" = 1
"values" = "hostname: RANCHER_URL\ningress:\n tls:\n source: letsEncrypt\nletsEncrypt:\n email: MY_MAIL\n environment: staging\n"
"version" = "2.3.2"
},
]
"name" = "rancher"
"namespace" = "cattle-system"
"recreate_pods" = false
"repository" = "rancher-stable"
"reuse" = false
"reuse_values" = false
"set" = [
{
"name" = "hostname"
"value" = "RANCHER_URL"
},
{
"name" = "ingress.tls.source"
"value" = "letsEncrypt"
},
{
"name" = "letsEncrypt.email"
"value" = "MY_MAIL"
},
{
"name" = "letsEncrypt.environment"
"value" = "staging"
},
]
"set_sensitive" = []
"set_string" = []
"status" = "DEPLOYED"
"timeout" = 300
"verify" = false
"version" = "2.3.2"
"wait" = true
}
Okay, but how do I get the actual url?
I tried this:
output "rancher_url" {
value = lookup(helm_release.rancher,"set")
}
which will give me this output:
rancher_url = [
{
"name" = "hostname"
"value" = "MY_URL"
},
{
"name" = "ingress.tls.source"
"value" = "letsEncrypt"
},
{
"name" = "letsEncrypt.email"
"value" = "MY_MAIL"
},
{
"name" = "letsEncrypt.environment"
"value" = "staging"
},
]
From here on I have no idea how to proceed.
I tried different functions like element, index but I think I do not understand the structure yet.
Thanks for answering in advance.