Skip to content

Commit 3468579

Browse files
authored
Migrate readme yaml (#11)
* Migrate readme yaml
1 parent 6d8c65e commit 3468579

File tree

7 files changed

+359
-74
lines changed

7 files changed

+359
-74
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@
77

88
.idea
99
*.iml
10+
11+
.build-harness
12+
build-harness

Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
SHELL := /bin/bash
22

3+
# List of targets the `readme` target should call before generating the readme
4+
export README_DEPS ?= docs/targets.md docs/terraform.md
5+
36
-include $(shell curl -sSL -o .build-harness "https://git.io/build-harness"; echo .build-harness)
47

8+
## Lint terraform code
59
lint:
6-
$(SELF) terraform/install terraform/get-modules terraform/get-plugins terraform/lint terraform/validate
10+
$(SELF) terraform/install terraform/get-modules terraform/get-plugins terraform/lint terraform/validate

README.md

Lines changed: 146 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
# terraform-aws-dynamodb [![Build Status](https://travis-ci.org/cloudposse/terraform-aws-dynamodb.svg?branch=master)](https://travis-ci.org/cloudposse/terraform-aws-dynamodb)
1+
<!-- This file was automatically generated by the `build-harness`. Make all changes to `README.yaml` and run `make readme` to rebuild this file. -->
2+
3+
[![Cloud Posse](https://cloudposse.com/logo-300x69.svg)](https://cloudposse.com)
4+
5+
# terraform-aws-dynamodb [![Build Status](https://travis-ci.org/cloudposse/terraform-aws-dynamodb.svg?branch=master)](https://travis-ci.org/cloudposse/terraform-aws-dynamodb) [![Latest Release](https://img.shields.io/github/release/cloudposse/terraform-aws-dynamodb.svg)](https://github.com/cloudposse/terraform-aws-dynamodb/releases/latest) [![Slack Community](https://slack.cloudposse.com/badge.svg)](https://slack.cloudposse.com)
6+
27

38
Terraform module to provision a DynamoDB table with autoscaling.
49

@@ -8,6 +13,18 @@ Autoscaler scales up/down the provisioned OPS for the DynamoDB table based on th
813

914
This module requires [AWS Provider](https://github.com/terraform-providers/terraform-provider-aws) `>= 1.17.0`
1015

16+
17+
---
18+
19+
This project is part of our comprehensive ["SweetOps"](https://docs.cloudposse.com) approach towards DevOps.
20+
21+
22+
It's 100% Open Source and licensed under the [APACHE2](LICENSE).
23+
24+
25+
26+
27+
1128
## Usage
1229

1330
```hcl
@@ -76,60 +93,102 @@ module "dynamodb_table" {
7693
}
7794
```
7895

79-
## Variables
80-
81-
| Name | Default | Description | Required |
82-
|:--------------------------------|:-------------|:-------------------------------------------------------------------------------|:--------:|
83-
| `namespace` | `` | Namespace (_e.g._ `cp` or `cloudposse`) | Yes |
84-
| `stage` | `` | Stage (_e.g._ `prod`, `dev`, `staging`) | Yes |
85-
| `name` | `` | Name (_e.g._ `app` or `cluster`) | Yes |
86-
| `hash_key` | `` | DynamoDB table Hash Key | Yes |
87-
| `range_key` | `` | DynamoDB table Range Key | Yes |
88-
| `ttl_attribute` | `` | DynamoDB table TTL attribute | No |
89-
| `enable_streams` | `false` | Enable DynamoDB streams | No |
90-
| `stream_view_type` | `` | When an item in the table is modified, what information is written to the stream | If `enable_streams` is true |
91-
| `enable_encryption` | `true` | Enable DynamoDB server-side encryption | No |
92-
| `enable_point_in_time_recovery` | `true` | Enable DynamoDB point-in-time recovery | No |
93-
| `attributes` | `[]` | Additional attributes (_e.g._ `policy` or `role`) | No |
94-
| `tags` | `{}` | Additional tags (_e.g._ `map("BusinessUnit","XYZ")` | No |
95-
| `delimiter` | `-` | Delimiter to be used between `namespace`, `stage`, `name`, and `attributes` | No |
96-
| `autoscale_write_target` | `50` | The target value (in %) for DynamoDB write autoscaling | No |
97-
| `autoscale_read_target` | `50` | The target value (in %) for DynamoDB read autoscaling | No |
98-
| `autoscale_min_read_capacity` | `5` | DynamoDB autoscaling min read capacity | No |
99-
| `autoscale_max_read_capacity` | `20` | DynamoDB autoscaling max read capacity | No |
100-
| `autoscale_min_write_capacity` | `5` | DynamoDB autoscaling min write capacity | No |
101-
| `autoscale_max_write_capacity` | `20` | DynamoDB autoscaling max write capacity | No |
102-
| `enable_autoscaler` | `true` | Flag to enable/disable DynamoDB autoscaling | No |
103-
| `dynamodb_attributes` | `[]` | List of maps that describe extra DynamoDB attributes | No |
104-
| `global_secondary_index_map` | `[]` | List of maps that describes additional secondary index properties | No |
105-
106-
107-
## A note about DynamoDB attributes
108-
109-
Only define attributes on the table object that are going to be used as:
110-
111-
* Table hash key or range key
112-
* LSI or GSI hash key or range key
113-
114-
The DynamoDB API expects attribute structure (name and type) to be passed along when creating or updating GSI/LSIs or creating the initial table. In these cases it expects the Hash / Range keys to be provided; because these get re-used in numerous places (i.e the table's range key could be a part of one or more GSIs), they are stored on the table object to prevent duplication and increase consistency. If you add attributes here that are not used in these scenarios it can cause an infinite loop in planning.
115-
116-
Additional details see [dynamodb_table](https://www.terraform.io/docs/providers/aws/r/dynamodb_table.html)
96+
97+
98+
99+
100+
101+
## Makefile Targets
102+
```
103+
Available targets:
104+
105+
help This help screen
106+
help/all Display help for all targets
107+
lint Lint terraform code
108+
109+
```
110+
111+
## Inputs
112+
113+
| Name | Description | Type | Default | Required |
114+
|------|-------------|:----:|:-----:|:-----:|
115+
| attributes | Additional attributes (e.g. `policy` or `role`) | list | `<list>` | no |
116+
| autoscale_max_read_capacity | DynamoDB autoscaling max read capacity | string | `20` | no |
117+
| autoscale_max_write_capacity | DynamoDB autoscaling max write capacity | string | `20` | no |
118+
| autoscale_min_read_capacity | DynamoDB autoscaling min read capacity | string | `5` | no |
119+
| autoscale_min_write_capacity | DynamoDB autoscaling min write capacity | string | `5` | no |
120+
| autoscale_read_target | The target value (in %) for DynamoDB read autoscaling | string | `50` | no |
121+
| autoscale_write_target | The target value (in %) for DynamoDB write autoscaling | string | `50` | no |
122+
| delimiter | Delimiter to be used between `namespace`, `stage`, `name`, and `attributes` | string | `-` | no |
123+
| dynamodb_attributes | Additional DynamoDB attributes in the form of a list of mapped values | list | `<list>` | no |
124+
| enable_autoscaler | Flag to enable/disable DynamoDB autoscaling | string | `true` | no |
125+
| enable_encryption | Enable DynamoDB server-side encryption | string | `true` | no |
126+
| enable_point_in_time_recovery | Enable DynamoDB point in time recovery | string | `true` | no |
127+
| enable_streams | Enable DynamoDB streams | string | `false` | no |
128+
| global_secondary_index_map | Additional global secondary indexes in the form of a list of mapped values | list | `<list>` | no |
129+
| hash_key | DynamoDB table Hash Key | string | - | yes |
130+
| name | Name (e.g. `app` or `cluster`) | string | - | yes |
131+
| namespace | Namespace (e.g. `cp` or `cloudposse`) | string | - | yes |
132+
| range_key | DynamoDB table Range Key | string | - | yes |
133+
| stage | Stage (e.g. `prod`, `dev`, `staging`, `infra`) | string | - | yes |
134+
| stream_view_type | When an item in the table is modified, what information is written to the stream | string | `` | no |
135+
| tags | Additional tags (e.g. map('BusinessUnit`,`XYZ`) | map | `<map>` | no |
136+
| ttl_attribute | DynamoDB table TTL attribute | string | `Expires` | no |
117137

118138
## Outputs
119139

120-
| Name | Description |
121-
|:----------------|:-----------------------------|
122-
| `table_id` | DynamoDB table ID |
123-
| `table_arn` | DynamoDB table ARN |
124-
| `table_name` | DynamoDB table name |
140+
| Name | Description |
141+
|------|-------------|
142+
| global_secondary_index_names | DynamoDB secondary index names |
143+
| table_arn | DynamoDB table ARN |
144+
| table_id | DynamoDB table ID |
145+
| table_name | DynamoDB table name |
146+
| table_stream_arn | DynamoDB table stream ARN |
147+
| table_stream_label | DynamoDB table stream label |
148+
149+
150+
151+
152+
## Related Projects
153+
154+
Check out these related projects.
155+
156+
- [terraform-aws-dynamodb-autoscaler](https://github.com/cloudposse/terraform-aws-dynamodb-autoscaler) - Terraform module to provision DynamoDB autoscaler
157+
- [terraform-aws-tfstate-backend](https://github.com/cloudposse/terraform-aws-tfstate-backend) - Provision an S3 bucket to store terraform.tfstate file and a DynamoDB table to lock the state file to prevent concurrent modifications and state corruption
158+
- [terraform-aws-elasticache-redis](https://github.com/cloudposse/terraform-aws-elasticache-redis) - Terraform module to provision an ElastiCache Redis Cluster
159+
- [terraform-aws-elasticache-memcached](https://github.com/cloudposse/terraform-aws-elasticache-memcached) - Terraform Module for ElastiCache Memcached Cluster
160+
- [terraform-aws-elasticache-cloudwatch-sns-alarms](https://github.com/cloudposse/terraform-aws-elasticache-cloudwatch-sns-alarms) - Terraform module that configures CloudWatch SNS alerts for ElastiCache
161+
- [terraform-aws-rds-cluster](https://github.com/cloudposse/terraform-aws-rds-cluster) - Terraform module to provision an RDS Aurora cluster for MySQL or Postgres
162+
- [terraform-aws-rds](https://github.com/cloudposse/terraform-aws-rds) - Terraform module to provision AWS RDS instances
163+
125164

126165

127166
## Help
128167

129168
**Got a question?**
130169

131-
File a GitHub [issue](https://github.com/cloudposse/terraform-aws-dynamodb/issues), send us an [email](mailto:hello@cloudposse.com) or reach out to us on [Gitter](https://gitter.im/cloudposse/).
170+
File a GitHub [issue](https://github.com/cloudposse/terraform-aws-dynamodb/issues), send us an [email][email] or join our [Slack Community][slack].
171+
172+
## Commerical Support
173+
174+
Work directly with our team of DevOps experts via email, slack, and video conferencing.
175+
176+
We provide *commercial support* for all of our [Open Source][github] projects. As a *Dedicated Support* customer, you have access to our team of subject matter experts at a fraction of the cost of a fulltime engineer.
177+
178+
[![E-Mail](https://img.shields.io/badge/email-hello@cloudposse.com-blue.svg)](mailto:hello@cloudposse.com)
132179

180+
- **Questions.** We'll use a Shared Slack channel between your team and ours.
181+
- **Troubleshooting.** We'll help you triage why things aren't working.
182+
- **Code Reviews.** We'll review your Pull Requests and provide constructive feedback.
183+
- **Bug Fixes.** We'll rapidly work to fix any bugs in our projects.
184+
- **Build New Terraform Modules.** We'll develop original modules to provision infrastructure.
185+
- **Cloud Architecture.** We'll assist with your cloud strategy and design.
186+
- **Implementation.** We'll provide hands on support to implement our reference architectures.
187+
188+
189+
## Community Forum
190+
191+
Get access to our [Open Source Community Forum][slack] on Slack. It's **FREE** to join for everyone! Our "SweetOps" community is where you get to talk with others who share a similar vision for how to rollout and manage infrastructure. This is the best place to talk shop, ask questions, solicit feedback, and work together as a community to build *sweet* infrastructure.
133192

134193
## Contributing
135194

@@ -139,22 +198,28 @@ Please use the [issue tracker](https://github.com/cloudposse/terraform-aws-dynam
139198

140199
### Developing
141200

142-
If you are interested in being a contributor and want to get involved in developing `terraform-aws-dynamodb`, we would love to hear from you! Shoot us an [email](mailto:hello@cloudposse.com).
201+
If you are interested in being a contributor and want to get involved in developing this project or [help out](https://github.com/orgs/cloudposse/projects/3) with our other projects, we would love to hear from you! Shoot us an [email](mailto:hello@cloudposse.com).
143202

144203
In general, PRs are welcome. We follow the typical "fork-and-pull" Git workflow.
145204

146205
1. **Fork** the repo on GitHub
147206
2. **Clone** the project to your own machine
148207
3. **Commit** changes to your own branch
149208
4. **Push** your work back up to your fork
150-
5. Submit a **Pull request** so that we can review your changes
209+
5. Submit a **Pull Request** so that we can review your changes
210+
211+
**NOTE:** Be sure to merge the latest changes from "upstream" before making a pull request!
212+
151213

152-
**NOTE:** Be sure to merge the latest from "upstream" before making a pull request!
214+
## Copyright
153215

216+
Copyright © 2017-2018 [Cloud Posse, LLC](https://cloudposse.com)
154217

155-
## License
156218

157-
[APACHE 2.0](LICENSE) © 2017-2018 [Cloud Posse, LLC](https://cloudposse.com)
219+
220+
## License
221+
222+
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
158223

159224
See [LICENSE](LICENSE) for full details.
160225

@@ -166,7 +231,7 @@ See [LICENSE](LICENSE) for full details.
166231
"License"); you may not use this file except in compliance
167232
with the License. You may obtain a copy of the License at
168233

169-
http://www.apache.org/licenses/LICENSE-2.0
234+
https://www.apache.org/licenses/LICENSE-2.0
170235

171236
Unless required by applicable law or agreed to in writing,
172237
software distributed under the License is distributed on an
@@ -176,31 +241,45 @@ See [LICENSE](LICENSE) for full details.
176241
under the License.
177242

178243

244+
## Trademarks
245+
246+
All other trademarks referenced herein are the property of their respective owners.
247+
179248
## About
180249

181-
`terraform-aws-dynamodb` is maintained and funded by [Cloud Posse, LLC][website].
250+
This project is maintained and funded by [Cloud Posse, LLC][website]. Like it? Please let us know at <hello@cloudposse.com>
251+
252+
[![Cloud Posse](https://cloudposse.com/logo-300x69.svg)](https://cloudposse.com)
182253

183-
![Cloud Posse](https://cloudposse.com/logo-300x69.png)
254+
We're a [DevOps Professional Services][hire] company based in Los Angeles, CA. We love [Open Source Software](https://github.com/cloudposse/)!
184255

256+
We offer paid support on all of our projects.
185257

186-
Like it? Please let us know at <hello@cloudposse.com>
258+
Check out [our other projects][github], [apply for a job][jobs], or [hire us][hire] to help with your cloud strategy and implementation.
187259

188-
We love [Open Source Software](https://github.com/cloudposse/)!
260+
[docs]: https://docs.cloudposse.com/
261+
[website]: https://cloudposse.com/
262+
[github]: https://github.com/cloudposse/
263+
[jobs]: https://cloudposse.com/jobs/
264+
[hire]: https://cloudposse.com/contact/
265+
[slack]: https://slack.cloudposse.com/
266+
[linkedin]: https://www.linkedin.com/company/cloudposse
267+
[twitter]: https://twitter.com/cloudposse/
268+
[email]: mailto:hello@cloudposse.com
189269

190-
See [our other projects][community]
191-
or [hire us][hire] to help build your next cloud-platform.
192270

193-
[website]: http://cloudposse.com/
194-
[community]: https://github.com/cloudposse/
195-
[hire]: http://cloudposse.com/contact/
271+
### Contributors
196272

273+
| [![Erik Osterman][osterman_avatar]][osterman_homepage]<br/>[Erik Osterman][osterman_homepage] | [![Andriy Knysh][aknysh_avatar]][aknysh_homepage]<br/>[Andriy Knysh][aknysh_homepage] | [![Jamie Nelson][Jamie-BitFlight_avatar]][Jamie-BitFlight_homepage]<br/>[Jamie Nelson][Jamie-BitFlight_homepage] | [![Daren Desjardins][darend_avatar]][darend_homepage]<br/>[Daren Desjardins][darend_homepage] |
274+
|---|---|---|---|
197275

198-
## Contributors
276+
[osterman_homepage]: https://github.com/osterman
277+
[osterman_avatar]: https://github.com/osterman.png?size=150
278+
[aknysh_homepage]: https://github.com/aknysh
279+
[aknysh_avatar]: https://github.com/aknysh.png?size=150
280+
[Jamie-BitFlight_homepage]: https://github.com/Jamie-BitFlight
281+
[Jamie-BitFlight_avatar]: https://github.com/Jamie-BitFlight.png?size=150
282+
[darend_homepage]: https://github.com/darend
283+
[darend_avatar]: https://github.com/darend.png?size=150
199284

200-
| [![Erik Osterman][erik_img]][erik_web]<br/>[Erik Osterman][erik_web] | [![Andriy Knysh][andriy_img]][andriy_web]<br/>[Andriy Knysh][andriy_web] |
201-
|-------------------------------------------------------|------------------------------------------------------------------|
202285

203-
[erik_img]: http://s.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb?s=144
204-
[erik_web]: https://github.com/osterman/
205-
[andriy_img]: https://avatars0.githubusercontent.com/u/7356997?v=4&u=ed9ce1c9151d552d985bdf5546772e14ef7ab617&s=144
206-
[andriy_web]: https://github.com/aknysh/

0 commit comments

Comments
 (0)