Terraform -> A modern, actively maintained Terraform provider for CheckMK

Hi everyone,

I want to introduce terraform-provider-checkmk, a Terraform provider for managing CheckMK configuration as code, hosts, folders, rules, users, business intelligence aggregations, downtimes, and a lot more.

This provider is actively developed and maintained, releases have been shipping regularly (most recently v1.4.4, released 2026-08-25), with real bugfixes, performance work, and new resources landing continuously. It’s not a fire-and-forget side project; if you hit an issue or want a feature, it gets triaged.

What makes it worth a look

  • Type-safe rule configuration. Instead of hand-writing raw JSON for every CheckMK ruleset, the provider ships ~26 typed “rule wrapper” resources (host/service check periods, notification toggles/delays/intervals, custom service attributes, MRPE agent config, service/host labels, and more) generated from checkmk-api-spec — you get real schema validation and plan-time diffs instead of opaque JSON blobs. A generic checkmk_rule resource with value_raw is still available as an escape hatch for anything not yet typed.
  • Safe concurrency for activations. Terraform applies resources in parallel by default. This provider serializes CheckMK’s activate-changes calls internally (so parallel resource operations don’t collide on CheckMK’s own activation lock), and — as of v1.4.4 — if CheckMK reports a foreign activation already running (someone activating manually in the UI, or another concurrent terraform apply), it now waits and retries until that activation finishes instead of failing your apply outright.
  • Bulk host management. checkmk_hosts_bulk manages many hosts through CheckMK’s bulk create/update/delete endpoints — one API call per operation regardless of host count, instead of N calls per host.
  • Business Intelligence & distributed monitoring. checkmk_bi_aggregation and checkmk_site_connection resources for BI rule trees and distributed-monitoring site connections.
  • Immediate-effect operations. checkmk_downtime, checkmk_comment, checkmk_acknowledge, and checkmk_service_discovery for things that don’t need (or shouldn’t wait for) a config activation.
  • Broad data source coverage for hosts, folders, host/service groups, users, contact groups, passwords, aux tags, tag groups, time periods, rules, notification rules, downtimes, and comments — useful for drift detection and referencing existing CheckMK objects.
  • Configurable timeouts for CheckMK’s long-running blocking operations (activation, service discovery), separate from your normal request timeout, so slow activations on large sites don’t get cut short.

CheckMK version compatibility

CheckMK Version Support Status
2.5.x Fully supported
2.4.x Fully supported
2.3.x Fully supported
2.2.x Fully supported

The provider auto-detects your CheckMK version at runtime. If you’re on a version newer than any known type baseline (e.g. a brand-new minor release before the type spec catches up), it falls back to a “hollow” mode with a warning ,resources still work fully, just without plan-time field/enum validation until types are updated.

Links

Feedback, bug reports, and feature requests are very welcome, happy to hear what’s missing for your setups.

5 Likes