terraci validate
Validate project structure and dependencies.
Synopsis
bash
terraci validate [flags]Description
The validate command checks your project for:
- Module discovery correctness
- Dependency graph validity
- Circular dependency detection
- Configuration errors
Flags
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--verbose | -v | bool | false | Show detailed output |
Examples
Basic Validation
bash
terraci validateOutput:
✓ Found 12 modules
✓ Built dependency graph with 15 edges
✓ No circular dependencies detected
✓ 4 execution levels identified
Validation passedVerbose Output
bash
terraci validate -vOutput:
Configuration:
Pattern: {service}/{environment}/{region}/{module}
Min depth: 4
Max depth: 5
Discovered modules:
- platform/production/us-east-1/vpc
- platform/production/us-east-1/eks
- platform/production/us-east-1/rds
- platform/production/us-east-1/app
...
Dependency graph:
eks → vpc
rds → vpc
app → eks
app → rds
Execution levels:
Level 0: [vpc]
Level 1: [eks, rds]
Level 2: [app]
✓ Validation passedWith Circular Dependencies
bash
terraci validateOutput:
✓ Found 5 modules
✓ Built dependency graph with 6 edges
✗ Circular dependency detected:
module-a → module-b → module-c → module-a
Validation failedWhat Gets Validated
1. Configuration
- Pattern is valid
- Depth values are correct
- Required fields are present
2. Module Discovery
- Modules exist at expected depths
- Modules contain .tf files
- Module IDs are unique
3. Dependency Graph
- Remote state references resolve to modules
- No circular dependencies exist
- Execution levels can be calculated
4. Execution Order
- Topological sort succeeds
- All modules can be ordered
Exit Codes
| Code | Description |
|---|---|
| 0 | Validation passed |
| 1 | General error |
| 2 | Configuration error |
| 3 | Validation error (cycles, etc.) |
Use Cases
Pre-Commit Hook
bash
#!/bin/sh
terraci validate || exit 1CI Validation
yaml
validate:
stage: test
script:
- terraci validate -vDebug Module Discovery
bash
terraci validate -v 2>&1 | grep "Discovered modules" -A 100Troubleshooting
No Modules Found
✗ Found 0 modulesCheck:
- Directory structure matches pattern
- Modules contain .tf files
- Depth configuration is correct
Unresolved Dependencies
Warning: Remote state 'vpc' in module 'eks' could not be resolvedCheck:
- State file key matches module path
- Module exists at expected path
- Pattern configuration is correct
Circular Dependencies
✗ Circular dependency detectedReview the cycle path and fix remote_state references to break the cycle.