diff --git a/.header.md b/.header.md index 253a4fa..e69de29 100644 --- a/.header.md +++ b/.header.md @@ -1,3 +0,0 @@ -# Main - -asdfadsfas diff --git a/.terraform-docs.yml b/.terraform-docs.yml index 7b9a1eb..cb17c02 100644 --- a/.terraform-docs.yml +++ b/.terraform-docs.yml @@ -1,6 +1,4 @@ -formatter: "" # this is required - -version: "" +formatter: "markdown table" header-from: .header.md footer-from: "" @@ -10,25 +8,11 @@ recursive: path: modules include-main: true -sections: - hide: [] - show: [] - - hide-all: false # deprecated in v0.13.0, removed in v0.15.0 - show-all: true # deprecated in v0.13.0, removed in v0.15.0 - -content: "" - output: - file: "" - mode: inject + file: "README.md" + mode: replace template: |- {{ .Content }} - \n - -output-values: - enabled: false - from: "" sort: enabled: true diff --git a/README.md b/README.md index 205981c..2508e6d 100644 --- a/README.md +++ b/README.md @@ -1,113 +1,38 @@ -# Terraform Module Template -This repository serves as a template for creating Terraform modules. It provides a structured approach to organizing and maintaining Terraform code, along with examples and best practices. -## Table of Contents +## Requirements -- [Prerequisites](#prerequisites) -- [Usage](#usage) -- [Examples](#examples) -- [Module Structure](#module-structure) +| Name | Version | +|------|---------| +| [terraform](#requirement\_terraform) | >= 1.4.6 | +| [aws](#requirement\_aws) | >= 4.65.0 | -## Prerequisites +## Providers -Before you begin, ensure you have met the following requirements: +No providers. -1. [install terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli) -2. [install pre-commit](https://pre-commit.com/#install) -3. configure pre-commit: `pre-commit install` -4. install required tools - - [tflint](https://github.com/terraform-linters/tflint) - - [terraform-docs](https://github.com/terraform-docs/terraform-docs) +## Modules -## Usage +| Name | Source | Version | +|------|--------|---------| +| [dynamodb\_tf\_state\_lock](#module\_dynamodb\_tf\_state\_lock) | ./modules/dynamodb_table | n/a | +| [tf\_state\_s3\_bucket](#module\_tf\_state\_s3\_bucket) | ./modules/s3 | n/a | -To use this template, clone the repository and customize it according to your module's requirements. Below is a quick start guide: +## Resources -1. **Clone the repository:** +No resources. - ```sh - git clone https://github.com/your-username/terraform-module-template.git - cd terraform-module-template - ``` -2. **Customize the module:** +## Inputs - - Update `main.tf`, `variables.tf`, `outputs.tf`, and `versions.tf` files as needed. - - Add your own resources and logic. -3. **Run Terraform commands:** +| Name | Description | Type | Default | Required | +|------|-------------|------|---------|:--------:| +| [dynamodb\_read\_capacity](#input\_dynamodb\_read\_capacity) | (Optional) Number of read units for this table. | `number` | `20` | no | +| [dynamodb\_table\_name](#input\_dynamodb\_table\_name) | (Required) Unique Table name within a region name of the table | `string` | n/a | yes | +| [dynamodb\_table\_tags](#input\_dynamodb\_table\_tags) | (Optional) A map of tags to populate on the created table. | `map(string)` | `{}` | no | +| [dynamodb\_write\_capacity](#input\_dynamodb\_write\_capacity) | (Optional) Number of write units for this table. | `number` | `20` | no | +| [s3\_bucket\_name](#input\_s3\_bucket\_name) | Name of the bucket. If omitted, Terraform will assign a random, unique name. | `string` | n/a | yes | +| [s3\_bucket\_tags](#input\_s3\_bucket\_tags) | (Optional) Map of tags to assign to the bucket. | `map(string)` | `{}` | no | - ```sh - terraform init - terraform plan - terraform apply - ``` +## Outputs -## Examples - -This repository includes example configurations to help you understand how to use the module: - -- **Complete Example:** Located in `examples/complete` - - - Demonstrates a full-featured usage of the module. - - ```sh - cd examples/complete - terraform init - terraform apply - ``` -- **Minimal Example:** Located in `examples/minimal` - - - Shows a minimal configuration for using the module. - - ```sh - cd examples/minimal - terraform init - terraform apply - ``` - -## Module Structure - -The repository is organized as follows: - -```plaintext -. -├── .editorconfig -├── examples -│ ├── complete -│ │ ├── main.tf -│ │ ├── outputs.tf -│ │ ├── provider.tf -│ │ ├── README.md -│ │ ├── variables.tf -│ │ └── versions.tf -│ └── minimal -│ ├── main.tf -│ ├── outputs.tf -│ ├── provider.tf -│ ├── README.md -│ ├── variables.tf -│ └── versions.tf -├── .github -│ └── workflows -│ ├── documentation.yaml -│ ├── pre-commit.yaml -│ └── pr-title.yaml -├── .gitignore -├── main.tf -├── modules -│ └── sample-resource -│ ├── main.tf -│ ├── outputs.tf -│ ├── variables.tf -│ └── version.tf -├── outputs.tf -├── .pre-commit-config.yaml -├── README.md -├── .terraform-docs.yml -├── tests -│ ├── examples_minimal.tftest.hcl -│ └── unit_tests.tftest.hcl -├── .tflint.hcl -├── variables.tf -└── versions.tf -``` +No outputs. diff --git a/modules/dynamodb_table/.header.md b/modules/dynamodb_table/.header.md new file mode 100644 index 0000000..e69de29 diff --git a/modules/dynamodb_table/README.md b/modules/dynamodb_table/README.md new file mode 100644 index 0000000..7c1c74b --- /dev/null +++ b/modules/dynamodb_table/README.md @@ -0,0 +1,32 @@ +## Requirements + +No requirements. + +## Providers + +| Name | Version | +|------|---------| +| [aws](#provider\_aws) | n/a | + +## Modules + +No modules. + +## Resources + +| Name | Type | +|------|------| +| [aws_dynamodb_table.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/dynamodb_table) | resource | + +## Inputs + +| Name | Description | Type | Default | Required | +|------|-------------|------|---------|:--------:| +| [name](#input\_name) | (Required) Unique Table name within a region name of the table | `string` | n/a | yes | +| [read\_capacity](#input\_read\_capacity) | (Optional) Number of read units for this table. | `number` | `20` | no | +| [tags](#input\_tags) | (Optional) A map of tags to populate on the created table. | `map(string)` | `{}` | no | +| [write\_capacity](#input\_write\_capacity) | (Optional) Number of write units for this table. | `number` | `20` | no | + +## Outputs + +No outputs. diff --git a/modules/dynamodb_table/variables.tf b/modules/dynamodb_table/variables.tf index 5dd5d34..7cff8a2 100644 --- a/modules/dynamodb_table/variables.tf +++ b/modules/dynamodb_table/variables.tf @@ -21,4 +21,3 @@ variable "tags" { type = map(string) default = {} } - diff --git a/modules/s3/.header.md b/modules/s3/.header.md new file mode 100644 index 0000000..e69de29 diff --git a/modules/s3/README.md b/modules/s3/README.md new file mode 100644 index 0000000..428f04a --- /dev/null +++ b/modules/s3/README.md @@ -0,0 +1,30 @@ +## Requirements + +No requirements. + +## Providers + +| Name | Version | +|------|---------| +| [aws](#provider\_aws) | 5.57.0 | + +## Modules + +No modules. + +## Resources + +| Name | Type | +|------|------| +| [aws_s3_bucket.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket) | resource | + +## Inputs + +| Name | Description | Type | Default | Required | +|------|-------------|------|---------|:--------:| +| [name](#input\_name) | Name of the bucket. If omitted, Terraform will assign a random, unique name. | `string` | n/a | yes | +| [tags](#input\_tags) | (Optional) Map of tags to assign to the bucket. | `map(string)` | `{}` | no | + +## Outputs + +No outputs.