|
1 | | -# Terraform Module Template |
2 | 1 |
|
3 | | -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. |
4 | 2 |
|
5 | | -## Table of Contents |
| 3 | +## Requirements |
6 | 4 |
|
7 | | -- [Prerequisites](#prerequisites) |
8 | | -- [Usage](#usage) |
9 | | -- [Examples](#examples) |
10 | | -- [Module Structure](#module-structure) |
| 5 | +| Name | Version | |
| 6 | +|------|---------| |
| 7 | +| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.4.6 | |
| 8 | +| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.65.0 | |
11 | 9 |
|
12 | | -## Prerequisites |
| 10 | +## Providers |
13 | 11 |
|
14 | | -Before you begin, ensure you have met the following requirements: |
| 12 | +No providers. |
15 | 13 |
|
16 | | -1. [install terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli) |
17 | | -2. [install pre-commit](https://pre-commit.com/#install) |
18 | | -3. configure pre-commit: `pre-commit install` |
19 | | -4. install required tools |
20 | | - - [tflint](https://github.com/terraform-linters/tflint) |
21 | | - - [terraform-docs](https://github.com/terraform-docs/terraform-docs) |
| 14 | +## Modules |
22 | 15 |
|
23 | | -## Usage |
| 16 | +| Name | Source | Version | |
| 17 | +|------|--------|---------| |
| 18 | +| <a name="module_dynamodb_tf_state_lock"></a> [dynamodb\_tf\_state\_lock](#module\_dynamodb\_tf\_state\_lock) | ./modules/dynamodb_table | n/a | |
| 19 | +| <a name="module_tf_state_s3_bucket"></a> [tf\_state\_s3\_bucket](#module\_tf\_state\_s3\_bucket) | ./modules/s3 | n/a | |
24 | 20 |
|
25 | | -To use this template, clone the repository and customize it according to your module's requirements. Below is a quick start guide: |
| 21 | +## Resources |
26 | 22 |
|
27 | | -1. **Clone the repository:** |
| 23 | +No resources. |
28 | 24 |
|
29 | | - ```sh |
30 | | - git clone https://github.com/your-username/terraform-module-template.git |
31 | | - cd terraform-module-template |
32 | | - ``` |
33 | | -2. **Customize the module:** |
| 25 | +## Inputs |
34 | 26 |
|
35 | | - - Update `main.tf`, `variables.tf`, `outputs.tf`, and `versions.tf` files as needed. |
36 | | - - Add your own resources and logic. |
37 | | -3. **Run Terraform commands:** |
| 27 | +| Name | Description | Type | Default | Required | |
| 28 | +|------|-------------|------|---------|:--------:| |
| 29 | +| <a name="input_dynamodb_read_capacity"></a> [dynamodb\_read\_capacity](#input\_dynamodb\_read\_capacity) | (Optional) Number of read units for this table. | `number` | `20` | no | |
| 30 | +| <a name="input_dynamodb_table_name"></a> [dynamodb\_table\_name](#input\_dynamodb\_table\_name) | (Required) Unique Table name within a region name of the table | `string` | n/a | yes | |
| 31 | +| <a name="input_dynamodb_table_tags"></a> [dynamodb\_table\_tags](#input\_dynamodb\_table\_tags) | (Optional) A map of tags to populate on the created table. | `map(string)` | `{}` | no | |
| 32 | +| <a name="input_dynamodb_write_capacity"></a> [dynamodb\_write\_capacity](#input\_dynamodb\_write\_capacity) | (Optional) Number of write units for this table. | `number` | `20` | no | |
| 33 | +| <a name="input_s3_bucket_name"></a> [s3\_bucket\_name](#input\_s3\_bucket\_name) | Name of the bucket. If omitted, Terraform will assign a random, unique name. | `string` | n/a | yes | |
| 34 | +| <a name="input_s3_bucket_tags"></a> [s3\_bucket\_tags](#input\_s3\_bucket\_tags) | (Optional) Map of tags to assign to the bucket. | `map(string)` | `{}` | no | |
38 | 35 |
|
39 | | - ```sh |
40 | | - terraform init |
41 | | - terraform plan |
42 | | - terraform apply |
43 | | - ``` |
| 36 | +## Outputs |
44 | 37 |
|
45 | | -## Examples |
46 | | - |
47 | | -This repository includes example configurations to help you understand how to use the module: |
48 | | - |
49 | | -- **Complete Example:** Located in `examples/complete` |
50 | | - |
51 | | - - Demonstrates a full-featured usage of the module. |
52 | | - |
53 | | - ```sh |
54 | | - cd examples/complete |
55 | | - terraform init |
56 | | - terraform apply |
57 | | - ``` |
58 | | -- **Minimal Example:** Located in `examples/minimal` |
59 | | - |
60 | | - - Shows a minimal configuration for using the module. |
61 | | - |
62 | | - ```sh |
63 | | - cd examples/minimal |
64 | | - terraform init |
65 | | - terraform apply |
66 | | - ``` |
67 | | - |
68 | | -## Module Structure |
69 | | - |
70 | | -The repository is organized as follows: |
71 | | - |
72 | | -```plaintext |
73 | | -. |
74 | | -├── .editorconfig |
75 | | -├── examples |
76 | | -│ ├── complete |
77 | | -│ │ ├── main.tf |
78 | | -│ │ ├── outputs.tf |
79 | | -│ │ ├── provider.tf |
80 | | -│ │ ├── README.md |
81 | | -│ │ ├── variables.tf |
82 | | -│ │ └── versions.tf |
83 | | -│ └── minimal |
84 | | -│ ├── main.tf |
85 | | -│ ├── outputs.tf |
86 | | -│ ├── provider.tf |
87 | | -│ ├── README.md |
88 | | -│ ├── variables.tf |
89 | | -│ └── versions.tf |
90 | | -├── .github |
91 | | -│ └── workflows |
92 | | -│ ├── documentation.yaml |
93 | | -│ ├── pre-commit.yaml |
94 | | -│ └── pr-title.yaml |
95 | | -├── .gitignore |
96 | | -├── main.tf |
97 | | -├── modules |
98 | | -│ └── sample-resource |
99 | | -│ ├── main.tf |
100 | | -│ ├── outputs.tf |
101 | | -│ ├── variables.tf |
102 | | -│ └── version.tf |
103 | | -├── outputs.tf |
104 | | -├── .pre-commit-config.yaml |
105 | | -├── README.md |
106 | | -├── .terraform-docs.yml |
107 | | -├── tests |
108 | | -│ ├── examples_minimal.tftest.hcl |
109 | | -│ └── unit_tests.tftest.hcl |
110 | | -├── .tflint.hcl |
111 | | -├── variables.tf |
112 | | -└── versions.tf |
113 | | -``` |
| 38 | +No outputs. |
0 commit comments