Skip to content
This repository has been archived by the owner on Jan 30, 2021. It is now read-only.

Commit

Permalink
Migrate readme yaml (#5)
Browse files Browse the repository at this point in the history
* Migrate readme yaml
  • Loading branch information
vadim-gleif authored Jul 24, 2018
1 parent 8c3975a commit 0ab96cf
Show file tree
Hide file tree
Showing 7 changed files with 351 additions and 65 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@
.terraform/
.idea
*.iml

.build-harness
build-harness
6 changes: 5 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
SHELL := /bin/bash

# List of targets the `readme` target should call before generating the readme
export README_DEPS ?= docs/targets.md docs/terraform.md

-include $(shell curl -sSL -o .build-harness "https://git.io/build-harness"; echo .build-harness)

## Lint terraform code
lint:
$(SELF) terraform/install terraform/get-modules terraform/get-plugins terraform/lint terraform/validate
$(SELF) terraform/install terraform/get-modules terraform/get-plugins terraform/lint terraform/validate
202 changes: 147 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
# terraform-aws-kops-state-backend [![Build Status](https://travis-ci.org/cloudposse/terraform-aws-kops-state-backend.svg?branch=master)](https://travis-ci.org/cloudposse/terraform-aws-kops-state-backend)
<!-- This file was automatically generated by the `build-harness`. Make all changes to `README.yaml` and run `make readme` to rebuild this file. -->

[![Cloud Posse](https://cloudposse.com/logo-300x69.svg)](https://cloudposse.com)

# terraform-aws-kops-state-backend [![Build Status](https://travis-ci.org/cloudposse/terraform-aws-kops-state-backend.svg?branch=master)](https://travis-ci.org/cloudposse/terraform-aws-kops-state-backend) [![Latest Release](https://img.shields.io/github/release/cloudposse/terraform-aws-kops-state-backend.svg)](https://github.com/cloudposse/terraform-aws-kops-state-backend/releases/latest) [![Slack Community](https://slack.cloudposse.com/badge.svg)](https://slack.cloudposse.com)


Terraform module to provision dependencies for `kops` (config S3 bucket & DNS zone).

Expand All @@ -8,6 +13,28 @@ The module supports the following:
2. S3 bucket versioning to allow for `kops` state recovery in the case of accidental deletions or human errors


---

This project is part of our comprehensive ["SweetOps"](https://docs.cloudposse.com) approach towards DevOps.


It's 100% Open Source and licensed under the [APACHE2](LICENSE).








## Screenshots


![kops-state-backend](images/kops-state-backend.png)
*Example of outputs from the module after running `terraform apply`*



## Usage

This example will create a DNS zone called `us-east-1.cloudxl.net` and delegate it from the parent zone `cloudxl.net` by setting `NS` and `SOA` records in the parent zone.
Expand All @@ -29,10 +56,6 @@ module "kops" {

<br/>

![kops-state-backend](images/kops-state-backend.png)

<br/>

To verify that the created `kops` DNS zone has been tagged correctly, run

```sh
Expand Down Expand Up @@ -71,50 +94,95 @@ aws route53 list-tags-for-resources --resource-type hostedzone --resource-ids Z2
```
## Variables
__NOTE:__ One of `parent_zone_name` or `parent_zone_id` is required, but not both.
The module will lookup the parent zone by either name or ID.
| Name | Default | Description | Required |
|:-------------------------|:-----------------------------------------|:----------------------------------------------------------------------------------|:--------:|
| `namespace` | `` | Namespace (_e.g._ `cp` or `cloudposse`) | Yes |
| `stage` | `` | Stage (_e.g._ `prod`, `dev`, `staging`) | Yes |
| `region` | `us-east-1` | AWS Region the S3 bucket should reside in | Yes |
| `parent_zone_name` | `` | Parent DNS zone name (e.g. `domain.com`). Required if `parent_zone_id` is not provided | Yes |
| `parent_zone_id` | `` | Parent DNS zone ID. Required if `parent_zone_name` is not provided | Yes |
| `name` | `kops-state` | S3 bucket name (_e.g._ `kops-state`) | Yes |
| `cluster_name` | `us-east-1` | Kops cluster name (_e.g._ `us-east-1` or `cluster-1`) | Yes |
| `attributes` | `[]` | Additional attributes (_e.g._ `1`) | No |
| `tags` | `{}` | Additional tags (_e.g._ `map("BusinessUnit","XYZ")` | No |
| `delimiter` | `-` | Delimiter to be used between `namespace`, `stage`, `name`, and `attributes` | No |
| `acl` | `private` | The canned ACL to apply to the S3 bucket | No |
| `zone_name` | `$${name}.$${parent_zone_name}` | Template for the DNS zone name | No |
| `force_destroy` | `false` | A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without errors | No |
## Makefile Targets
```
Available targets:

help This help screen
help/all Display help for all targets
lint Lint terraform code

```
## Inputs
| Name | Description | Type | Default | Required |
|------|-------------|:----:|:-----:|:-----:|
| acl | The canned ACL to apply to the S3 bucket | string | `private` | no |
| attributes | Additional attributes (e.g. `1`) | list | `<list>` | no |
| cluster_name | Kops cluster name (e.g. `us-east-1` or `cluster-1`) | string | `us-east-1` | no |
| delimiter | Delimiter to be used between `namespace`, `stage`, `name`, and `attributes` | string | `-` | no |
| force_destroy | A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without errors. These objects are not recoverable | string | `false` | no |
| name | Name (e.g. `kops-state`) | string | `kops-state` | no |
| namespace | Namespace (e.g. `cp` or `cloudposse`) | string | - | yes |
| parent_zone_id | Parent DNS zone ID | string | `` | no |
| parent_zone_name | Parent DNS zone name (e.g. `domain.com`) | string | `` | no |
| region | AWS Region the S3 bucket should reside in | string | `us-east-1` | no |
| stage | Stage (e.g. `prod`, `dev`, `staging`) | string | - | yes |
| tags | Additional tags (e.g. map(`BusinessUnit`,`XYZ`) | map | `<map>` | no |
| zone_name | Template for the DNS zone name | string | `$${name}.$${parent_zone_name}` | no |
## Outputs
| Name | Description |
|:-----------------------|:--------------------------|
| `parent_zone_id` | Parent zone ID |
| `parent_zone_name` | Parent zone name |
| `zone_id` | `kops` cluster zone ID |
| `zone_name` | `kops` cluster zone name |
| `bucket_name` | S3 bucket name |
| `bucket_region` | S3 bucket region |
| `bucket_domain_name` | S3 bucket domain name |
| `bucket_id` | S3 bucket ID |
| `bucket_arn` | S3 bucket ARN |
| Name | Description |
|------|-------------|
| bucket_arn | S3 bucket ARN |
| bucket_domain_name | S3 bucket domain name |
| bucket_id | S3 bucket ID |
| bucket_name | S3 bucket name |
| bucket_region | S3 bucket region |
| parent_zone_id | Parent zone ID |
| parent_zone_name | Parent zone name |
| zone_id | `kops` cluster zone ID |
| zone_name | `kops` cluster zone name |
## Related Projects
Check out these related projects.
- [terraform-aws-kops-metadata](https://github.com/cloudposse/terraform-aws-kops-metadata) - Terraform module to lookup resources within a Kops cluster for easier integration with Terraform
- [terraform-aws-kops-ecr](https://github.com/cloudposse/terraform-aws-kops-ecr) - Terraform module to provision an ECR repository and grant users and kubernetes nodes access to it.
- [terraform-aws-kops-external-dns](https://github.com/cloudposse/terraform-aws-kops-external-dns) - Terraform module to provision an IAM role for external-dns running in a Kops cluster, and attach an IAM policy to the role with permissions to modify Route53 record sets
- [terraform-aws-kops-vpc-peering](https://github.com/cloudposse/terraform-aws-kops-vpc-peering) - Terraform module to create a peering connection between a backing services VPC and a VPC created by Kops
- [terraform-aws-kops-route53](https://github.com/cloudposse/terraform-aws-kops-route53) - Terraform module to lookup the IAM role associated with `kops` masters, and attach an IAM policy to the role with permissions to modify Route53 record sets
- [terraform-aws-kops-vault-backend](https://github.com/cloudposse/terraform-aws-kops-vault-backend) - Terraform module to provision an S3 bucket for HashiCorp Vault secrets storage, and an IAM role and policy with permissions for Kops nodes to access the bucket
- [terraform-aws-kops-chart-repo](https://github.com/cloudposse/terraform-aws-kops-chart-repo) - Terraform module to provision an S3 bucket for Helm chart repository, and an IAM role and policy with permissions for Kops nodes to access the bucket
## Help
**Got a question?**
File a GitHub [issue](https://github.com/cloudposse/terraform-aws-kops-state-backend/issues), send us an [email](mailto:[email protected]) or reach out to us on [Gitter](https://gitter.im/cloudposse/).
File a GitHub [issue](https://github.com/cloudposse/terraform-aws-kops-state-backend/issues), send us an [email][email] or join our [Slack Community][slack].
## Commercial Support
Work directly with our team of DevOps experts via email, slack, and video conferencing.
We provide [*commercial support*][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 full-time engineer.
[![E-Mail](https://img.shields.io/badge/[email protected])](mailto:[email protected])
- **Questions.** We'll use a Shared Slack channel between your team and ours.
- **Troubleshooting.** We'll help you triage why things aren't working.
- **Code Reviews.** We'll review your Pull Requests and provide constructive feedback.
- **Bug Fixes.** We'll rapidly work to fix any bugs in our projects.
- **Build New Terraform Modules.** We'll develop original modules to provision infrastructure.
- **Cloud Architecture.** We'll assist with your cloud strategy and design.
- **Implementation.** We'll provide hands-on support to implement our reference architectures.
## Community Forum
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.
## Contributing
Expand All @@ -124,22 +192,28 @@ Please use the [issue tracker](https://github.com/cloudposse/terraform-aws-kops-
### Developing
If you are interested in being a contributor and want to get involved in developing `terraform-aws-kops-state-backend`, we would love to hear from you! Shoot us an [email](mailto:[email protected]).
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:[email protected]).
In general, PRs are welcome. We follow the typical "fork-and-pull" Git workflow.
1. **Fork** the repo on GitHub
2. **Clone** the project to your own machine
3. **Commit** changes to your own branch
4. **Push** your work back up to your fork
5. Submit a **Pull request** so that we can review your changes
5. Submit a **Pull Request** so that we can review your changes
**NOTE:** Be sure to merge the latest changes from "upstream" before making a pull request!
**NOTE:** Be sure to merge the latest from "upstream" before making a pull request!
## Copyright
Copyright © 2017-2018 [Cloud Posse, LLC](https://cloudposse.com)
## License
[APACHE 2.0](LICENSE) © 2017-2018 [Cloud Posse, LLC](https://cloudposse.com)
## License
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
See [LICENSE](LICENSE) for full details.
Expand All @@ -151,7 +225,7 @@ See [LICENSE](LICENSE) for full details.
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
Expand All @@ -161,31 +235,49 @@ See [LICENSE](LICENSE) for full details.
under the License.
## About
`terraform-aws-kops-state-backend` is maintained and funded by [Cloud Posse, LLC][website].
![Cloud Posse](https://cloudposse.com/logo-300x69.png)
Like it? Please let us know at <[email protected]>
We love [Open Source Software](https://github.com/cloudposse/)!
See [our other projects][community]
or [hire us][hire] to help build your next cloud platform.
## Trademarks
All other trademarks referenced herein are the property of their respective owners.
## About
This project is maintained and funded by [Cloud Posse, LLC][website]. Like it? Please let us know at <[email protected]>
[![Cloud Posse](https://cloudposse.com/logo-300x69.svg)](https://cloudposse.com)
We're a [DevOps Professional Services][hire] company based in Los Angeles, CA. We love [Open Source Software](https://github.com/cloudposse/)!
We offer paid support on all of our projects.
Check out [our other projects][github], [apply for a job][jobs], or [hire us][hire] to help with your cloud strategy and implementation.
[docs]: https://docs.cloudposse.com/
[website]: https://cloudposse.com/
[community]: https://github.com/cloudposse/
[github]: https://github.com/cloudposse/
[commercial_support]: https://github.com/orgs/cloudposse/projects
[jobs]: https://cloudposse.com/jobs/
[hire]: https://cloudposse.com/contact/
[slack]: https://slack.cloudposse.com/
[linkedin]: https://www.linkedin.com/company/cloudposse
[twitter]: https://twitter.com/cloudposse/
[email]: mailto:[email protected]
### Contributors
| [![Erik Osterman][erik_img]][erik_web]<br/>[Erik Osterman][erik_web] | [![Andriy Knysh][andriy_img]][andriy_web]<br/>[Andriy Knysh][andriy_web] |
|-------------------------------------------------------|------------------------------------------------------------------|
| [![Erik Osterman][osterman_avatar]][osterman_homepage]<br/>[Erik Osterman][osterman_homepage] | [![Andriy Knysh][aknysh_avatar]][aknysh_homepage]<br/>[Andriy Knysh][aknysh_homepage] |
|---|---|
[osterman_homepage]: https://github.com/osterman
[osterman_avatar]: https://github.com/osterman.png?size=150
[aknysh_homepage]: https://github.com/aknysh
[aknysh_avatar]: https://github.com/aknysh.png?size=150
[erik_img]: http://s.gravatar.com/avatar/88c480d4f73b813904e00a5695a454cb?s=144
[erik_web]: https://github.com/osterman/
[andriy_img]: https://avatars0.githubusercontent.com/u/7356997?v=4&u=ed9ce1c9151d552d985bdf5546772e14ef7ab617&s=144
[andriy_web]: https://github.com/aknysh/
Loading

0 comments on commit 0ab96cf

Please sign in to comment.