Validate Terraform configuration syntax and consistency
Validates Terraform configuration syntax and internal consistency without accessing remote state.
/plugin marketplace add JosiahSiegel/claude-plugin-marketplace/plugin install terraform-master@claude-plugin-marketplace[-json]Validate configuration files for syntax and internal consistency.
/tf-validate # Basic validation
/tf-validate -json # JSON output for CI/CD
# Must init first
terraform init
# Basic validation
terraform validate
# JSON output (CI/CD)
terraform validate -json
# No color (CI/CD)
terraform validate -no-color
Common validation errors:
Success! The configuration is valid.
{
"valid": true,
"error_count": 0,
"warning_count": 0,
"diagnostics": []
}
Error: Missing required argument
on main.tf line 5, in resource "aws_instance" "web":
5: resource "aws_instance" "web" {
The argument "ami" is required, but no definition was found.
- name: Terraform Validate
id: validate
run: terraform validate -no-color
- name: Terraform Validate
id: validate
run: |
terraform validate -json > validation.json
if [ $(jq '.valid' validation.json) != "true" ]; then
jq '.diagnostics' validation.json
exit 1
fi
# .pre-commit-config.yaml
repos:
- repo: https://github.com/antonbabenko/pre-commit-terraform
rev: v1.83.5
hooks:
- id: terraform_validate
Error: Missing required provider
This configuration requires provider "aws", but no such provider
is configured. Please add a provider block.
Fix: Add provider configuration or required_providers block.
Error: Unsupported argument
on main.tf line 10, in resource "aws_instance" "web":
10: invalid_arg = "value"
An argument named "invalid_arg" is not expected here.
Fix: Check provider documentation for valid arguments.
Error: Invalid value for input variable
The given value is not valid for variable "count": a number is required.
Fix: Ensure variable values match declared types.