1
1
Fork 0
mirror of https://gitlab.archlinux.org/archlinux/infrastructure.git synced 2024-05-19 10:46:04 +02:00

Terraform uptimerobot monitors

Add our uptimerobot to terraform so it's managed in code and we can
easily extend it. This currently only adds our to be monitored sites and
leaves the status page as is now.

Deleting resources on uptimerobot will cause terraform unable to run
see: https://github.com/louy/terraform-provider-uptimerobot/issues/82

References: #209
This commit is contained in:
Jelle van der Waa 2021-05-14 18:30:01 +02:00
parent 7b216d5710
commit f741bc6a20
No known key found for this signature in database
GPG Key ID: C06086337C50773E
4 changed files with 80 additions and 0 deletions

View File

@ -0,0 +1,11 @@
$ANSIBLE_VAULT;1.1;AES256
62633262613331616434383361643166396632326534376238363661343162383563633738666165
3265376465363330373030636337643838663232346331660a356536353363363837323466363066
65363737363465643633323536393261636438383336343334656439333136383934376538653466
3965373639366131330a633962366637396332363237363364383238663133323664616132303365
62653761353366623364363365633937343339386562323133353030316635376265356166343965
64333931383836306563373138383262313335663530623863666565656136653162333437333536
34346632313438386362643433373936346266353562333562303562303432316330663261303636
32363735346366323038346336386364313634356131633463373837366261623534626361636563
36656164633363396231346135643765663062656230333838343538643361383632373533306236
3261343064333737346166316562616637353330373736633634

View File

@ -18,6 +18,25 @@ provider "registry.terraform.io/hashicorp/external" {
]
}
provider "registry.terraform.io/louy/uptimerobot" {
version = "0.5.1"
constraints = "0.5.1"
hashes = [
"h1:Oc5L04pt+5NJ8n47K7tVHbqFmuobW/x5zaF5sPGCQwE=",
"zh:0cab4092125cf524a2e5caf74a4e90f230734b20bbceb20e51ffb82f2fcc90fc",
"zh:130d9d9ddb2f9070d7846066d424d785a624472a25b413382bf6e80ad4754158",
"zh:29c1ff142ec76adb751cf1e99b2c7bd9ba5f17b97bfcce5954043db9c4a83039",
"zh:2ade3d4b911bcceb795b009105dfd58c40d27d06c2ea7402159a76559e86dd25",
"zh:474d83e659597ee143d09100787bb35daf05dc2a0b3fbfcb8159792143b8c598",
"zh:62694db2f947bafb00532a5b961067eb488005061e684eb74148bcbf80805270",
"zh:6a4e423519a331328764ba0790eb79c63882e77aa8ffdf811a319b5efaf7034e",
"zh:7e7f7c16f54690f84fcb6d1a90848bd51fc7b2eb2cc23bfa0583e18a80157393",
"zh:a4a63a32ac0bbe0d11fda36768c824698db4c2378cbfdf5522276fe996621864",
"zh:af3062664c5c4ec012af48dea769318dcb8ef77cbb59f15d8b6c252fb9adda85",
"zh:de555bac4bd86d17e7b5592ec22a6db8d1496470d3dab4fa286a86e44bdad991",
]
}
provider "registry.terraform.io/mrparkers/keycloak" {
version = "2.0.0"
constraints = "2.0.0"

46
tf-stage2/uptimerobot.tf Normal file
View File

@ -0,0 +1,46 @@
# When deleting a resource outside of terraform, the provider errors out and a
# resource has to be manually deleted in terraform, see:
# https://github.com/louy/terraform-provider-uptimerobot/issues/82
data "external" "vault_uptimerobot" {
program = ["${path.module}/../misc/get_key.py", "group_vars/all/vault_uptimerobot.yml",
"vault_uptimerobot_api_key",
"vault_uptimerobot_alert_contact",
"--format", "json"]
}
provider "uptimerobot" {
api_key = data.external.vault_uptimerobot.result.vault_uptimerobot_api_key
}
data "uptimerobot_account" "account" {}
data "uptimerobot_alert_contact" "default_alert_contact" {
friendly_name = data.external.vault_uptimerobot.result.vault_uptimerobot_alert_contact
}
locals {
archlinux_org_monitor = {
"Wiki" = "https://wiki.archlinux.org"
"Website" = "https://archlinux.org"
"Security Tracker" = "https://security.archlinux.org"
"Gitlab" = "https://gitlab.archlinux.org"
"Forum" = "https://bbs.archlinux.org"
"Bugtracker" = "https://bugs.archlinux.org"
"AUR" = "https://aur.archlinux.org"
"Man" = "https://man.archlinux.org"
}
}
resource "uptimerobot_monitor" "uptimerobot_monitor_archlinux" {
for_each = local.archlinux_org_monitor
friendly_name = each.key
type = "http"
url = each.value
interval = 60
alert_contact {
id = data.uptimerobot_alert_contact.default_alert_contact.id
}
}

View File

@ -7,6 +7,10 @@ terraform {
source = "mrparkers/keycloak"
version = "2.0.0"
}
uptimerobot = {
source = "louy/uptimerobot"
version = "0.5.1"
}
}
required_version = ">= 0.13"
}