Initial commit
This commit is contained in:
65
.terraform-docs.yml
Normal file
65
.terraform-docs.yml
Normal file
@@ -0,0 +1,65 @@
|
||||
---
|
||||
formatter: "markdown table"
|
||||
version: "0.16"
|
||||
header-from: ./docs/header.md
|
||||
sections:
|
||||
show:
|
||||
- data-sources
|
||||
- header
|
||||
- footer
|
||||
- inputs
|
||||
- modules
|
||||
- outputs
|
||||
- providers
|
||||
- requirements
|
||||
- resources
|
||||
content: |-
|
||||
{{ .Header }}
|
||||
{{ .Requirements }}
|
||||
{{ .Providers }}
|
||||
{{ .Modules }}
|
||||
## Usage
|
||||
Basic usage of this module is as follows:
|
||||
```hcl
|
||||
module "example" {
|
||||
{{"\t"}} source = "<module-path>"
|
||||
{{- if .Module.RequiredInputs }}
|
||||
{{"\n\t"}} # Required variables
|
||||
{{- range .Module.RequiredInputs }}
|
||||
{{"\t"}} {{ .Name }} = {{ .GetValue }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Module.OptionalInputs }}
|
||||
{{"\n\t"}} # Optional variables
|
||||
{{- range .Module.OptionalInputs }}
|
||||
{{"\t"}} {{ .Name }} = {{ .GetValue | printf "%s" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
}
|
||||
```
|
||||
{{ .Resources }}
|
||||
{{ .Inputs }}
|
||||
{{ .Outputs }}
|
||||
output:
|
||||
file: README.md
|
||||
mode: inject
|
||||
template: |-
|
||||
<!-- BEGIN_AUTOMATED_TF_DOCS_BLOCK -->
|
||||
{{ .Content }}
|
||||
<!-- END_AUTOMATED_TF_DOCS_BLOCK -->
|
||||
sort:
|
||||
enabled: true
|
||||
by: name
|
||||
settings:
|
||||
anchor: true
|
||||
color: true
|
||||
default: true
|
||||
description: true
|
||||
escape: false
|
||||
hide-empty: false
|
||||
html: true
|
||||
indent: 2
|
||||
lockfile: true
|
||||
required: true
|
||||
sensitive: true
|
||||
type: true
|
||||
84
README.md
Normal file
84
README.md
Normal file
@@ -0,0 +1,84 @@
|
||||
<!-- BEGIN_AUTOMATED_TF_DOCS_BLOCK -->
|
||||
Terraform NAME Module
|
||||
========================
|
||||
|
||||
## Overview
|
||||
|
||||
Description of what the module does
|
||||
## Requirements
|
||||
|
||||
| Name | Version |
|
||||
|------|---------|
|
||||
| <a name="requirement_terraform"></a> [terraform](#requirement_terraform) | >= 1.0 |
|
||||
## Providers
|
||||
|
||||
No providers.
|
||||
## Modules
|
||||
|
||||
| Name | Source | Version |
|
||||
|------|--------|---------|
|
||||
| <a name="module_default_label"></a> [default_label](#module_default_label) | git@gitlab.com:zulunity/terraform/modules/general/label.git | 0.0.0 |
|
||||
## Usage
|
||||
Basic usage of this module is as follows:
|
||||
```hcl
|
||||
module "example" {
|
||||
source = "<module-path>"
|
||||
|
||||
# Optional variables
|
||||
account = null
|
||||
attributes = []
|
||||
cloud_provider = null
|
||||
context = {
|
||||
"account": null,
|
||||
"additional_tag_map": {},
|
||||
"attributes": [],
|
||||
"cloud_provider": null,
|
||||
"delimiter": null,
|
||||
"enabled": true,
|
||||
"environment": null,
|
||||
"id_length_limit": null,
|
||||
"label_order": [],
|
||||
"name": null,
|
||||
"namespace": null,
|
||||
"regex_replace_chars": null,
|
||||
"region": null,
|
||||
"stage": null,
|
||||
"tags": {}
|
||||
}
|
||||
domain = null
|
||||
enabled = true
|
||||
environment = null
|
||||
name = "hi"
|
||||
namespace = null
|
||||
region = null
|
||||
stage = null
|
||||
tags = {}
|
||||
}
|
||||
```
|
||||
## Resources
|
||||
|
||||
No resources.
|
||||
## Inputs
|
||||
|
||||
| Name | Description | Type | Default | Required |
|
||||
|------|-------------|------|---------|:--------:|
|
||||
| <a name="input_account"></a> [account](#input_account) | Name of the account being used (master, nonprod, prod, etc) | `string` | `null` | no |
|
||||
| <a name="input_attributes"></a> [attributes](#input_attributes) | Additional attributes (e.g. `1`) | `list(string)` | `[]` | no |
|
||||
| <a name="input_cloud_provider"></a> [cloud_provider](#input_cloud_provider) | Cloud provider name if any | `string` | `null` | no |
|
||||
| <a name="input_context"></a> [context](#input_context) | Single object for setting entire context at once.<br>See description of individual variables for details.<br>Leave string and numeric variables as `null` to use default value.<br>Individual variable settings (non-null) override settings in context object,<br>except for attributes, tags, and additional_tag_map, which are merged. | <pre>object({<br> enabled = bool<br> namespace = string<br> cloud_provider = string<br> account = string<br> region = string<br> environment = string<br> stage = string<br> name = string<br> delimiter = string<br> attributes = list(string)<br> tags = map(string)<br> additional_tag_map = map(string)<br> regex_replace_chars = string<br> label_order = list(string)<br> id_length_limit = number<br> })</pre> | <pre>{<br> "account": null,<br> "additional_tag_map": {},<br> "attributes": [],<br> "cloud_provider": null,<br> "delimiter": null,<br> "enabled": true,<br> "environment": null,<br> "id_length_limit": null,<br> "label_order": [],<br> "name": null,<br> "namespace": null,<br> "regex_replace_chars": null,<br> "region": null,<br> "stage": null,<br> "tags": {}<br>}</pre> | no |
|
||||
| <a name="input_domain"></a> [domain](#input_domain) | TLD to use when deploying assets | `string` | `null` | no |
|
||||
| <a name="input_enabled"></a> [enabled](#input_enabled) | Set to false to prevent the module from creating any resources | `bool` | `true` | no |
|
||||
| <a name="input_environment"></a> [environment](#input_environment) | Environment, e.g. 'prod', 'staging', 'dev', 'pre-prod', 'UAT' | `string` | `null` | no |
|
||||
| <a name="input_name"></a> [name](#input_name) | Module name, e.g. 'app' or 'jenkins' | `string` | `"hi"` | no |
|
||||
| <a name="input_namespace"></a> [namespace](#input_namespace) | Namespace, which could be your organization name or abbreviation, e.g. 'eg' or 'cp' | `string` | `null` | no |
|
||||
| <a name="input_region"></a> [region](#input_region) | AWS region to deploy asset into | `string` | `null` | no |
|
||||
| <a name="input_stage"></a> [stage](#input_stage) | Stage, e.g. 'prod', 'staging', 'dev', OR 'source', 'build', 'test', 'deploy', 'release' | `string` | `null` | no |
|
||||
| <a name="input_tags"></a> [tags](#input_tags) | Additional tags (e.g. `map('BusinessUnit','XYZ')` | `map(string)` | `{}` | no |
|
||||
## Outputs
|
||||
|
||||
| Name | Description |
|
||||
|------|-------------|
|
||||
| <a name="output_context"></a> [context](#output_context) | Default label context |
|
||||
| <a name="output_enabled"></a> [enabled](#output_enabled) | Whether or not the module is enabled |
|
||||
| <a name="output_name"></a> [name](#output_name) | Name of the asset |
|
||||
<!-- END_AUTOMATED_TF_DOCS_BLOCK -->
|
||||
6
docs/header.md
Normal file
6
docs/header.md
Normal file
@@ -0,0 +1,6 @@
|
||||
Terraform NAME Module
|
||||
========================
|
||||
|
||||
## Overview
|
||||
|
||||
Description of what the module does
|
||||
11
main.tf
Normal file
11
main.tf
Normal file
@@ -0,0 +1,11 @@
|
||||
# Local
|
||||
locals {
|
||||
tags = {}
|
||||
}
|
||||
|
||||
# Label
|
||||
module "default_label" {
|
||||
source = "git@gitlab.com:zulunity/terraform/modules/general/label.git?ref=0.0.0"
|
||||
name = var.name
|
||||
tags = merge(var.tags, local.tags)
|
||||
}
|
||||
17
outputs.tf
Normal file
17
outputs.tf
Normal file
@@ -0,0 +1,17 @@
|
||||
# Standard Outputs
|
||||
output "name" {
|
||||
description = "Name of the asset"
|
||||
value = module.default_label.id
|
||||
}
|
||||
|
||||
output "context" {
|
||||
description = "Default label context"
|
||||
value = module.default_label.context
|
||||
}
|
||||
|
||||
output "enabled" {
|
||||
description = "Whether or not the module is enabled"
|
||||
value = var.enabled
|
||||
}
|
||||
|
||||
# Module Outputs
|
||||
122
variables.tf
Normal file
122
variables.tf
Normal file
@@ -0,0 +1,122 @@
|
||||
###
|
||||
# Standard Variables
|
||||
#
|
||||
# All modules expect these variables to be defined. Omitting them will result in errors or undefined/undesirable behavior.
|
||||
#
|
||||
# tflint-ignore: terraform_unused_declarations
|
||||
variable "account" {
|
||||
type = string
|
||||
default = null
|
||||
description = "Name of the account being used (master, nonprod, prod, etc)"
|
||||
}
|
||||
|
||||
# tflint-ignore: terraform_unused_declarations
|
||||
variable "attributes" {
|
||||
type = list(string)
|
||||
default = []
|
||||
description = "Additional attributes (e.g. `1`)"
|
||||
}
|
||||
# tflint-ignore: terraform_unused_declarations
|
||||
variable "cloud_provider" {
|
||||
type = string
|
||||
default = null
|
||||
description = "Cloud provider name if any"
|
||||
}
|
||||
# tflint-ignore: terraform_unused_declarations
|
||||
variable "context" {
|
||||
type = object({
|
||||
enabled = bool
|
||||
namespace = string
|
||||
cloud_provider = string
|
||||
account = string
|
||||
region = string
|
||||
environment = string
|
||||
stage = string
|
||||
name = string
|
||||
delimiter = string
|
||||
attributes = list(string)
|
||||
tags = map(string)
|
||||
additional_tag_map = map(string)
|
||||
regex_replace_chars = string
|
||||
label_order = list(string)
|
||||
id_length_limit = number
|
||||
})
|
||||
default = {
|
||||
enabled = true
|
||||
namespace = null
|
||||
cloud_provider = null
|
||||
account = null
|
||||
region = null
|
||||
environment = null
|
||||
stage = null
|
||||
name = null
|
||||
delimiter = null
|
||||
attributes = []
|
||||
tags = {}
|
||||
additional_tag_map = {}
|
||||
regex_replace_chars = null
|
||||
label_order = []
|
||||
id_length_limit = null
|
||||
}
|
||||
description = <<-EOT
|
||||
Single object for setting entire context at once.
|
||||
See description of individual variables for details.
|
||||
Leave string and numeric variables as `null` to use default value.
|
||||
Individual variable settings (non-null) override settings in context object,
|
||||
except for attributes, tags, and additional_tag_map, which are merged.
|
||||
EOT
|
||||
}
|
||||
# tflint-ignore: terraform_unused_declarations
|
||||
variable "domain" {
|
||||
type = string
|
||||
default = null
|
||||
description = "TLD to use when deploying assets"
|
||||
}
|
||||
# tflint-ignore: terraform_unused_declarations
|
||||
variable "enabled" {
|
||||
type = bool
|
||||
default = true
|
||||
description = "Set to false to prevent the module from creating any resources"
|
||||
}
|
||||
# tflint-ignore: terraform_unused_declarations
|
||||
variable "environment" {
|
||||
type = string
|
||||
default = null
|
||||
description = "Environment, e.g. 'prod', 'staging', 'dev', 'pre-prod', 'UAT'"
|
||||
}
|
||||
|
||||
variable "name" {
|
||||
type = string
|
||||
default = "hi"
|
||||
description = "Module name, e.g. 'app' or 'jenkins'"
|
||||
}
|
||||
# tflint-ignore: terraform_unused_declarations
|
||||
variable "namespace" {
|
||||
type = string
|
||||
default = null
|
||||
description = "Namespace, which could be your organization name or abbreviation, e.g. 'eg' or 'cp'"
|
||||
}
|
||||
# tflint-ignore: terraform_unused_declarations
|
||||
variable "region" {
|
||||
type = string
|
||||
default = null
|
||||
description = "AWS region to deploy asset into"
|
||||
}
|
||||
# tflint-ignore: terraform_unused_declarations
|
||||
variable "stage" {
|
||||
type = string
|
||||
default = null
|
||||
description = "Stage, e.g. 'prod', 'staging', 'dev', OR 'source', 'build', 'test', 'deploy', 'release'"
|
||||
}
|
||||
# tflint-ignore: terraform_unused_declarations
|
||||
variable "tags" {
|
||||
type = map(string)
|
||||
default = {}
|
||||
description = "Additional tags (e.g. `map('BusinessUnit','XYZ')`"
|
||||
}
|
||||
|
||||
###
|
||||
# Module Variables
|
||||
#
|
||||
# Variables specific to this module
|
||||
#
|
||||
3
versions.tf
Normal file
3
versions.tf
Normal file
@@ -0,0 +1,3 @@
|
||||
terraform {
|
||||
required_version = ">= 1.0"
|
||||
}
|
||||
Reference in New Issue
Block a user