|
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