« Back to Index

Datadog Terraform - Import Existing Resource

View original Gist on GitHub

Tags: #iac

main.tf

# -- define a boilerplate resource as per https://www.terraform.io/docs/import/usage.html --
# -- avoid datadog_timeboard as that's deprecated in favour of datadog_dashboard --
# terraform init
# terraform 0.13upgrade .
# terraform init
# terraform import datadog_dashboard.example_timeboard abc-de1-fgh
# terraform import datadog_monitor.example_monitor 12345678
# terraform show -no-color >> main.tf
# -- delete boilerplate 'resource' block and clean up appended version --
# terraform validate
# terraform fmt
# terraform plan
# -- delete any incorrect syntax from 'terraform show' such as going from <<~EOT to <<EOT --
# -- delete any unknown keys that exist because of 'terraform show' and which shouldn't be part of actual terraform code --
# -- clean up any inline messages that might have different spacing due to HEREDOC format of <<EOT --
# -- when using a datadog_timeboard there were the following issues... --
# -- ensure jsonencode() is given keys as strings whenever $ syntax used as it'll cause validation errors --
# -- some graph widgets aren't really graphs (e.g. a "note" widget) so it is missing the "title" field + wont have a "request" block either --

provider "datadog" {
  api_key = var.datadog_api_key
  app_key = var.datadog_app_key
}

resource "datadog_monitor" "example_monitor" {}
resource "datadog_dashboard" "example_timeboard" {}

variables.tf

variable "datadog_api_key" {
  default = "123"
}

variable "datadog_app_key" {
  default = "456"
}