Skip to content

User Guide

This section is for the people who write Terraform objects and the configurations they point at.

  • Plan approval workflow — manual approval by plan ID, auto, plan-only, when pending plans are discarded, failures and retries.
  • Sources and credentials — Git and OCI sources, credential Secrets, reusing Argo CD repository credentials, what reaches the runner.
  • Variables and credentials — passing variables (-var, -var-file equivalents) and giving the runner cloud provider credentials.
  • Drift detection — how drift is found, what happens in each approval mode, choosing an interval.
  • Outputs — output names and values, the outputs Secret, feeding workloads and other stacks.
  • Dependencies and health checks — ordering stacks with dependsOn, verifying them with healthChecks, how that composes with sync waves.
  • Destroy and deletion — spec.destroy, what deleting the object does, keeping or removing the state.
  • Runner Pods — image, binary, identity, environment, resources, volumes, security context, networking.
  • Examples — complete objects for common situations.
  • Terraform Specification Reference — every spec and status field. The generated CRD schema is also browsable at doc.crds.dev.

A minimal object looks like this; Argo CD syncs it from your repository like any other manifest:

apiVersion: infra.argocd.io/v1alpha1
kind: Terraform
metadata:
  name: network
  namespace: team-a
spec:
  source:
    git:
      url: https://github.com/my-org/infra
      ref:
        branch: main
  path: ./network
  interval: 10m
  approvePlan: ""          # manual: approve in the UI or set the plan ID here
  runner:
    binary: tofu
  writeOutputsToSecret:
    name: network-outputs