【发布时间】:2022-08-17 05:31:35
【问题描述】:
我正在尝试通过 terraform 为我的 Helm Chart 部署设置环境变量。目前我的代码如下所示:
resource \"helm_release\" \"datadog\" {
name = \"datadog\"
repository = \"https://helm.datadoghq.com\"
chart = \"datadog\"
namespace = \"datadog\"
create_namespace = true
# Default Configuration items
set {
name = \"datadog.apiKey\"
value = var.datadog_api_key
}
set {
name = \"datadog.appKey\"
value = var.datadog_app_key
}
set {
name = \"clusterAgent.enabled\"
value = true
}
set {
name = \"targetSystem\"
value = \"linux\"
}
# Set Datadog Configuration Items
# Event Collection
set {
name = \"agents.rbac.create\"
value = true
}
set {
name = \"datadog.leaderElection\"
value = true
}
set {
name = \"datadog.collectEvents\"
value = true
}
# Custom/External Metrics
set {
name = \"clusterAgent.metricsProvider.enabled\"
value = true
}
# APM Configuration
set {
name = \"datadog.apm.enabled\"
value = true
}
# Logs Configuration
set {
name = \"datadog.logs.enabled\"
value = true
}
set {
name = \"datadog.logs.containerCollectAll\"
value = true
}
set {
name = \"datadog.containerExcludeLogs\"
value = local.exclude_image_list
}
# Set logging verbosity, valid log levels are: trace, debug, info, warn, error, critical, off. Default is info
set {
name = \"datadog.logLevel\"
value = \"INFO\"
}
# Process Collection Configuration
set {
name = \"datadog.processAgent.enabled\"
value = true
}
# Exclude Containers
set {
name = \"datadog.containerExclude\"
value = local.exclude_image_list
}
# Set Environment Variables
# DD_LOGS_CONFIG_USE_HTTP is for DD AWS PrivateLink: https://docs.datadoghq.com/agent/guide/private-link/?tab=useast1
set {
name = \"env\"
value = \"{DD_LOGS_CONFIG_USE_HTTP = true}\"
}
}
请注意底部,我是如何设置的。我尝试将它作为字符串传递,但它不起作用。我也将它设置为一个也不起作用的地图。当我将其设置为地图时,出现以下错误:
╷
│ Error: Incorrect attribute value type
│
│ on .terraform/modules/datadog/helm.tf line 104, in resource \"helm_release\" \"datadog\":
│ 104: value = {\"DD_LOGS_CONFIG_USE_HTTP\" = true}
│
│ Inappropriate value for attribute \"value\": string required.
这是我要修改的舵图:
https://github.com/DataDog/helm-charts/tree/main/charts/datadog
-
根据文档,Helm 图表预期类型看起来更像
[\"name\"=\"DD_LOGS_CONFIG_USE_HTTP\", \"value\"=\"true\"],但不确定这是否完全正确。 -
当我尝试使用@MattSchuchard 时,我得到了这个: range can\'t iterate over [{name=DD_LOGS_CONFIG_USE_HTTP
-
Terraform 或 Helm API 错误?我假设 Helm 因为类型已转换。
-
是的,一个掌舵错误。它不喜欢输入的内容并且无法正确迭代该列表
-
听起来可能很愚蠢,但是您尝试过
value = {\"DD_LOGS_CONFIG_USE_HTTP\" = \"true\"}吗?
标签: kubernetes terraform kubernetes-helm datadog