• Terraform
  • Is there any to check not used variable in terraform?

Is there any to check not used variable in terraform?

Yes, in Terraform, you can check for unused variables using the following methods:

1. Using terraform validate

Terraform has a built-in validation command that can sometimes catch unused variables.

terraform validate

However, this may not always detect unused variables.


2. Using tflint (Recommended)

TFLint is a linter for Terraform that can detect unused variables.

Install TFLint:

brew install tflint  # macOS
choco install tflint # Windows

Run TFLint:

tflint --enable-rule=terraform_unused_declarations

This will list all unused variables in your Terraform configuration.


3. Using terraform console

If you want to manually inspect the variables, you can run:

terraform console

Then check if a variable exists in var:

var.variable_name

If the variable does not exist, it may be unused.


4. Using grep or rg (Ripgrep)

If you suspect unused variables in a file, you can manually check by searching for their usage.

Grep:

grep -r "variable" .

Ripgrep (Faster):

rg "variable" .

Then cross-check the variables defined in variables.tf but never referenced in main.tf or modules/.


5. Using terraform graph (Advanced)

Run:

terraform graph | grep var.

This will show all referenced variables. If a variable is not appearing, it might be unused.


Best Practice

Always review your variables.tf and remove any variables that are no longer needed. Automate this check using TFLint in CI/CD pipelines.

Would you like a script to automate checking for unused variables?