> ## Documentation Index
> Fetch the complete documentation index at: https://docs.controlplane.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Infrastructure as Code

> Manage Control Plane resources as code with Terraform and Pulumi

Define, deploy, and manage your Control Plane infrastructure using your preferred Infrastructure as Code tool. Both providers offer full coverage of Control Plane resources with native language support.

<CardGroup cols={2}>
  <Card title="Terraform" icon="file-code" href="/iac/terraform">
    HashiCorp's industry-standard IaC tool with HCL syntax
  </Card>

  <Card title="Pulumi" icon="code" href="/iac/pulumi">
    Modern IaC in TypeScript, Python, Go, and C#
  </Card>
</CardGroup>

## Why Infrastructure as Code?

<CardGroup cols={2}>
  <Card title="Version Control" icon="code-branch">
    Track all infrastructure changes in Git with full history
  </Card>

  <Card title="Reproducibility" icon="rotate">
    Deploy identical environments across dev, staging, and production
  </Card>

  <Card title="Collaboration" icon="users">
    Review infrastructure changes through pull requests
  </Card>

  <Card title="Automation" icon="robot">
    Integrate with CI/CD pipelines for automated deployments
  </Card>
</CardGroup>

## Getting Started

<Steps>
  <Step title="Choose Your Tool">
    Pick [Terraform](/iac/terraform) for HCL-based configuration or [Pulumi](/iac/pulumi) for general-purpose programming languages.
  </Step>

  <Step title="Install the Provider">
    Follow the installation guide for your chosen tool to add the Control Plane provider.
  </Step>

  <Step title="Configure Authentication">
    Set up your Control Plane credentials using environment variables or configuration files.
  </Step>

  <Step title="Define Resources">
    Write your infrastructure code to define GVCs, workloads, domains, and more.
  </Step>

  <Step title="Deploy">
    Apply your configuration to create or update resources on Control Plane.
  </Step>
</Steps>

## Resources

* [Terraform Registry - Control Plane Provider](https://registry.terraform.io/providers/controlplane-com/cpln/latest)
* [Pulumi Registry - Control Plane Provider](https://www.pulumi.com/registry/packages/cpln)
* [Terraform Examples](https://github.com/controlplane-com/examples/tree/main/terraform)
