我正试图通过terraform为我的Helm图表部署设置一个环境变量。目前,我的代码如下所示:
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
发布于 2022-08-09 11:20:32
这条路适用于我:
values = [<<YAML
datadog:
env:
- name: DD_LOGS_CONFIG_USE_HTTP
value: "true"
YAML
]发布于 2022-08-16 21:31:35
实际上,环境的值应该是一个带有键(name、value)的对象数组,terraform允许您在数组元素中定义键,因此可以分两个步骤:
name的值value的值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[0].name"
value = "DD_LOGS_CONFIG_USE_HTTP"
}
set {
name = "env[0].value"
value = "true"
}
}https://stackoverflow.com/questions/71024249
复制相似问题