All Projects → hashicorp → Terraform Plugin Docs

hashicorp / Terraform Plugin Docs

Licence: mpl-2.0
Generate and validate Terraform plugin/provider documentation.

Programming Languages

go
31211 projects - #10 most used programming language

Labels

Projects that are alternatives of or similar to Terraform Plugin Docs

Terraform Provider Packet
Terraform provider for Equinix Metal (formerly Packet)
Stars: ✭ 33 (-31.25%)
Mutual labels:  terraform
Ansible Dcos
[DEPRECATED] Please consider using the Ansible Roles for DC/OS maintained by the Mesosphere SRE team
Stars: ✭ 41 (-14.58%)
Mutual labels:  terraform
Terraform Aws Dynamodb
Terraform module that implements AWS DynamoDB with support for AutoScaling
Stars: ✭ 49 (+2.08%)
Mutual labels:  terraform
Terraform Aws Ecs Fargate
Terraform module which creates ECS Fargate resources on AWS.
Stars: ✭ 35 (-27.08%)
Mutual labels:  terraform
Terraform Aws Jenkins Ha Agents
A terraform module for a highly available Jenkins deployment.
Stars: ✭ 41 (-14.58%)
Mutual labels:  terraform
Atlantis On Gke
A set of @HashiCorp Terraform configurations for running Atlantis on @GoogleCloud GKE
Stars: ✭ 44 (-8.33%)
Mutual labels:  terraform
Terraform Provider Dome9
Terraform Provider for Dome9
Stars: ✭ 33 (-31.25%)
Mutual labels:  terraform
Lambda The Terraform Way
AWS Lambda using Terraform., an Introductory Cookbook
Stars: ✭ 1,056 (+2100%)
Mutual labels:  terraform
Terraform Nextjs Plugin
A plugin to generate terraform configuration for Nextjs 8 and 9
Stars: ✭ 41 (-14.58%)
Mutual labels:  terraform
Para
Para - community plugin manager and a "swiss army knife" for Terraform/Terragrunt - just 1 tool to facilitate all your workflows.
Stars: ✭ 47 (-2.08%)
Mutual labels:  terraform
Karch
A Terraform module to create and maintain Kubernetes clusters on AWS easily, relying entirely on kops
Stars: ✭ 38 (-20.83%)
Mutual labels:  terraform
Terraform Gcp Kubernetes Traefik
Little example of how to deploy a gke cluster with terraform and use traefik as ingress controller
Stars: ✭ 39 (-18.75%)
Mutual labels:  terraform
Infra Personal
Terraform for setting up my personal infrastructure
Stars: ✭ 45 (-6.25%)
Mutual labels:  terraform
Terraform Reference
Terraform reference / skel Control Repo for building for building multi-tier services
Stars: ✭ 33 (-31.25%)
Mutual labels:  terraform
Terraform Aws Github Ci
[DEPRECATED] Serverless CI for GitHub using AWS CodeBuild with PR and status support
Stars: ✭ 49 (+2.08%)
Mutual labels:  terraform
K8s Digitalocean Terraform
Deploy latest Kubernetes cluster on DigitalOcean using Terraform
Stars: ✭ 33 (-31.25%)
Mutual labels:  terraform
Doact
A Terraform module for hosting your own runner for CI/CD on Digital Ocean to run jobs in your GitHub Actions workflows. 🚀
Stars: ✭ 42 (-12.5%)
Mutual labels:  terraform
Devops Exercises
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions
Stars: ✭ 20,905 (+43452.08%)
Mutual labels:  terraform
Docs Examples
Open in Cloud Shell Examples for the Google provider docs
Stars: ✭ 50 (+4.17%)
Mutual labels:  terraform
Driftctl
Detect, track and alert on infrastructure drift
Stars: ✭ 1,019 (+2022.92%)
Mutual labels:  terraform

terraform-plugin-docs

This repository contains tools and packages for creating Terraform plugin docs (currently only provider plugins). The primary way users will interact with this is the tfplugindocs CLI tool to generate and validate plugin documentation.

tfplugindocs

The tfplugindocs CLI has two main commands, validate and generate (generate is the default). This tool will let you generate documentation for your provider from live example .tf files and markdown templates. It will also export schema information from the provider (using terraform providers schema -json), and sync the schema with the reference documents. If your documentation only consists of simple examples and schema information, the tool can also generate missing template files to make website creation extremely simple for most providers.

How it Works

When you run tfplugindocs from root directory of the provider the tool takes the following actions:

  • Copy all the templates and static files to a temporary directory
  • Build (go build) a temporary binary of the provider source code
  • Collect schema information using terraform providers schema -json
  • Generate a default provider template file, if missing (index.md)
  • Generate resource template files, if missing
  • Generate data source template files, if missing
  • Copy all non-template files to the output website directory
  • Process all the remaining templates to generate files for the output website directory

You can see an example of the templates and output in paultyng/terraform-provider-unifi and browse the generated docs in the Terraform Registry.

Conventional Paths

The generation of missing documentation is based on a number of assumptions / conventional paths:

Path Description
templates/ Root of templated docs
templates/index.md[.tmpl] Docs index page (or template)
examples/provider/provider.tf Provider example config*
templates/data-sources.md[.tmpl] Generic data source page (or template)
templates/data-sources/<data source name>.md[.tmpl] Data source page (or template)
examples/data-sources/<data source name>/data-source.tf Data source example config*
templates/resources.md[.tmpl] Generic resource page (or template)
templates/resources/<resource name>.md[.tmpl] Resource page (or template)
examples/resources/<resource name>/resource.tf Resource example config*
examples/resources/<resource name>/import.sh Resource example import command

Templates

The templates are implemented with Go text/template using the following objects and functions:

Template Objects

TBD

Template Functions

Function Description
codefile Create a Markdown code block and populate it with the contents of a file. Path is relative to the repository root.
tffile A special case of the codefile function. In addition this will elide lines with an OMIT comment.
trimspace strings.TrimSpace
plainmarkdown Render Markdown content as plaintext

Installation

You can install a copy of the binary manually from the releases, or you can optionally use the tools.go model for tool installation.

Disclaimer

This experimental repository contains software which is still being developed and in the alpha testing stage. It is not ready for production use.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].