Unlike most of the features, global environment variables are configured at the controller level rather than at the tf resource.

Global Environment Variable Configuration

To configure global envs, update the controller’s Deployment by adding any number of env vars with the following prefixes:

  • TFO_VAR_
  • TFO_SECRET_

The un-prefixed versions will be added to every task in every tf resource.

Example controller deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: "terraform-operator"
  # ... data omitted
spec:
  # ... data omitted
  template:
    # ... data omitted
    spec:
      containers:
      - name: "terraform-operator"
        image: "isaaguilar/terraform-operator:v0.9.0-pre2"
        imagePullPolicy: IfNotPresent
        # ... data omitted
        env:
        - name: "TFO_VAR_CLUSTER_NAME"
          value: "minikube"
        - name: "TFO_SECRET_PGPASSWORD"
          valueFrom:
            secretKeyRef:
              name: "pgpassword"
              key: "postgres_secret"

How it works

The environment variables prefixed with TFO_VAR_ and TFO_SECRET_ are stripped of the prefix and added to a ConfigMap or Secret. Environment variables then get injected into all the tasks via envFrom.

From the example above, tasks would get the environment variables: CLUSTER_NAME and PGPASSWORD.