Documentation Index
Fetch the complete documentation index at: https://docs.devhelm.io/llms.txt
Use this file to discover all available pages before exploring further.
Automate Terraform plan and apply for your DevHelm resources in GitHub Actions, GitLab CI, or any CI system.
GitHub Actions
name: Terraform Monitoring
on:
push:
branches: [main]
paths: ['terraform/monitoring/**']
pull_request:
paths: ['terraform/monitoring/**']
jobs:
terraform:
runs-on: ubuntu-latest
defaults:
run:
working-directory: terraform/monitoring
env:
DEVHELM_API_TOKEN: ${{ secrets.DEVHELM_API_TOKEN }}
steps:
- uses: actions/checkout@v4
- uses: hashicorp/setup-terraform@v3
with:
terraform_version: 1.9
- name: Init
run: terraform init
- name: Plan
run: terraform plan -out=tfplan
if: github.event_name == 'pull_request'
- name: Apply
run: terraform apply -auto-approve
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
GitLab CI
stages:
- plan
- apply
variables:
TF_DIR: terraform/monitoring
DEVHELM_API_TOKEN: $DEVHELM_API_TOKEN
plan:
stage: plan
image: hashicorp/terraform:1.9
script:
- cd $TF_DIR
- terraform init
- terraform plan -out=tfplan
artifacts:
paths: [terraform/monitoring/tfplan]
apply:
stage: apply
image: hashicorp/terraform:1.9
script:
- cd $TF_DIR
- terraform init
- terraform apply -auto-approve tfplan
when: manual
only: [main]
State backend
For team use, configure a remote state backend:
terraform {
backend "s3" {
bucket = "mycompany-terraform-state"
key = "devhelm/monitoring.tfstate"
region = "us-east-1"
}
}
Other options include Terraform Cloud, GCS, or Azure Blob Storage.
Sensitive variables
Pass the API token as an environment variable — never hardcode it:
provider "devhelm" {
# Reads from DEVHELM_API_TOKEN env var automatically
}
For other sensitive values (webhook URLs, routing keys), use Terraform variables with sensitive = true:
variable "slack_webhook_url" {
type = string
sensitive = true
}
Use the terraform-plan-comment action to post plan output on pull requests:
- name: Plan
id: plan
run: terraform plan -no-color -out=tfplan
- uses: borchero/terraform-plan-comment@v2
with:
token: ${{ github.token }}
planfile: terraform/monitoring/tfplan
Next steps
Terraform overview
Provider setup and resource reference.
Importing resources
Bring existing resources under Terraform management.