terraform-docs
terraform-aws-vpc
Our great sponsors
terraform-docs | terraform-aws-vpc | |
---|---|---|
31 | 22 | |
3,965 | 2,854 | |
2.2% | 1.4% | |
7.7 | 7.2 | |
5 days ago | 6 days ago | |
Go | HCL | |
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
-
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.
One thing you might try is running https://terraform-docs.io/ against each module. You can generate markdown that more or less tells you the inputs and outputs for each module so you don't have to go hunt them down if the module authors have scattered their declarations around the different .tf files. Also if you're lucky enough that they actually put the description fields in to the declarations, it will put that in the markdown also. Just knowing the module interfaces goes a long way in understanding what the modules do or can't do, what stuff is hard coded and what stuff you need to hunt for, e.g. are there a bunch of data terraform_remote_state resources pulling inputs in to the module instead of using variable declarations, etc.
-
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!
terraform-aws-vpc
-
Un cóctel perfecto 🍹 ECS Fargate, Service Connect,Terraform y Github Actions.
ECR VPC ECS
- Private github monorepo to store official AWS terraform modules as github submodules
-
Deploy Secure Spring Boot Microservices on Amazon EKS Using Terraform and Kubernetes
Now let us move on to the important part of the tutorial. Creating an EKS cluster in AWS is not as straightforward as in other cloud platforms. You need to also create a lot more resources for everything to work correctly without surprises. You will be using a bunch of Terraform providers to help with this, and you will also use some prebuilt Terraform modules like AWS VPC Terraform module and Amazon EKS Blueprints for Terraform to reduce the amount of boilerplate you need to write.
-
Cost optimisation on AWS: Navigating NAT Charges with Private ECS Tasks on Fargate
The infrastructure is created using terraform, and can be found in this git repository. The project uses community maintained AWS Terraform modules, which simplify this process. The code examples that follow in the post are using the vpc-endpoints module to create the Gateway and interface endpoints.
-
Create a simple EKS cluster
locals { region = data.aws_region.current.name } module "vpc" { source = "git::https://github.com/terraform-aws-modules/terraform-aws-vpc.git?ref=v3.16.0" name = var.vpc_name cidr = var.vpc_cidr azs = ["${local.region}a", "${local.region}b"] public_subnets = cidrsubnets(var.vpc_cidr, 1, 1) enable_dns_hostnames = true enable_dns_support = true map_public_ip_on_launch = true tags = { Name = var.vpc_name } public_subnet_tags = { Name = "public subnet" "kubernetes.io/role/elb" = "1" "kubernetes.io/cluster/${var.cluster_name}" = "shared" } }
- advance terraform practice
-
What's the difference between deploying ec2 instance as a module and deploying ec2 instance as a resource?
If you take the vpc module of terraform-aws-modules as an example, you see that there's a lot more to it than solely the vpc itself (https://github.com/terraform-aws-modules/terraform-aws-vpc/blob/master/main.tf). The same for your other example the ec2 instance (https://github.com/terraform-aws-modules/terraform-aws-ec2-instance/blob/master/main.tf).
-
Terraform Module Template
This is a template to create a module. It has a lot of stuff built in like testing tools. Those are all covered in the README. The module itself is just a simple "Hello World" so it doesn't really use very complicated Terraform logic. It's not a great example for advanced Terraform logic but this is https://github.com/terraform-aws-modules/terraform-aws-vpc/blob/master/main.tf.
You can see the same structure in the official Consul module provided by Hashicorp as well as in the AWS community modules, like here in the VPC module.
-
Generating a YAML file with Go template engine?
yaml terragrunt_modules_settings: regional: vpc_eks: networking: repo: "git::https://github.com/terraform-aws-modules/terraform-aws-vpc.git" tf_variables: enable_dns_hostnames: true enable_ipv6: false enable_nat_gateway: false single_nat_gateway: false
What are some alternatives?
pre-commit-hooks - Some out-of-the-box hooks for pre-commit
winget-cli - WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).
lens - Lens - The way the world runs Kubernetes
atlantis - Terraform Pull Request Automation
tflint - A Pluggable Terraform Linter
typedoc - Documentation generator for TypeScript projects.
terragrunt - Terragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules.
krew - 📦 Find and install kubectl plugins
JavaScript - Algorithms and Data Structures implemented in JavaScript for beginners, following best practices.
pre-commit-terraform - pre-commit git hooks to take care of Terraform configurations 🇺🇦
pre-commit - A framework for managing and maintaining multi-language pre-commit hooks.
readme-md-generator - 📄 CLI that generates beautiful README.md files