diff --git a/apps/docs/astro.config.mjs b/apps/docs/astro.config.mjs index b0db384f59..3fd809c52b 100644 --- a/apps/docs/astro.config.mjs +++ b/apps/docs/astro.config.mjs @@ -117,7 +117,7 @@ export default defineConfig({ }, { label: "Manage Your Stack with Terraform and CLI", - slug: "tutorial/how-to-manage-monitors-with-cli", + slug: "tutorial/how-to-manage-openstatus-with-terraform-cli", }, ], }, diff --git a/apps/docs/src/content/docs/tutorial/how-to-manage-monitors-with-cli.mdx b/apps/docs/src/content/docs/tutorial/how-to-manage-openstatus-with-terraform-cli.mdx similarity index 100% rename from apps/docs/src/content/docs/tutorial/how-to-manage-monitors-with-cli.mdx rename to apps/docs/src/content/docs/tutorial/how-to-manage-openstatus-with-terraform-cli.mdx diff --git a/apps/web/public/assets/changelog/terraform-v0.1.png b/apps/web/public/assets/changelog/terraform-v0.1.png new file mode 100644 index 0000000000..690db1a00c Binary files /dev/null and b/apps/web/public/assets/changelog/terraform-v0.1.png differ diff --git a/apps/web/src/content/pages/changelog/terraform-provider-update.mdx b/apps/web/src/content/pages/changelog/terraform-provider-update.mdx new file mode 100644 index 0000000000..ea6fe81c35 --- /dev/null +++ b/apps/web/src/content/pages/changelog/terraform-provider-update.mdx @@ -0,0 +1,68 @@ +--- +title: "Terraform Provider: status pages, notifications, and more" +description: "The OpenStatus Terraform provider now supports status pages, notifications, DNS monitors, TCP monitors, and component groups." +image: "/assets/changelog/terraform-v0.1.png" +publishedAt: "2026-03-26" +author: "openstatus" +category: "monitoring" +--- + +The OpenStatus Terraform provider has been completely revamped. What started as monitor-only support now covers your entire openstatus stack. + +## What's new + +### Dedicated monitor resources + +Monitors are now split into dedicated resource types with full configuration support: + +- **`openstatus_http_monitor`** — custom headers, request bodies, and assertions on status codes, response body, and headers. +- **`openstatus_tcp_monitor`** — verify that a port is open and reachable. +- **`openstatus_dns_monitor`** — validate DNS records with record type assertions (A, AAAA, CNAME, MX, TXT). + +### Status pages + +Manage your entire status page as code: + +- **`openstatus_status_page`** — create pages with custom domains, access control (public, password-protected, or email-domain restricted), and branding. +- **`openstatus_status_page_component`** — link monitors to your status page or add static components. +- **`openstatus_status_page_component_group`** — organize components into groups. + +### Notifications + +Configure alerting channels with **`openstatus_notification`** — supports 12 providers including Slack, PagerDuty, Discord, OpsGenie, Email, Webhook, Telegram, SMS, WhatsApp, Google Chat, Grafana OnCall, and ntfy. + +### Data sources + +Look up existing resources without managing them: + +- **`openstatus_monitor`** — fetch a single monitor by ID. +- **`openstatus_monitors`** — list all monitors with pagination. +- **`openstatus_notification`** — fetch a notification channel by ID. +- **`openstatus_status_page`** — fetch a status page by ID. + +### Import support + +Every resource supports `terraform import`, so you can bring your existing dashboard configuration under Terraform management. + +## Get started + +```hcl +terraform { + required_providers { + openstatus = { + source = "openstatusHQ/openstatus" + version = "~> 0.1" + } + } +} + +provider "openstatus" { + api_token = var.openstatus_api_token +} +``` + +Check out the [Terraform provider reference](https://docs.openstatus.dev/reference/terraform/) for full documentation and examples, or follow the [tutorial](https://docs.openstatus.dev/tutorial/how-to-manage-openstatus-with-terraform-cli) to set up your monitoring stack from scratch. + +## Thank you + +A huge thank you to [Remy Buison](https://github.com/darkweaver87) from Traefik for all his contributions and help improving our terraform provider.