Skip to content

Instantly share code, notes, and snippets.

@kmcquade
Last active September 22, 2021 19:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save kmcquade/be6facb8487c8647cd2a89c9053a5d6c to your computer and use it in GitHub Desktop.
Save kmcquade/be6facb8487c8647cd2a89c9053a5d6c to your computer and use it in GitHub Desktop.
My Intellij Live Templates || VSCode Code snippets for Terraform
##### Working directories #####
tmp
!.gitkeep
_notes
results.*
##### HashiCorp #####
#### Terraform
# Local .terraform directories
**/.terraform/*
*.plan
# .tfstate files
*.tfstate
*.tfstate.*
# .tfvars files
*.tfvars
!terraform.tfvars
#### Vagrant
.vagrant
#### Packer
packer_cache/
# For built boxes
*.box
##### Other #####
*.pem
########## IDE ##########
.idea
.vscode
#### Log files
*.log
# Generated most of this with https://www.gitignore.io/
########## Mac OSX ##########
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
########## Terraform ##########
# Local .terraform directories
**/.terraform/*
*.plan
# .tfstate files
*.tfstate
*.tfstate.*
# .tfvars files
*.tfvars
!terraform.tfvars
########## Python ##########
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# celery beat schedule file
celerybeat-schedule
# SageMath parsed files
*.sage.py
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# Mr Developer
.mr.developer.cfg
.project
.pydevproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# ---------------------------------------------------------------------------------------------------------------------
# $NAME$
# $Description$
# ---------------------------------------------------------------------------------------------------------------------
##### Working directories #####
tmp
_notes
##### Other #####
*.pem
##### Technologies #####
#### Terraform
# Local .terraform directories
**/.terraform/*
*.plan
# .tfstate files
*.tfstate
*.tfstate.*
# .tfvars files
*.tfvars
!terraform.tfvars
#### Vagrant
.vagrant
########## IDE ##########
.idea
.vscode
#### Log files
*.log
########## Packer ##########
# Cache objects
packer_cache/
# For built boxes
*.box
########## Mac OSX ##########
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
module "label" {
source = "git::https://github.com/cloudposse/terraform-terraform-label.git?ref=0.3.1"
namespace = var.namespace
stage = var.stage
name = var.name
attributes = [compact(var.attributes)]
delimiter = var.delimiter
convert_case = var.convert_case
tags = var.default_tags
enabled = "true"
}
# tf-module-name
This module creates ...
It implements ...
It enables ...
## Requirements
`TODO: List requirements here, such as pre-existing key pair, VPC, etc.`
## Usage
```hcl-terraform
// Example code here
```
## Inputs
`TODO: Insert table here using terraform-docs`
## Outputs
`TODO: Insert table here using terraform-docs`
## License
Copyright: © 2019 Kinnaird McQuade
# ---------------------------------------------------------------------------------------------------------------------
# GENERAL
# These variables pass in general data from the calling module, such as the AWS Region and billing tags.
# ---------------------------------------------------------------------------------------------------------------------
variable "default_tags" {
description = "Default billing tags to be applied across all resources"
type = "map"
default = {}
}
variable "region" {
description = "The AWS region for these resources, such as us-east-1."
}
# ---------------------------------------------------------------------------------------------------------------------
# TOGGLES
# Toogle to true to create resources
# ---------------------------------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------
# RESOURCE VALUES
# These variables pass in actual values to configure resources. CIDRs, Instance Sizes, etc.
# ---------------------------------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------
# RESOURCE REFERENCES
# These variables pass in metadata on other AWS resources, such as ARNs, Names, etc.
# ---------------------------------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------
# NAMING
# This manages the names of resources in this module.
# ---------------------------------------------------------------------------------------------------------------------
variable "namespace" {
description = "Namespace, which could be your organization name. First item in naming sequence."
}
variable "stage" {
description = "Stage, e.g. `prod`, `staging`, `dev`, or `test`. Second item in naming sequence."
}
variable "name" {
description = "Name, which could be the name of your solution or app. Third item in naming sequence."
}
variable "attributes" {
type = "list"
default = []
description = "Additional attributes, e.g. `1`"
}
variable "convert_case" {
description = "Convert fields to lower case"
default = "true"
}
variable "delimiter" {
type = "string"
default = "-"
description = "Delimiter to be used between (1) `namespace`, (2) `name`, (3) `stage` and (4) `attributes`"
}
# ---------------------------------------------------------------------------------------------------------------------
# NAMING PREFIXES
# This manages the naming prefixes in this module.
# ---------------------------------------------------------------------------------------------------------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment