Releases: cloudposse/terraform-datadog-platform
Releases · cloudposse/terraform-datadog-platform
v1.5.0
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 offirstElementMatches
, so we are unable to set other values, such aseveryElementMatches
.
references
v1.4.2
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
- Closes #100
- Needed to fix DataDog/terraform-provider-datadog#2531
🤖 Automatic Updates
Migrate new test account @osterman (#106)
## what - Update `.github/settings.yml` - Update `.github/chatops.yml` fileswhy
- Re-apply
.github/settings.yml
from org level to getterratest
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` fileswhy
- 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` fileswhy
- 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 PRwhy
- 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` repowhy
- 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` actionwhy
- 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 docswhy
To have most recent changes of README.md and doc from origin templates
v1.4.1 Align monitor support with Datadog REST API
🐛 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
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
- monitors/README
- Supersedes #86
- Closes #85
- Supersedes #84
- Supersedes #76
🤖 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
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
- Overview of Datadog synthetic tests
- API to retrieve an individual API test
- API to retrieve an individual browser test
- API to retrieve a list of all tests
v1.2.0
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
- No changes
v1.0.1
🚀 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.
- This resulted in an error when creating an SLO of type
why
- We are creating all of our metrics, monitors, SLOs, etc with IaC, using cloud posse's modules (thanks!)
v1.0.0
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
🚀 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
- Use suggestion made by @aknysh in
#58
#58 (comment) - May be related to/fix the issue brought up in #66
🐛 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
- Use suggestion made by @aknysh in
#58
#58 (comment) - May be related to/fix the issue brought up in #66