Integrations
Terraform
Terraform Provider
Terraform Provider
Introduction
The ConfigDirector Terraform provider allows you to manage projects, environments, configs, and targeting rules via Terraform and OpenTofu.
Refer to the official ConfigDirector Terraform provider documentation for a full guide on all the features available in the provider.
Example
Here is a minimal example on how to use the provider:
main.tf
terraform {
required_providers {
configdirector = {
source = "ConfigDirector/configdirector"
version = "~> 0.2"
}
}
}
provider "configdirector" {}
resource "configdirector_project" "example" {
name = "Targeting Rules Example"
slug = "targeting-rules-example"
}
resource "configdirector_config" "beta_features" {
project_id = configdirector_project.example.id
key = "beta-features"
role = "flag"
lifetime = "temporary"
type = "boolean"
initial_value = false
}
resource "configdirector_config_targeting_rules" "beta_features_test" {
project_id = configdirector_project.example.id
config_key = configdirector_config.beta_features.key
environment_slug = "test"
default_value = "false"
rules = [
{
id = provider::configdirector::rule_id("beta-features-test-named-testers")
type = "conditional"
order = 0
target = "value"
value = true
conditions = [
{
id = provider::configdirector::rule_id("beta-features-test-named-testers-identifier")
attribute = "identifier"
operator = "is one of"
targetType = "text"
targetValues = ["user-101", "user-202"]
}
]
}
]
}
resource "configdirector_config_targeting_rules" "beta_features_production" {
project_id = configdirector_project.example.id
config_key = configdirector_config.beta_features.key
environment_slug = "production"
default_value = "false"
rules = [
{
id = provider::configdirector::rule_id("beta-features-production-rollout")
type = "percentage"
order = 0
target = "percentage"
percentages = [
{
id = provider::configdirector::rule_id("beta-features-production-rollout-on")
percentage = 10
value = true
},
{
id = provider::configdirector::rule_id("beta-features-production-rollout-off")
percentage = 90
value = false
},
]
}
]
}
OpenTofu
The ConfigDirector provider is also available in the OpenTofu registry.