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_ruleresource withvalue_rawis 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 concurrentterraform apply), it now waits and retries until that activation finishes instead of failing your apply outright. - Bulk host management.
checkmk_hosts_bulkmanages 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_aggregationandcheckmk_site_connectionresources for BI rule trees and distributed-monitoring site connections. - Immediate-effect operations.
checkmk_downtime,checkmk_comment,checkmk_acknowledge, andcheckmk_service_discoveryfor 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
- Repository: GitHub - withakedo/terraform-provider-checkmk: Terraform Provider for CheckMK · GitHub
- Terraform Registry: Terraform Registry
- Changelog: terraform-provider-checkmk/CHANGELOG.md at main · withakedo/terraform-provider-checkmk · GitHub
- Issues / feature requests: Issues · withakedo/terraform-provider-checkmk · GitHub
Feedback, bug reports, and feature requests are very welcome, happy to hear what’s missing for your setups.