Merge branch 'MON-486_changes_for_ter_0.12.6' into 'master'

Resolve MON-486 "Changes for ter 0.12.6"

Closes MON-486

See merge request claranet/pt-monitoring/projects/datadog/terraform/monitors!83
This commit is contained in:
Quentin Manfroi 2019-08-01 18:17:04 +02:00
commit e543872391
41 changed files with 149 additions and 125 deletions

View File

@ -6,7 +6,7 @@ stages:
- deploy - deploy
auto_update: auto_update:
image: qmanfroi/datadog-terraform:latest image: claranet/datadog-terraform:latest
stage: test stage: test
script: script:
- ./scripts/auto_update.sh ./ - ./scripts/auto_update.sh ./

View File

@ -31,11 +31,11 @@ After any change on this repo, you need to run the `./scripts/auto_update.sh ./`
### Terraform ### ### Terraform ###
Version >= 0.12 is required to use these modules of monitors. Here is the minimum version required to use these modules of integrations.
``` ```
terraform { terraform {
required_version = "~> 0.12" required_version = ">= 0.12.6"
} }
``` ```

View File

@ -88,15 +88,8 @@ query = <<EOQ
'${var.disk_utilization_forecast_algorithm}', '${var.disk_utilization_forecast_algorithm}',
${var.disk_utilization_forecast_deviations}, ${var.disk_utilization_forecast_deviations},
interval='${var.disk_utilization_forecast_interval}', interval='${var.disk_utilization_forecast_interval}',
${var.disk_utilization_forecast_algorithm == "linear" ? format( ${var.disk_utilization_forecast_algorithm == "linear" ? format("history='%s',model='%s'", var.disk_utilization_forecast_linear_history, var.disk_utilization_forecast_linear_model) : ""}
"history='%s',model='%s'", ${var.disk_utilization_forecast_algorithm == "seasonal" ? format("seasonality='%s'", var.disk_utilization_forecast_seasonal_seasonality) : ""}
var.disk_utilization_forecast_linear_history,
var.disk_utilization_forecast_linear_model,
) : ""}
${var.disk_utilization_forecast_algorithm == "seasonal" ? format(
"seasonality='%s'",
var.disk_utilization_forecast_seasonal_seasonality,
) : ""}
) )
>= ${var.disk_utilization_forecast_threshold_critical} >= ${var.disk_utilization_forecast_threshold_critical}
EOQ EOQ
@ -176,15 +169,8 @@ resource "datadog_monitor" "memory_utilization_forecast" {
'${var.memory_utilization_forecast_algorithm}', '${var.memory_utilization_forecast_algorithm}',
${var.memory_utilization_forecast_deviations}, ${var.memory_utilization_forecast_deviations},
interval='${var.memory_utilization_forecast_interval}', interval='${var.memory_utilization_forecast_interval}',
${var.memory_utilization_forecast_algorithm == "linear" ? format( ${var.memory_utilization_forecast_algorithm == "linear" ? format("history='%s',model='%s'", var.memory_utilization_forecast_linear_history, var.memory_utilization_forecast_linear_model) : ""}
"history='%s',model='%s'", ${var.memory_utilization_forecast_algorithm == "seasonal" ? format("seasonality='%s'", var.memory_utilization_forecast_seasonal_seasonality) : ""}
var.memory_utilization_forecast_linear_history,
var.memory_utilization_forecast_linear_model,
) : ""}
${var.memory_utilization_forecast_algorithm == "seasonal" ? format(
"seasonality='%s'",
var.memory_utilization_forecast_seasonal_seasonality,
) : ""}
) )
>= ${var.memory_utilization_forecast_threshold_critical} >= ${var.memory_utilization_forecast_threshold_critical}
EOQ EOQ

View File

@ -8,6 +8,7 @@ resource "datadog_monitor" "mongodb_primary" {
${var.mongodb_primary_aggregator}(${var.mongodb_primary_timeframe}): ${var.mongodb_primary_aggregator}(${var.mongodb_primary_timeframe}):
min:mongodb.replset.state${module.filter-tags.query_alert} by {replset_name} >= 2 min:mongodb.replset.state${module.filter-tags.query_alert} by {replset_name} >= 2
EOQ EOQ
evaluation_delay = var.evaluation_delay evaluation_delay = var.evaluation_delay
new_host_delay = var.new_host_delay new_host_delay = var.new_host_delay
notify_no_data = true notify_no_data = true

48
scripts/00_requirements.sh Executable file
View File

@ -0,0 +1,48 @@
#!/bin/bash
set -u
source "$(dirname $0)/utils.sh"
goto_root
function check_command() {
local cmd="$1"
if ! command -v ${cmd} > /dev/null 2>&1; then
echo "This requires ${cmd} command, please install it first."
exit 1
fi
}
function verlte() {
[ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ]
}
function verlt() {
[ "$1" = "$2" ] && return 1 || verlte $1 $2
}
function check_version() {
if [[ "$1" == "terraform" ]]; then
tmp_dir=$(mktemp -d)
cd ${tmp_dir}
cur_ver=$(terraform version | head -n 1 | cut -d' ' -f2)
cur_ver=${cur_ver#"v"}
cd - > /dev/null
rm -fr ${tmp_dir}
req_ver=$(grep required_version README.md | awk '{print $4}')
req_ver=${req_ver%'"'}
elif [[ "$1" == "terraform-docs" ]]; then
req_ver="0.6.0"
cur_ver=$(terraform-docs --version)
else
return
fi
if ! verlte $req_ver $cur_ver; then
echo "This requires at least version ${req_ver} of $1, please upgrade (current version is ${cur_ver})"
exit 2
fi
}
for cmd in terraform terraform-docs; do
check_command $cmd
check_version $cmd
done

View File

@ -31,11 +31,7 @@ EOF
terraform init ${dir} terraform init ${dir}
terraform validate ${dir} terraform validate ${dir}
rm -f ${dir}/tmp.tf rm -f ${dir}/tmp.tf
# hack to work around bug https://github.com/hashicorp/terraform/issues/21434
# TODO when fixed, remove this bloc and add "terraform fmt -recursive" to the end of this file
for file in $(grep ' = <<E' ${dir}/* | cut -d':' -f1 | sort | uniq); do
sed -Ei '/<<EO(Q|F)/,/EO(Q|F)/ s/^#*/#/' ${file}
terraform fmt ${dir}
sed -Ei '/<<EO(Q|F)/,/EO(Q|F)/ s/^[[:space:]]*#//' ${file}
done
done done
terraform fmt -recursive

View File

@ -109,15 +109,8 @@ query = <<EOQ
'${var.disk_space_forecast_algorithm}', '${var.disk_space_forecast_algorithm}',
${var.disk_space_forecast_deviations}, ${var.disk_space_forecast_deviations},
interval='${var.disk_space_forecast_interval}', interval='${var.disk_space_forecast_interval}',
${var.disk_space_forecast_algorithm == "linear" ? format( ${var.disk_space_forecast_algorithm == "linear" ? format("history='%s',model='%s'", var.disk_space_forecast_linear_history, var.disk_space_forecast_linear_model) : ""}
"history='%s',model='%s'", ${var.disk_space_forecast_algorithm == "seasonal" ? format("seasonality='%s'", var.disk_space_forecast_seasonal_seasonality) : ""}
var.disk_space_forecast_linear_history,
var.disk_space_forecast_linear_model,
) : ""}
${var.disk_space_forecast_algorithm == "seasonal" ? format(
"seasonality='%s'",
var.disk_space_forecast_seasonal_seasonality,
) : ""}
) )
>= ${var.disk_space_forecast_threshold_critical} >= ${var.disk_space_forecast_threshold_critical}
EOQ EOQ