DevZero Logo

DevZero

Terraform

Manage DevZero resources using Terraform

A step-by-step guide for managing DevZero resources using Terraform.

Configuration

The DevZero provider is devzero-inc/devzero.

The modules are:

Skeleton

terraform {
  required_providers {
    devzero = {
      source = "devzero-inc/devzero"
    }
  }
}

provider "devzero" {
  team_id = "team-xyz" # from https://www.devzero.io/organization-settings/account
  token   = var.devzero_token # from https://www.devzero.io/settings/user-settings
}

# set local kubectx, if applicable
provider "helm" {
  kubernetes = {
    config_path = "~/.kube/config"
  }
}

Install operators and connect cluster

module "devzero_cluster" {
  source       = "devzero-inc/cluster/devzero"
  cluster_name = "my-new-cluster"
}

Policy and Policy Attachments

resource "devzero_workload_policy" "workload_policy" {
  name            = "terraform-xyz"
  action_triggers = ["on_detection", "on_schedule"]
}

resource "devzero_workload_policy_target" "workload_policy_target" {
  name        = "terraform-example"
  policy_id   = devzero_workload_policy.workload_policy.id
  cluster_ids = [module.devzero_cluster.cluster_id]
}

Execute

terraform init
terraform plan
terraform apply