Skip to main content

Documentation generator for Terraform modules

Project description

TF-Docs

tfdocs lets you generate README.md for Terraform modules based on variables.tf. Additionally, it can sort variable definitions.

Usage

tfdocs [flags] <variables.tf>

Flags:

-h, --help            Show this help message and exit
--name, -n            Specify a custom name for the module
--readme              Specify the name of the output file (default: README.md)
--variables           Specify the name of the file containing variables (default: variables.tf)
--source SOURCE       Specify a custom source for the module
--git-source          Only to be used together with --source to specify the source is a git repository. If true, sub directory and a place holder TAG will be appended to the source
-f                    Format and sort variables.tf file
--dry-run             Show the output without writing to the file
--version

Input file

Default: variables.tf

All the input variables of the module must be defined in a single file. By default tfdocs will look for a file named variables.tf in the current directory. Alternatively a custom file can be specified using the --variables flag.

Example

variables.tf

variable "my_string" {
  type = string
  description = "Description of the string"
  default = "default"
}

variable "my_list" {
  type = List(string)
  description = "Description of the list"
  default = ["default"]
}

Format variables.tf

You can use the -f flag to format the variables.tf file. This will sort the variables in alphabetical order.

Generated Readme file

Default: README.md

The module expects to have a README.md file in the current directory. If the file does not exist, tfdocs will create one. Alternatively, a custom file can be specified using the --readme flag.

Example

README.md

# My module

Insert a description of the module here.

<!-- TFDOCS START -->
module <my_module> {
source = "git@github.com:<your_name>/<your_repo>.git//<subfolder>?ref=<TAG>"
my_list = <LIST(STRING)>    # Description of the list
my_string = <STRING>        # Description of the string
}
<!-- TFDOCS END -->

Custom content

tfdocs replaces only the content between the markers below with variable definitions from variables.tf.

Markers: <!-- TFDOCS START --> and <!-- TFDOCS END -->

Module Source

Default: git-remote-origin//<subfolder>?ref=<TAG>

By default, if the module is in a Git repository, tfdocs will utilize the remote origin to generate the source URL (git://github.com/<your_name>/<your_repo>.git//<subfolder>?ref=<TAG>).

Otherwise, either the source URL can be specified using the --source flag or if not provided it will default to ./modules/{CURRENT_DIRECTORY}.

Annotations

Override variable type

Use #tfdocs: type=<TYPE> to override the variable type. This is useful when the type is not correctly inferred from the variable definition or when you want to customize it.

Example

variables.tf

variable "my_object" {
  #tfdocs: type = list(object)
  type = list(object({
    name = string
    size = number
    directory = string
  }))
  description = "Description of the string"
  default = "default"
}

Note: tfdocs overwrite an existing README.md file. It's always good to use --dry-run first.

Authors

tfdocs is created and maintained by ivlabs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tfdocs-1.6.0rc1.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tfdocs-1.6.0rc1-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file tfdocs-1.6.0rc1.tar.gz.

File metadata

  • Download URL: tfdocs-1.6.0rc1.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for tfdocs-1.6.0rc1.tar.gz
Algorithm Hash digest
SHA256 3923b6e0260e41b4df06ac0bd29f6ff3e06beb79765761567fd8ff978d6930d9
MD5 c22a262283b2a7b28c24be45f4f0ad78
BLAKE2b-256 a7a29386029cb9f18212ba8a745335e844040cf3fc6f045333114f51bf2f9996

See more details on using hashes here.

File details

Details for the file tfdocs-1.6.0rc1-py3-none-any.whl.

File metadata

  • Download URL: tfdocs-1.6.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for tfdocs-1.6.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 b0d0d72e5146d89e30c2e828c291f7a31cb098d791347d7d8b92a8ff3f5d6890
MD5 cb8fa7f311549f19b5870fc53a0ffb72
BLAKE2b-256 efbff032df7b453684a632efe7b2af0a4869fe1235dab4dd2784d1fd5a2fabf2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page