Skip to content

Releases: cloudposse/terraform-datadog-platform

v1.5.0

02 Dec 16:34
7d63b7a
Compare
Choose a tag to compare
fix(synthetics): Add elements operator to Synthetics Tests JSON Path assertion @elx-bob (#109) ## what
  • Add missing field elementsoperator to Synthetics Tests' JSON Path Assertion.
  • Add missing field to both multi-step and overall Assertions.

why

  • The field elementsoperator appears to have been missed in the module.
  • When attempting to set elementsoperator, it always uses the default value of firstElementMatches, so we are unable to set other values, such as everyElementMatches.

references

v1.4.2

25 Oct 08:13
Compare
Choose a tag to compare
Restore verbosity, update insecure dependencies @Nuru (#108) ## what
  • Restore test verbosity inadvertently disabled in #87
  • Consolidate Dependabot PRs
  • Add dependabot.yml

why

  • Restore normal behavior
  • Consolidate PRs
  • Group go security updates, since they only affect testing and are usually not exploitable here, to reduce the number of PRs to review

references

🐛 Bug Fixes

fix(synthetics): Adjust timeframes loop to include child objects @elx-bob (#107) ## what
  • Change loop to use child objects instead of timeframes object.
  • Update Datadog provider requirements for synthetics
  • Fix broken test

why

  • Synthetics options.scheduling.timeframes was incorrectly treated as an object, and is now correctly treated as a list of objects, as specified in the API documentation
  • Improved API validation at the server level uncovered a bug in the Datadog provider for synthetic tests, which was fixed in provider v3.43.1
  • The test requirement that the monitor had no tags was overly strict, requiring a nil output rather than an empty one, causing properly working code to be marked as failing

references

🤖 Automatic Updates

Migrate new test account @osterman (#106) ## what - Update `.github/settings.yml` - Update `.github/chatops.yml` files

why

  • Re-apply .github/settings.yml from org level to get terratest environment
  • Migrate to new test account

References

  • DEV-388 Automate clean up of test account in new organization
  • DEV-387 Update terratest to work on a shared workflow instead of a dispatch action
  • DEV-386 Update terratest to use new testing account with GitHub OIDC
Update .github/settings.yml @osterman (#101) ## what - Update `.github/settings.yml` - Drop `.github/auto-release.yml` files

why

  • Re-apply .github/settings.yml from org level
  • Use organization level auto-release settings

references

  • DEV-1242 Add protected tags with Repository Rulesets on GitHub
Update .github/settings.yml @osterman (#99) ## what - Update `.github/settings.yml` - Drop `.github/auto-release.yml` files

why

  • Re-apply .github/settings.yml from org level
  • Use organization level auto-release settings

references

  • DEV-1242 Add protected tags with Repository Rulesets on GitHub
Update release workflow to allow pull-requests: write @osterman (#98) ## what - Update workflow (`.github/workflows/release.yaml`) to have permission to comment on PR

why

  • So we can support commenting on PRs with a link to the release
Update GitHub Workflows to use shared workflows from '.github' repo @osterman (#97) ## what - Update workflows (`.github/workflows`) to use shared workflows from `.github` repo

why

  • Reduce nested levels of reusable workflows
Update GitHub Workflows to Fix ReviewDog TFLint Action @osterman (#96) ## what - Update workflows (`.github/workflows`) to add `issue: write` permission needed by ReviewDog `tflint` action

why

  • The ReviewDog action will comment with line-level suggestions based on linting failures
Update GitHub workflows @osterman (#95) ## what - Update workflows (`.github/workflows/settings.yaml`)

why

  • Support new readme generation workflow.
  • Generate banners
Use GitHub Action Workflows from `cloudposse/.github` Repo @osterman (#94) ## what
  • Install latest GitHub Action Workflows

why

  • Use shared workflows from cldouposse/.github repository
  • Simplify management of workflows from centralized hub of configuration
Add GitHub Settings @osterman (#93) ## what - Install a repository config (`.github/settings.yaml`)

why

  • Programmatically manage GitHub repo settings
Update README.md and docs @cloudpossebot (#91) ## what This is an auto-generated PR that updates the README.md and docs

why

To have most recent changes of README.md and doc from origin templates

Update Scaffolding @osterman (#92) ## what - Reran `make readme` to rebuild `README.md` from `README.yaml` - Migrate to square badges - Add scaffolding for repo settings and Mergify

why

  • Upstream template changed in the .github repo
  • Work better with repository rulesets
  • Modernize look & feel

v1.4.1 Align monitor support with Datadog REST API

10 Feb 00:25
0cb1edf
Compare
Choose a tag to compare

🐛 Bug Fixes

Add additional options to monitor configuration @Nuru (#89)

what

  • Add additional options to monitor configuration

Note: min_failure_duration and min_location_failed are in the API, but are not supported in the Terraform provider v3.36.0, which is current as of this PR opening.

why

  • Follow-up to #87 which left some options out by mistake

references

v1.4.0 Align monitor support with Datadog REST API

09 Feb 23:03
abc9aaa
Compare
Choose a tag to compare

In this release, we preserve backward compatibility, but going forward we only support monitor configurations that are the Terraform equivalent of the JSON used by the Datadog API.

See modules/monitors/README.md for more details.

🚀 Enhancements

Update monitors to support latest features, favor API model @Nuru (#87)

what

  • Update the monitors support to support all current features supported by the Datadog terraform provider
  • Revise the input to match the Datadog API model (see modules/monitors/README.md for details)

why

  • Module did not support several current features
  • Make it easy to use the Datadog Web Console to create and edit monitors, then convert the exported JSON to input to this module

references

🤖 Automatic Updates

Update README.md and docs @cloudpossebot (#83)

what

This is an auto-generated PR that updates the README.md and docs

why

To have most recent changes of README.md and doc from origin templates

v1.3.0

23 Oct 18:49
de6603d
Compare
Choose a tag to compare
Enhance synthetics to accept Datadog API output of test definitions @Nuru (#81)

what

  • For all modules:
    • Remove dependency on Terraform AWS provider
    • Update Terraform requirement to v1.0.0
  • Enhance the synthetics module:
    • Accept tests defined according to the schema of the Datadog API outputs
    • Make addition of null-label tags optional

why

  • Nothing in the modules needs or is specific to AWS
  • Terraform has been in General Release (v1.0.0) for long enough to drop support for pre-release versions
  • Make it easy to create and modify tests using the Datadog web UI and then maintain them via Terraform
  • Better control of tagging

references

v1.2.0

16 Aug 16:59
97ad006
Compare
Choose a tag to compare
Added scheduling options @zdmytriv (#79)

what

Added support for scheduling_options

Should be used like this:

k8s-no-data-from-cronjob:
  type: "query alert"
  query: "..."
  message: "..."
  ...
  scheduling_options:
    - evaluation_window:
        - day_starts: "07:00"

why

Added support for scheduling_options

references

Sync github @max-lobur (#77)

Rebuild github dir from the template

v1.1.0

17 May 09:03
8ff840e
Compare
Choose a tag to compare
  • No changes

v1.0.1

10 Sep 00:32
8ff840e
Compare
Choose a tag to compare

🚀 Enhancements

fix: updated lookup for thresholds in monitor slo. @ssay-work (#71)

what

  • lookup function did not pull the correct value required for thresholds, and instead went to the default.
    • This resulted in an error when creating an SLO of type monitor when using more then one threshold.

why

  • We are creating all of our metrics, monitors, SLOs, etc with IaC, using cloud posse's modules (thanks!)

v1.0.0

15 Aug 16:55
ccc10c5
Compare
Choose a tag to compare
Refactor `slo` module. Update monitor-based SLOs to be able to create corresponding monitors @aknysh (#69)

what

  • Refactor slo module
  • Update monitor-based SLOs to be able to create corresponding monitors
  • Add example of monitor-based SLO
  • Update README

why

  • Separate metric-based SLOs and monitor-based SLOs into different files for readability
  • When creating monitor-based SLOs, allow specifying and creating the corresponding monitors and assigning them to the SLOs (in YAML config for each SLO)
  # For each monitor-based SLO, either `monitor_ids` or `monitors` should be provided
  # `monitor_ids` is a list of externally created monitors to use for the monitor-based SLO
  # If `monitors` map is provided, the monitors will be created by the module and assigned to the SLO

references

v0.32.4

04 Aug 15:20
cccc1a5
Compare
Choose a tag to compare

🚀 Enhancements

Fix: Inconsistent conditional result types @a296Cg (#68)

what

  • Fixes the error where terraform expects both sides of ternary to be same complex type/elements.

why

  • When adding multiple monitors with different requirements, terraform complains that the object does not match throughout the compiled map.
locals {
  datadog_monitors = {
    test-object-1 = {
      name                = "test-object-1"
      message             = "test-object-1"
      type                = "metric alert"
      query               = "avg(last_30m):avg:system.load.norm.5{*} by {host} > 2"
      require_full_window = true
      threshold_windows   = {}
      thresholds = {
        critical = 2
      }
    }
    test-object-2 = {
      name              = "test-object-2"
      message           = "test-object-2"
      type              = "metric alert"
      query             = "avg(last_30m):avg:system.load.norm.5{*} by {host} > 2"
      threshold_windows = {}
      thresholds = {
        critical = 2
      }
    }
  }
}
│ Error: Inconsistent conditional result types
│
│   on .modules/monitors/main.tf line 9, in resource "datadog_monitor" "default":
│    9:   for_each = local.enabled ? { for k, v in var.datadog_monitors : k => v if lookup(v, "enabled", true) } : {}
│     ├────────────────
│     │ local.enabled is true
│     │ var.datadog_monitors is object with 2 attributes
│
│ The true and false result expressions must have consistent types. The
│ 'true' value includes object attribute "test-object-1", which is absent in
│ the 'false' value.

references

🐛 Bug Fixes

Fix: Inconsistent conditional result types @a296Cg (#68)

what

  • Fixes the error where terraform expects both sides of ternary to be same complex type/elements.

why

  • When adding multiple monitors with different requirements, terraform complains that the object does not match throughout the compiled map.
locals {
  datadog_monitors = {
    test-object-1 = {
      name                = "test-object-1"
      message             = "test-object-1"
      type                = "metric alert"
      query               = "avg(last_30m):avg:system.load.norm.5{*} by {host} > 2"
      require_full_window = true
      threshold_windows   = {}
      thresholds = {
        critical = 2
      }
    }
    test-object-2 = {
      name              = "test-object-2"
      message           = "test-object-2"
      type              = "metric alert"
      query             = "avg(last_30m):avg:system.load.norm.5{*} by {host} > 2"
      threshold_windows = {}
      thresholds = {
        critical = 2
      }
    }
  }
}
│ Error: Inconsistent conditional result types
│
│   on .modules/monitors/main.tf line 9, in resource "datadog_monitor" "default":
│    9:   for_each = local.enabled ? { for k, v in var.datadog_monitors : k => v if lookup(v, "enabled", true) } : {}
│     ├────────────────
│     │ local.enabled is true
│     │ var.datadog_monitors is object with 2 attributes
│
│ The true and false result expressions must have consistent types. The
│ 'true' value includes object attribute "test-object-1", which is absent in
│ the 'false' value.

references