terraform-docs
terraformer
terraform-docs | terraformer | |
---|---|---|
32 | 109 | |
4,015 | 11,797 | |
1.1% | 0.9% | |
7.5 | 7.6 | |
9 days ago | 5 days ago | |
Go | Go | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
terraform-docs
-
Managing Infrastructure as Code (IaC) With Terraform
Documentation is really important, so having a README.md file inside your Terraform repository that explains how to use the automation (including descriptions of variables and outputs) really help in understanding what has been implemented. To easily generate the description of variables and outputs, you can leverage tfdocs.
-
Top Terraform Tools to Know in 2024
Terraform-docs is a tool that automatically generates documentation from Terraform modules in various output formats, including markdown, JSON, and others. It's particularly useful for maintaining up-to-date documentation of your Terraform modules' inputs, outputs, providers, and resources.
-
GitHub Actions - Automated Terraform-docs
Earlier this year I wrote about the challenges I faced creating a Terraform module. I mentioned then that I was leveraging terraform-docs and GitHub Actions to automate documentation, but a full workflow walkthrough was out of that post's scope.
-
Automating Terraform Documentation with Terraform-Docs and Azure DevOps
### Muti-Stage pipeline for windows trigger: - main variables: terraformDocsVersion: '0.16.0' serviceConnectionName: 'Terraform-SPN-DevOps-MagiconionM' keyvaultName: 'pwd9000-core-kv' pool: vmImage: 'windows-latest' stages: - stage: GenerateTerraformDocumentation jobs: - job: Generate_Terraform_Documentation steps: - checkout: self persistCredentials: true # this allows the later scripts to use the system-provided git token to push changes back to the repo ### Link to key vault. - task: AzureKeyVault@1 inputs: azureSubscription: $(serviceConnectionName) #ADO service connection (Service principal) KeyVaultName: $(keyvaultName) SecretsFilter: 'TerraformDocsPAToken' RunAsPreJob: true displayName: Get PAToken from Keyvault ### Install Terraform-Docs. - powershell: | Invoke-WebRequest -Uri "https://github.com/terraform-docs/terraform-docs/releases/download/v$(terraformDocsVersion)/terraform-docs-v$(terraformDocsVersion)-windows-amd64.zip" -OutFile "terraform-docs.zip" Expand-Archive -Path "terraform-docs.zip" -DestinationPath "$(System.DefaultWorkingDirectory)\terraform-docs" -Force $env:Path += ";$(System.DefaultWorkingDirectory)\terraform-docs" displayName: 'Install terraform-docs' ### Remove all old README.md files and generate new README.md files for each TF module. - powershell: | # Set Modules Root Directory Set-Location "$(Build.SourcesDirectory)\@TF_Modules" # Get all subdirectories (Terraform module directories) $terraformModuleDirs = Get-ChildItem -Path (Get-Location) -Directory # Loop through each directory to cleanup/remove old README files foreach ($dir in $terraformModuleDirs) { # Get all files in the directory $readMeFiles = Get-ChildItem -Path $dir.FullName -Filter 'README.md' # Loop through each file in each terraform module foreach ($file in $readMeFiles) { # Check if README file already exists and remove if ($file) { # Remove the file Remove-Item $file.FullName -Confirm:$false Write-Output "Old file '$($file.Name)' removed from '$($dir.FullName)'" } } #After cleanup create a new README.md file with 'terraform-docs' based on latest TF module code in current folder(terraform module) $tfFiles = Get-ChildItem -Path $dir.FullName -Filter *.tf if ($tfFiles.Count -gt 0) { # Create new README.md file $(System.DefaultWorkingDirectory)\terraform-docs\terraform-docs.exe markdown table $dir.FullName --output-file "README.md" } else { Write-Output "No .tf files found." } } displayName: 'Cleanup and Generate new README for each TF module' ### Commit and push updated README.md files for TF modules. - powershell: | git config --local user.email "[email protected]" git config --local user.name "Terraform Docs" git add *.md git commit -m "Update README.md for each TF module" git push origin HEAD:$(Build.SourceBranchName) displayName: 'Commit and Push updated README.md files for TF modules' env: SYSTEM_ACCESSTOKEN: $(TerraformDocsPAToken)
-
How to understand existing code?
I'm going to have to figure out how to run terraform-docs.io against each module. I have zero terraform experience.
-
5 tools to supercharge your Terraform Development
Terraform-docs: This tool generates documentation for your Terraform modules in various formats, such as Markdown, HTML, and JSON. Terraform-docs parses your Terraform code and extracts documentation from comments, variable and output descriptions, and input/output examples. The tool then generates a table of contents with links to the relevant documentation for each module, which makes it easy to understand the purpose and usage of each module.
-
How to Write an Awesome Readme
Terraform docs
-
Terraform documentation of modules with nested inputs with optuonals?
I have been using https://terraform-docs.io to generate documentation of my terraform modules. However creating nested objects with optionals makes the documentation rather ugly and hard to read. See gh issue which also describes this type of issue: https://github.com/terraform-docs/terraform-docs/issues/656
-
Automating release docs for ansible roles
I am looking for a way to automate doc creation and updates for ansible roles. I recently discovered terraform-docs and I am curious if there is something similar for ansible.
-
List of most useful Terraform open-source tools
terraform-docs: https://github.com/terraform-docs/terraform-docs
Do you have other Terraform-related open-source tools that you recommend? Please go ahead and add in the comments!
terraformer
-
Top Terraform Tools to Know in 2024
Terraformer is a CLI tool developed by Google that generates Terraform files from existing infrastructure (reverse Terraform), simplifying the process of adopting Terraform in existing environments and speeding up the initial setup process. Terraformer supports multiple cloud providers, including AWS, Google Cloud, Azure, and others.
-
Terraformer + refactoring with 'moved' blocks
Looking into efficient ways to import existing infrastructure. Using Terraformer to get the everything into Terraform and then refactoring into modules, for_each, etc. using moved blocks seems like it would be a good approach. Refactoring them to use existing modules from providers will take a little work and likely going back and forth with terraform plan, and assuming many things won't translate straight across because of what resources a module might be creating and how they are creating them.
-
The Future of Terraform: ClickOps
We had thought about the ability to convert HCL to Go, but not much thought in querying existing infra to generate HCL (like terraformer). If you want to experiment building on top of Lingon then please go ahead! I’d be happy to help provide the context from Lingon.
-
How do you glue Terraform resources together?
If "ClickOps" is your starting point, as you mention, you could try creating a new scratch cloud provider account, do all your "ClickOps", then use a TF export tool (e.g., Terraformer) to see the exported TF resources to find all the references to other TF resources in the cloud resource dependency chain.
-
Strategies for converting an existing deployment to IaC?
I haven't worked with any of the ones that purport to work with AWS, but a quick Google shows terraformer and Terracognita as options - maybe look into trying those out?
-
Migration to gcp from aws.
This maybe a bit more complicated if you're not into coding/terraform but I'd use terraformer to convert all of your infrastructure from implementation to code while in AWS, then switch providers and with a bit of jiggly of the code implement your infra into gcs as IaC and keep it that way if/when you switch again.
-
Quick terraform noob question about the tfstate
Maybe terraformer could help. I never tried it personally . https://github.com/GoogleCloudPlatform/terraformer
- Possible to backup entire Okta configuration?
-
How do I convert my CloudFormation template into a Terraform file?
I've been wondering if this tool is any good. https://github.com/GoogleCloudPlatform/terraformer/blob/master/docs/aws.md
-
Migrate from terragrunt to terraform
If you've to write the code (I assumed you just needed to reorganize it without TG) maybe consider https://github.com/GoogleCloudPlatform/terraformer
What are some alternatives?
pre-commit-hooks - Some out-of-the-box hooks for pre-commit
terracognita - Reads from existing public and private cloud providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration
lens - Lens - The way the world runs Kubernetes
former2 - Generate CloudFormation / Terraform / Troposphere templates from your existing AWS resources.
atlantis - Terraform Pull Request Automation
terraforming - Export existing AWS resources to Terraform style (tf, tfstate) / No longer actively maintained
tflint - A Pluggable Terraform Linter
gardener - Kubernetes-native system managing the full lifecycle of conformant Kubernetes clusters as a service on Alicloud, AWS, Azure, GCP, OpenStack, vSphere, KubeVirt, Hetzner, EquinixMetal, MetalStack, and OnMetal with minimal TCO.
typedoc - Documentation generator for TypeScript projects.
terraform - Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
terragrunt - Terragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules.
aws2tf - aws2tf - automates the importing of existing AWS resources into Terraform and outputs the Terraform HCL code.