Skip to content

Datadog Operator

Deploy the Datadog Operator and the Datadog Agent

module "datadog" {
  source = "../../modules/datadog"

  cluster_name   = "my-cluster"
  datadog_secret = "secretsmanager/secret/namespace"
  environment    = "example"
  product_name   = "dai"

  datadog_operator_helm_values = {
    values = [
      <<-YAML
      remoteConfiguration:
        enabled: true
      YAML
    ]
  }

  datadog_operator_helm_set = [
    {
      name  = "replicas"
      value = 2
    }
  ]

  datadog_agent_helm_values = [
    <<-YAML
    spec:
      override:
        clusterAgent:
          replicas: 1
    YAML
  ]

  datadog_agent_helm_set = [
    {
      name  = "spec.features.admissionController.agentSidecarInjection.image.tag",
      value = "7.57.2"
    }
  ]
}

Requirements

Name Version
terraform >= 1.3.2
aws ~> 5.0
helm ~> 2.6
kubectl >= 2.0.2
kubernetes >= 2.27
time >= 0.11.0

Providers

Name Version
helm ~> 2.6
kubectl >= 2.0.2
kubernetes >= 2.27
time >= 0.11.0

Modules

No modules.

Resources

Name Type
helm_release.datadog_agent resource
helm_release.datadog_operator resource
helm_release.datadog_secrets resource
helm_release.datadog_secrets_fargate resource
kubectl_manifest.fargate_cluster_role resource
kubectl_manifest.fargate_role_binding resource
kubernetes_annotations.this resource
time_sleep.this resource

Inputs

Name Description Type Default Required
cluster_name Name of the cluster string n/a yes
datadog_agent_helm_set List of Datadog Agent custom resource set values
list(object({
name = string
value = string
}))
[] no
datadog_agent_helm_values List of Datadog Agent custom resource values list(string) [] no
datadog_operator_helm_set List of Datadog Operator Helm set values
list(object({
name = string
value = string
}))
[] no
datadog_operator_helm_values List of Datadog Operator Helm values list(string) [] no
datadog_operator_helm_version Version of the datadog operator chart string "2.9.2" no
datadog_secret Name of the datadog secret in Secrets Manager string n/a yes
environment Name of the environment string n/a yes
namespace Namespace for Datadog resources string "monitoring" no
product_name Value of the product tag added to all metrics and logs sent to datadog string n/a yes

Outputs

No outputs.

Requirements

Name Version
terraform >= 1.3.2
aws >= 5.0.0
datadog ~> 3.39
helm ~> 2.6
kubernetes >= 2.0.0

Providers

Name Version
datadog ~> 3.39
helm ~> 2.6
kubernetes >= 2.0.0

Modules

Name Source Version
datadog_operator aws-ia/eks-blueprints-addon/aws ~> 1.0

Resources

Name Type
datadog_api_key.datadog_agent resource
datadog_application_key.datadog_agent resource
helm_release.datadog_agent resource
kubernetes_secret.datadog_keys resource

Inputs

Name Description Type Default Required
cluster_name Name of the cluster string n/a yes
datadog Object of Datadog configurations
object({
agent_api_key_name = optional(string) # by default it uses the cluster name
agent_app_key_name = optional(string) # by default it uses the cluster name
operator_chart_version = optional(string)
custom_resource_chart_version = optional(string)
})
{} no
datadog_agent_helm_values List of Datadog Agent custom resource values. https://github.com/DataDog/datadog-operator/blob/main/docs/configuration.v2alpha1.md
list(object({
name = string
value = string
}))
[] no
datadog_operator_helm_values List of Datadog Operator values
list(object({
name = string
value = string
}))
[
{
"name": "resources.requests.cpu",
"value": "10m"
},
{
"name": "resources.requests.memory",
"value": "50Mi"
}
]
no
namespace Namespace for Datadog resources string "monitoring" no

Outputs

No outputs.

Requirements

Name Version
terraform >= 1.3.2
aws >= 5.0.0
datadog ~> 3.39
helm ~> 2.6
kubernetes >= 2.0.0

Providers

Name Version
datadog ~> 3.39
helm ~> 2.6
kubernetes >= 2.0.0

Modules

Name Source Version
datadog_operator aws-ia/eks-blueprints-addon/aws ~> 1.0

Resources

Name Type
datadog_api_key.datadog_agent resource
datadog_application_key.datadog_agent resource
helm_release.datadog_agent resource
kubernetes_secret.datadog_keys resource

Inputs

Name Description Type Default Required
cluster_name Name of the cluster string n/a yes
datadog Object of Datadog configurations
object({
agent_api_key_name = optional(string) # by default it uses the cluster name
agent_app_key_name = optional(string) # by default it uses the cluster name
operator_chart_version = optional(string)
custom_resource_chart_version = optional(string)
})
{} no
datadog_agent_helm_values List of Datadog Agent custom resource values. https://github.com/DataDog/datadog-operator/blob/main/docs/configuration.v2alpha1.md
list(object({
name = string
value = string
}))
[] no
datadog_operator_helm_values List of Datadog Operator values
list(object({
name = string
value = string
}))
[
{
"name": "resources.requests.cpu",
"value": "10m"
},
{
"name": "resources.requests.memory",
"value": "50Mi"
}
]
no
namespace Namespace for Datadog resources string "monitoring" no

Outputs

No outputs.