This project is a terraform provider for pingdom.
This currently only supports working with basic HTTP and ping checks.
You should have a working Go environment setup. If not check out the Go getting started guide.
This relies on the go-pingdom library. To
get that: go get github.com/russellcardullo/go-pingdom/pingdom
.
You'll also need the libraries from terraform. Check out those docs under plugin basics.
Run go install github.com/russellcardullo/terraform-provider-pingdom
Add the following to $HOME/.terraformrc
providers {
pingdom = "$GOPATH/bin/terraform-provider-pingdom"
}
Basic Check
variable "pingdom_user" {}
variable "pingdom_password" {}
variable "pingdom_api_key" {}
variable "pingdom_account_email" {} # Optional: only required for multi-user accounts
provider "pingdom" {
user = "${var.pingdom_user}"
password = "${var.pingdom_password}"
api_key = "${var.pingdom_api_key}"
account_email = "${var.pingdom_account_email}" # Optional: only required for multi-user accounts
}
resource "pingdom_check" "example" {
type = "http"
name = "my http check"
host = "example.com"
resolution = 5
}
resource "pingdom_check" "ping_example" {
type = "ping"
name = "my ping check"
host = "example.com"
resolution = 1
}
Apply with:
terraform apply \
-var 'pingdom_user=YOUR_USERNAME' \
-var 'pingdom_password=YOUR_PASSWORD' \
-var 'pingdom_api_key=YOUR_API_KEY'
Using attributes from other resources
variable "heroku_email" {}
variable "heroku_api_key" {}
variable "pingdom_user" {}
variable "pingdom_password" {}
variable "pingdom_api_key" {}
provider "heroku" {
email = "${var.heroku_email}"
api_key = "${var.heroku_api_key}"
}
provider "pingdom" {
user = "${var.pingdom_user}"
password = "${var.pingdom_password}"
api_key = "${var.pingdom_api_key}"
}
resource "heroku_app" "example" {
name = "my-app"
region = "us"
}
resource "pingdom_check" "example" {
name = "my check"
host = "${heroku_app.example.heroku_hostname}"
resolution = 5
}
The following attributes can be set:
name - (Required) The name of the check
host - (Required) The hostname to check. Should be in the format example.com
.
resolution - (Required) The check resolution. Allowed values: (1,5,15,30,60).
type - (Required) The check type. Allowed values: (http, ping).
sendtoemail - Send alerts as email. Allowed values: (true,false).
sendtosms - Send alerts as SMS. Allowed values: (true,false).
sendtotwitter - Send alerts to Twitter. Allowed values: (true,false).
sendtoiphone - Send alerts to iPhone. Allowed values: (true,false).
sendtoandroid - Send alerts to Android. Allowed values: (true,false).
sendnotificationwhendown - Send notification when down n times.
notifyagainevery - Notify again after n results. A value of 0 means no additional notifications will be sent.
notifywhenbackup - Notify when backup.
uselegacynotifications - Use legacy (UP/DOWN) notifications if true.
The following attributes are exported:
id The ID of the Pingdom check