Manage entities using Cortex Terraform Provider
The Cortex Terraform Provider acts as a bridge between Terraform and the Cortex platform, allowing you to manage and provision Cortex resources (such as Scorecards, integrations, and entities) using Terraform’s infrastructure-as-code approach. The provider is a wrapper around the public Cortex API and is maintained by the Cortex team, with shared ownership and ongoing support for customers who use it.
Cortex integrates with Terraform in two different ways, depending on whether you want to manage Cortex resources using Terraform, or use Cortex to drive Terraform runs for your infrastructure.
To learn about using Cortex to drive Terraform runs, see Managing Terraform infra in Cortex.
Managing the catalog as code
Many Cortex customers manage their entire service catalog and engineering standards as code using the Cortex Terraform Provider.
Expand the tiles below for examples on how to handle different use cases with this approach.
Service catalog as code
Goal: Any time a new microservice or app is created (via a Terraform module, template repo, or platform workflow), it’s automatically added to the Cortex catalog with the right metadata and ownership. How to do it:
Use the
cortex_catalog_entityresource to create and update services, libraries, or other catalog entities from Terraform.Attach extra metadata with
cortex_catalog_entity_custom_data– e.g.tier,business_unit,cost_center, “is_internally_facing”, etc.Optionally define departments (e.g. “Payments”, “Growth”) with
cortex_department, and link services/teams to those for reporting and ownership.
Scorecards and standards as code
Goal: Treat operational standards (SRE, security, compliance, production-readiness gates) as code that lives next to infrastructure, reviewed via PRs and rolled out safely. How to do it:
Define scorecards via the
cortex_scorecardresource. It supports:a ladder (levels with names, colors, rank)
rules (expressions, titles, weights, optional failure messages)
an evaluation window (how often to evaluate, min every 4 hours)
a filter to target specific entity types or groups
Use
cortex_resource_definitionto standardize external signals that Scorecards rely on (e.g. “has SLO in Datadog”, “has PagerDuty service”, “has runbook link”).Manage changes to standards through Git review: PRs update the Terraform code, then Terraform updates the Cortex Scorecards and resources.
API contracts and org model as code
Goal: Ensure that API documentation and org metadata are always in sync, accurate, and consistent across environments. How to do it:
Use
cortex_catalog_entity_openapito attach OpenAPI specs (YAML/JSON) to catalog entities in Cortex, keyed by the entity’s tag/ID.Keep department and ownership structure in Terraform via
cortex_departmentand catalog entity custom data (e.g.,department,team,criticality).When infrastructure changes (e.g., new API version, team moves between org units), updating Terraform automatically pushes the new OpenAPI spec + org metadata into Cortex.
Install the Terraform Provider for Cortex
For installation instructions, see the repository's README in GitHub.
Examples
Last updated
Was this helpful?