Introduction
terraform-docs
is a utility to generate documentation from Terraform modules in
various output formats.

Configuration
You can also have consistent execution through a .terraform-docs.yml
file.
Once you set it up and configured it, every time you or your teammates want to
regenerate documentation (manually, through a pre-commit hook, or as part
of a CI pipeline) all you need to do is run terraform-docs /module/path
.

Read all about configuration.
Formats
One of the most popular format is markdown table, which is a very good fit for generating README of module.

which produces:

Read all about available formats.
Compatibility
terraform-docs compatiblity matrix with Terraform can be found below:
terraform-docs | Terraform |
---|---|
>= 0.13 |
>= 0.15 |
>= 0.8, < 0.13 |
>= 0.12, < 0.15 |
< 0.8 |
< 0.12 |