Skip to content

Latest commit

 

History

History
134 lines (92 loc) · 3.19 KB

README.md

File metadata and controls

134 lines (92 loc) · 3.19 KB

terraform-provider-pingdom

This project is a terraform provider for pingdom.

This currently only supports working with basic HTTP and ping checks.

Build and install

Dependencies

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.

You'll also need the libraries from terraform. Check out those docs under plugin basics.

Build

Run go install github.com/russellcardullo/terraform-provider-pingdom

Install

Add the following to $HOME/.terraformrc

providers {
    pingdom = "$GOPATH/bin/terraform-provider-pingdom"
}

Usage

Basic Check

variable "pingdom_user" {}
variable "pingdom_password" {}
variable "pingdom_api_key" {}

provider "pingdom" {
    user = "${var.pingdom_user}"
    password = "${var.pingdom_password}"
    api_key = "${var.pingdom_api_key}"
}

resource "pingdom_check" "example" {
    type = "http"
    name = "my http check"
    host = "example.com"
    resolution = 5
}

resource "pingdom_ping_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
}

Resources

Pingdom Check

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.

The following attributes are exported:

id The ID of the Pingdom check