terraform: update uptimerobot to a different provider
Define a resource for default_alert_contact of type e-mail for use in uptimerobot_monitor resource
Motivation: Error in terraform plan on tf-stage2:
Error: Failed to find alert contact by name root@archlinux.org
│
│ with data.uptimerobot_alert_contact.default_alert_contact,
│ on uptimerobot.tf line 18, in data "uptimerobot_alert_contact" "default_alert_contact":
│ 18: data "uptimerobot_alert_contact" "default_alert_contact" {
Merge request reports
Activity
Terraform plan output:
➜ terraform plan -no-color data.external.vault_hedgedoc: Reading... data.external.vault_keycloak: Reading... data.external.vault_monitoring: Reading... data.external.vault_github: Reading... data.external.vault_matrix: Reading... data.external.vault_security_tracker: Reading... data.external.vault_uptimerobot: Reading... data.external.vault_google: Reading... data.external.vault_google: Read complete after 1s [id=-] data.external.vault_github: Read complete after 1s [id=-] data.external.vault_security_tracker: Read complete after 1s [id=-] data.external.vault_matrix: Read complete after 1s [id=-] data.external.vault_hedgedoc: Read complete after 1s [id=-] data.external.vault_uptimerobot: Read complete after 1s [id=-] data.uptimerobot_account.account: Reading... uptimerobot_monitor.uptimerobot_monitor_archlinux["Wiki"]: Refreshing state... [id=788139640] uptimerobot_monitor.uptimerobot_monitor_archlinux["Security Tracker"]: Refreshing state... [id=788139638] uptimerobot_monitor.uptimerobot_monitor_archlinux["Forum"]: Refreshing state... [id=788139635] uptimerobot_monitor.uptimerobot_monitor_archlinux["Website"]: Refreshing state... [id=788139636] uptimerobot_monitor.uptimerobot_monitor_archlinux["Bugtracker"]: Refreshing state... [id=788139634] uptimerobot_monitor.uptimerobot_monitor_archlinux["Man"]: Refreshing state... [id=788174139] uptimerobot_monitor.uptimerobot_monitor_archlinux["Accounts"]: Refreshing state... [id=793039975] data.external.vault_keycloak: Read complete after 1s [id=-] uptimerobot_monitor.uptimerobot_monitor_archlinux["AUR"]: Refreshing state... [id=788139639] data.uptimerobot_account.account: Read complete after 0s [id=2023-03-09 11:56:21.013796531 +0000 UTC] uptimerobot_monitor.uptimerobot_monitor_archlinux["Gitlab"]: Refreshing state... [id=788139637] data.external.vault_monitoring: Read complete after 1s [id=-] keycloak_authentication_flow.arch_browser_flow: Refreshing state... [id=b48c661e-a255-4f26-85c8-1d2f7f066311] keycloak_role.externalcontributor: Refreshing state... [id=ed731532-e5c5-462d-bce1-b97e947c4781] keycloak_required_action.update_profile: Refreshing state... [id=archlinux/UPDATE_PROFILE] keycloak_required_action.update_user_locale: Refreshing state... [id=archlinux/update_user_locale] keycloak_authentication_flow.arch_post_ipr_flow: Refreshing state... [id=8c124f41-0064-481e-bdfc-e22a821edea2] keycloak_required_action.webauthn_register: Refreshing state... [id=archlinux/webauthn-register] keycloak_openid_client.buildbot_openid_client: Refreshing state... [id=0b291fd1-5255-4407-9617-e0c0a797ec7b] keycloak_openid_client.grafana_openid_client: Refreshing state... [id=5ebed5a5-9e34-4165-8189-d907a1e2c5bf] keycloak_group.staff: Refreshing state... [id=6395c75f-e513-4e7e-ad9e-2814f723ead7] keycloak_realm.archlinux: Refreshing state... [id=archlinux] keycloak_openid_client.gluebuddy_openid_client: Refreshing state... [id=6a9bda10-8000-4260-95c2-af4b656b5035] keycloak_required_action.verify_email: Refreshing state... [id=archlinux/VERIFY_EMAIL] keycloak_group.externalcontributors: Refreshing state... [id=3aead06e-2f68-4c19-a36c-967c0effd57a] keycloak_role.devops: Refreshing state... [id=72a8e4e8-239c-4f97-bc5d-b62929c3315f] keycloak_required_action.custom-terms-and-conditions: Refreshing state... [id=archlinux/terms_and_conditions] keycloak_role.staff: Refreshing state... [id=4215a4f2-ee1c-458a-be36-9ab61661c78b] keycloak_realm_events.realm_events: Refreshing state... [id=archlinux] keycloak_required_action.update_password: Refreshing state... [id=archlinux/UPDATE_PASSWORD] keycloak_authentication_flow.arch_registration_flow: Refreshing state... [id=4d4541be-a7b5-42c2-a994-492f19b079e8] keycloak_saml_client.saml_gitlab: Refreshing state... [id=f0641a2a-c472-4b0c-b8eb-3a059dcc5a97] keycloak_openid_client.security_tracker_openid_client: Refreshing state... [id=780c289a-ce0b-4871-8b1d-2e83032fcc07] keycloak_openid_client.matrix_openid_client: Refreshing state... [id=4ae5f20b-6c24-4be4-9475-1461dedd31f9] keycloak_authentication_flow.arch_reset_credentials_flow: Refreshing state... [id=4f5d8eac-8fd3-4f5c-82d4-2f833617de7b] keycloak_required_action.configure_otp: Refreshing state... [id=archlinux/CONFIGURE_TOTP] keycloak_openid_client.hedgedoc_openid_client: Refreshing state... [id=52b266cf-96e7-4f53-9a4c-785bc71c3e71] keycloak_openid_client.openid_gitlab: Refreshing state... [id=b5edcacd-f6d5-44cb-9f19-f375a200b712] keycloak_authentication_execution.cookie: Refreshing state... [id=1e51d353-4b1e-4c78-b351-52572690216d] keycloak_authentication_execution.ipr_webauthn_form: Refreshing state... [id=19467240-3eea-4460-aa04-4f8c70a4c7ad] keycloak_oidc_identity_provider.realm_identity_provider: Refreshing state... [id=github] keycloak_group.staff_groups["IRC"]: Refreshing state... [id=c05d93a4-affd-4042-8083-ccdff423d924] keycloak_group.staff_groups["DevOps"]: Refreshing state... [id=c847a17e-7ff2-4eed-82d4-8b312371000f] keycloak_group.staff_groups["Project Maintainers"]: Refreshing state... [id=f0304093-1a6a-402d-9d98-fdf752deb524] keycloak_group.staff_groups["Forum"]: Refreshing state... [id=a6d85f4d-e870-48af-affe-99a7aa55e8e9] keycloak_group.staff_groups["Trusted Users"]: Refreshing state... [id=8851ad95-ad40-4381-8c46-87cfd5cde152] keycloak_group.staff_groups["Archweb"]: Refreshing state... [id=a97fe739-f901-471a-bd03-464b43fb7792] keycloak_group.staff_groups["Security Team"]: Refreshing state... [id=d7fc2b46-3eb8-4f70-b040-01d30b430828] keycloak_group.staff_groups["Developers"]: Refreshing state... [id=9d1ec6b8-0b26-4d43-bd4c-ef6eba494201] keycloak_group.staff_groups["Wiki"]: Refreshing state... [id=0184a7be-98e0-4e8b-839f-fa7478bb097c] keycloak_group.staff_groups["Bug Wranglers"]: Refreshing state... [id=1a56644f-a89a-436e-84ba-63ade79b0c72] keycloak_group_roles.externalcontributor: Refreshing state... [id=archlinux/3aead06e-2f68-4c19-a36c-967c0effd57a] keycloak_group.externalcontributors_groups["Archweb"]: Refreshing state... [id=bcec20f3-b3ba-4f0b-93f5-01fec8f8f765] keycloak_group.externalcontributors_groups["Security Team"]: Refreshing state... [id=4db0d4f0-bb8e-4210-980b-7e86f9643aa6] keycloak_openid_user_realm_role_protocol_mapper.user_realm_role_mapper: Refreshing state... [id=37b0f57e-7903-4d33-b5f3-b1155bb40fe5] keycloak_group_roles.staff: Refreshing state... [id=archlinux/6395c75f-e513-4e7e-ad9e-2814f723ead7] keycloak_openid_user_realm_role_protocol_mapper.buildbot_user_realm_role_mapper: Refreshing state... [id=6d0a07ab-f87e-4c70-b506-caddafb87b4b] keycloak_authentication_subflow.registration_form: Refreshing state... [id=4822a931-10ed-4929-bd52-8f4245fdc1f6] keycloak_saml_user_property_protocol_mapper.gitlab_saml_first_name: Refreshing state... [id=a50c12ee-29f3-4cf9-8b43-a45b0a54616e] keycloak_saml_user_property_protocol_mapper.gitlab_saml_username: Refreshing state... [id=313f9d71-db11-4094-95b2-4a9527f92fd4] keycloak_saml_user_property_protocol_mapper.gitlab_saml_email: Refreshing state... [id=3cd8527a-e7de-4a53-b17a-e66b74e9f4ff] keycloak_saml_user_property_protocol_mapper.gitlab_saml_last_name: Refreshing state... [id=d459b04b-308a-41a9-aa5d-ee8b8c128391] keycloak_authentication_execution.rc_choose_user: Refreshing state... [id=3a1ca09f-4afb-46e0-ad46-15269b751af3] keycloak_authentication_execution.ipr_otp_form: Refreshing state... [id=79bc77a7-2779-4ffa-9a75-e242f0b5cd8b] keycloak_authentication_execution.identity_provider_redirector: Refreshing state... [id=e53a1dce-c7fa-4b94-bfa2-9fb13a826229] keycloak_openid_user_realm_role_protocol_mapper.matrix_user_realm_role_mapper: Refreshing state... [id=89485d7d-7b2a-4d64-9c7a-8079057d736f] keycloak_openid_group_membership_protocol_mapper.group_membership_mapper: Refreshing state... [id=62d9dc39-4ab5-4163-b0e5-8bb53f29dc94] keycloak_openid_user_realm_role_protocol_mapper.hedgedoc_user_realm_role_mapper: Refreshing state... [id=8dc67c99-358f-4aa1-8142-836a8997f758] keycloak_group_roles.devops: Refreshing state... [id=archlinux/c847a17e-7ff2-4eed-82d4-8b312371000f] keycloak_group.staff_irc_groups["Ops"]: Refreshing state... [id=2d3e0bfa-6df0-4fea-9605-fea0d69a4780] keycloak_group.staff_securityteam_groups["Members"]: Refreshing state... [id=dbcb6171-35cb-422d-af95-c0f0b6d12159] keycloak_group.staff_securityteam_groups["Admins"]: Refreshing state... [id=168dd1b9-eba8-4481-afe2-1327bf63fa0c] keycloak_group.staff_forum_groups["Mods"]: Refreshing state... [id=5fb27983-00c2-4072-beb6-c5881406559a] keycloak_group.staff_forum_groups["Admins"]: Refreshing state... [id=66b8cd55-7676-44e1-b683-590b4649ab4b] keycloak_group.staff_wiki_groups["Admins"]: Refreshing state... [id=3160a88e-5d54-4705-bce5-dfb601f63232] keycloak_group.staff_wiki_groups["Maintainers"]: Refreshing state... [id=454fe46d-4e99-4f9b-a534-938ee0c6d74d] keycloak_group.staff_archweb_groups["Mirrorlist Maintainers"]: Refreshing state... [id=ecfdcf7e-bb0d-432a-a5ca-9b2dec7d0c10] keycloak_authentication_subflow.rc_conditional_2fa: Refreshing state... [id=f05a00aa-0970-4564-8e98-aa332ebe0895] keycloak_authentication_execution.rc_reset_email: Refreshing state... [id=3b039856-3592-4274-942d-859ff8fe6a1b] keycloak_group.externalcontributors_securityteam_groups["Reporters"]: Refreshing state... [id=d8b91547-0adb-420f-b370-9416aff02d11] keycloak_group.externalcontributors_archweb_groups["Testers"]: Refreshing state... [id=67963646-0ba1-4b50-ac3e-72805d15cb70] keycloak_authentication_subflow.ipr_otp_default: Refreshing state... [id=c89647e4-cbb0-439d-b3fe-057a8219d148] keycloak_authentication_subflow.password_and_2fa: Refreshing state... [id=3f82966d-253a-41ce-acd3-b538a2a2ebce] keycloak_authentication_execution.registration_user_creation: Refreshing state... [id=997a8f3f-b343-4c8e-a3ca-f86870193b09] keycloak_authentication_execution.registration_profile_action: Refreshing state... [id=8afe31bc-e5db-43d2-ad1d-eef28b55bd0f] keycloak_authentication_execution.registration_password_action: Refreshing state... [id=d35ade27-a5ee-4374-826e-aa7373cffd29] keycloak_authentication_execution.rc_2fa_condition: Refreshing state... [id=d3f3b0c3-d66a-4107-97cf-afbd45456f66] keycloak_authentication_execution.rc_reset_password: Refreshing state... [id=5bbc99ea-f6a2-47ff-b55b-76758f227a1e] keycloak_authentication_execution.username_password_form: Refreshing state... [id=f59a95a6-a770-4df3-a4bf-815a7ebfee94] keycloak_authentication_execution.ipr_otp_default_form: Refreshing state... [id=5a30b900-eecb-4ec5-b9d7-5174dd6cad8d] keycloak_authentication_execution.registration_recaptcha_action: Refreshing state... [id=8670a873-0fc7-4d81-8708-4c3739bacc26] keycloak_authentication_subflow.rc_2fa: Refreshing state... [id=f3d84528-02fe-4a22-9989-55d95c47b8f5] keycloak_authentication_subflow._2fa: Refreshing state... [id=4a5c29e8-0db5-417e-a91d-d54e6d0af8bb] keycloak_authentication_execution_config.registration_recaptcha_action_config: Refreshing state... [id=a85779ed-3893-4f88-bed7-755c7b5913c8] keycloak_authentication_execution.rc_webauthn_form: Refreshing state... [id=8fa9e2be-23d0-45a8-9765-6ec2f27f73f6] keycloak_authentication_execution.webauthn_form: Refreshing state... [id=25cca61e-892f-4fb1-bab7-8b0c23f4da28] keycloak_authentication_execution.rc_otp_form: Refreshing state... [id=c55933e5-9662-4ab9-a0de-b8902273a9ff] keycloak_authentication_execution.otp_form: Refreshing state... [id=7096a45f-11eb-4a79-bf44-9ce0d4315b1d] keycloak_authentication_subflow.rc_otp_default: Refreshing state... [id=eec5ca79-9ffb-4fc9-9679-a7fd80d0e54f] keycloak_authentication_subflow.otp_default: Refreshing state... [id=d9713ba8-a41a-42d6-8096-0880162a40b7] keycloak_authentication_execution.rc_otp_default_form: Refreshing state... [id=da0f0467-3fda-4cd4-978c-264fc413d925] keycloak_authentication_execution.otp_default_form: Refreshing state... [id=fdedc467-0491-40e7-b6b3-76405f7854cb] Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create ~ update in-place Terraform will perform the following actions: # uptimerobot_alert_contact.default_alert_contact will be created + resource "uptimerobot_alert_contact" "default_alert_contact" { + friendly_name = "root@archlinux.org" + id = (known after apply) + status = (known after apply) + type = "e-mail" + value = "root@archlinux.org" } # uptimerobot_monitor.uptimerobot_monitor_archlinux["AUR"] will be updated in-place ~ resource "uptimerobot_monitor" "uptimerobot_monitor_archlinux" { + http_method = "GET" id = "788139639" # (8 unchanged attributes hidden) - alert_contact { - id = "0902990" -> null - recurrence = 0 -> null - threshold = 0 -> null } + alert_contact { + id = (known after apply) } } # uptimerobot_monitor.uptimerobot_monitor_archlinux["Accounts"] will be updated in-place ~ resource "uptimerobot_monitor" "uptimerobot_monitor_archlinux" { + http_method = "GET" id = "793039975" # (8 unchanged attributes hidden) - alert_contact { - id = "0902990" -> null - recurrence = 0 -> null - threshold = 0 -> null } + alert_contact { + id = (known after apply) } } # uptimerobot_monitor.uptimerobot_monitor_archlinux["Bugtracker"] will be updated in-place ~ resource "uptimerobot_monitor" "uptimerobot_monitor_archlinux" { + http_method = "GET" id = "788139634" # (8 unchanged attributes hidden) - alert_contact { - id = "0902990" -> null - recurrence = 0 -> null - threshold = 0 -> null } + alert_contact { + id = (known after apply) } } # uptimerobot_monitor.uptimerobot_monitor_archlinux["Forum"] will be updated in-place ~ resource "uptimerobot_monitor" "uptimerobot_monitor_archlinux" { + http_method = "GET" id = "788139635" # (8 unchanged attributes hidden) - alert_contact { - id = "0902990" -> null - recurrence = 0 -> null - threshold = 0 -> null } + alert_contact { + id = (known after apply) } } # uptimerobot_monitor.uptimerobot_monitor_archlinux["Gitlab"] will be updated in-place ~ resource "uptimerobot_monitor" "uptimerobot_monitor_archlinux" { + http_method = "GET" id = "788139637" # (8 unchanged attributes hidden) - alert_contact { - id = "0902990" -> null - recurrence = 0 -> null - threshold = 0 -> null } + alert_contact { + id = (known after apply) } } # uptimerobot_monitor.uptimerobot_monitor_archlinux["Man"] will be updated in-place ~ resource "uptimerobot_monitor" "uptimerobot_monitor_archlinux" { + http_method = "GET" id = "788174139" # (8 unchanged attributes hidden) - alert_contact { - id = "0902990" -> null - recurrence = 0 -> null - threshold = 0 -> null } + alert_contact { + id = (known after apply) } } # uptimerobot_monitor.uptimerobot_monitor_archlinux["Security Tracker"] will be updated in-place ~ resource "uptimerobot_monitor" "uptimerobot_monitor_archlinux" { + http_method = "GET" id = "788139638" # (8 unchanged attributes hidden) - alert_contact { - id = "0902990" -> null - recurrence = 0 -> null - threshold = 0 -> null } + alert_contact { + id = (known after apply) } } # uptimerobot_monitor.uptimerobot_monitor_archlinux["Website"] will be updated in-place ~ resource "uptimerobot_monitor" "uptimerobot_monitor_archlinux" { + http_method = "GET" id = "788139636" # (8 unchanged attributes hidden) - alert_contact { - id = "0902990" -> null - recurrence = 0 -> null - threshold = 0 -> null } + alert_contact { + id = (known after apply) } } # uptimerobot_monitor.uptimerobot_monitor_archlinux["Wiki"] will be updated in-place ~ resource "uptimerobot_monitor" "uptimerobot_monitor_archlinux" { + http_method = "GET" id = "788139640" # (8 unchanged attributes hidden) - alert_contact { - id = "0902990" -> null - recurrence = 0 -> null - threshold = 0 -> null } + alert_contact { + id = (known after apply) } } Plan: 1 to add, 9 to change, 0 to destroy. ───────────────────────────────────────────────────────────────────────────── Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.
requested review from @foutrelis, @freswa, @jelle, @klausenbusk, @anthraxx, and @svenstaro
assigned to @artafinde
added statusin-review label
- Resolved by Leonidas Spyropoulos
AFAIU from https://blog.uptimerobot.com/december-2022-we-are-introducing-sub-users-and-new-plans/, you are supposed to use "notifications-only sub-users" if you want alerts to multiple emails now. We don't need that and alerts are by default sent to the account mail AFAIU, so we can remove the "alert contact" TF block.
added 1 commit
- f447c9d4 - terraform: uptimerobot remove the alert_contact
added 7 commits
-
f447c9d4...bd0783ab - 6 commits from branch
archlinux:master
- ced44ed5 - terraform: uptimerobot remove the alert_contact
-
f447c9d4...bd0783ab - 6 commits from branch
FWIW, during today's server upgrades we didn't receive the usual alerts about Keycloak and GitLab having brief downtime.
Edit: False alarm probably, seems I broke our mail box, thus no mail. :)
Edited by Evangelos Foutrasadded 9 commits
-
ced44ed5...83c279f1 - 8 commits from branch
archlinux:master
- d31f8404 - terraform: uptimerobot remove the alert_contact
-
ced44ed5...83c279f1 - 8 commits from branch
mentioned in commit 66d2736c