diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..643bf37dd --- /dev/null +++ b/.travis.yml @@ -0,0 +1,15 @@ +addons: + apt: + packages: + - git + - make + - curl + +install: + - make init + +script: + - make terraform/install + - make terraform/get-plugins + - make terraform/get-modules + - make terraform/lint diff --git a/Makefile b/Makefile index 59e50ce1d..7bacba61b 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ export DOCKER_IMAGE ?= $(DOCKER_ORG)/terraform-root-modules export DOCKER_TAG ?= latest export DOCKER_IMAGE_NAME ?= $(DOCKER_IMAGE):$(DOCKER_TAG) export DOCKER_BUILD_FLAGS = - +export README_DEPS ?= docs/targets.md docs/terraform.md -include $(shell curl -sSL -o .build-harness "https://git.io/build-harness"; echo .build-harness) all: init deps build install run diff --git a/README.md b/README.md index 9a7a2f799..ce9d0b9f9 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,23 @@ -![Cloud Posse](https://cloudposse.com/logo-300x69.png) + -# terraform-root-modules ![Build Status](https://g.codefresh.io/api/badges/build?repoOwner=cloudposse&repoName=terraform-root-modules&branch=master&pipelineName=terraform-root-modules&accountName=cloudposse) +[![Cloud Posse](https://cloudposse.com/logo-300x69.png)](https://cloudposse.com) + +# terraform-root-modules [![Build Status](https://travis-ci.org/cloudposse/terraform-root-modules.svg?branch=master)](https://travis-ci.org/cloudposse/terraform-root-modules) [![Latest Release](https://img.shields.io/github/release/cloudposse/terraform-root-modules.svg)](https://travis-ci.org/cloudposse/terraform-root-modules/releases) [![Slack Community](https://slack.cloudposse.com/badge.svg)](https://slack.cloudposse.com) This is a collection of reusable root modules for CloudPosse AWS accounts. +--- + +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). + + + + ## Usage Use the `terraform-root-modules` Docker image as the base image in the application `Dockerfile`, and copy the modules from `/aws` folder into `/conf` folder @@ -22,13 +34,59 @@ WORKDIR /conf/ ``` + + + + +## Makefile Targets +``` +Available targets: + + help This help screen + help/all Display help for all targets + +``` + + + + +## Related Projects + +Check out these related projects. + +- [audit.cloudposse.co](https://github.com/cloudposse/audit.cloudposse.co) - Example Terraform Reference Architecture of a Geodesic Module for an Audit Logs Organization in AWS. +- [prod.cloudposse.co](https://github.com/cloudposse/prod.cloudposse.co) - Example Terraform Reference Architecture of a Geodesic Module for a Production Organization in AWS. +- [staging.cloudposse.co](https://github.com/cloudposse/staging.cloudposse.co) - Example Terraform Reference Architecture of a Geodesic Module for a Staging Organization in AWS. +- [dev.cloudposse.co](https://github.com/cloudposse/dev.cloudposse.co) - Example Terraform Reference Architecture of a Geodesic Module for a Development Sandbox Organization in AWS. + + ## Help **Got a question?** -File a GitHub [issue](https://github.com/cloudposse/terraform-root-modules/issues), send us an [email](mailto:hello@cloudposse.com) or reach out to us on [Gitter](https://gitter.im/cloudposse/). +File a GitHub [issue](https://github.com/cloudposse/terraform-root-modules/issues), send us an [email][email] or join our [Slack Community][slack]. + +## Commerical Support + +Work directly with our team of DevOps experts via email, slack, and video conferencing. + +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. + +[![E-Mail](https://img.shields.io/badge/email-hello@cloudposse.com-blue.svg)](mailto:hello@cloudposse.com) + +- **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 ### Bug Reports & Feature Requests @@ -37,7 +95,7 @@ Please use the [issue tracker](https://github.com/cloudposse/terraform-root-modu ### Developing -If you are interested in being a contributor and want to get involved in developing `terraform-root-modules`, we would love to hear from you! Shoot us an [email](mailto:hello@cloudposse.com). +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). In general, PRs are welcome. We follow the typical "fork-and-pull" Git workflow. @@ -45,14 +103,18 @@ In general, PRs are welcome. We follow the typical "fork-and-pull" Git workflow. 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) © 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. @@ -64,7 +126,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 @@ -74,35 +136,45 @@ See [LICENSE](LICENSE) for full details. under the License. -## About +## Trademarks -`terraform-root-modules` is maintained and funded by [Cloud Posse, LLC][website]. +All other trademarks referenced herein are the property of their respective owners. -![Cloud Posse](https://cloudposse.com/logo-300x69.png) +## About + +This project is maintained and funded by [Cloud Posse, LLC][website]. Like it? Please let us know at +[![Cloud Posse](https://cloudposse.com/logo-300x69.png)](https://cloudposse.com) -Like it? Please let us know at +We're a [DevOps Professional Services][hire] company based in Los Angeles, CA. We love [Open Source Software](https://github.com/cloudposse/)! -We love [Open Source Software](https://github.com/cloudposse/)! +We offer paid support on all of our projects. -See [our other projects][community] -or [hire us][hire] to help build your next cloud platform. +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/ + [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:hello@cloudposse.com + + +### Contributors +| [![Erik Osterman][osterman_avatar]](osterman_homepage)
[Erik Osterman][osterman_homepage] | [![Igor Rodionov][goruha_avatar]](goruha_homepage)
[Igor Rodionov][goruha_homepage] | [![Andriy Knysh][aknysh_avatar]](aknysh_homepage)
[Andriy Knysh][aknysh_homepage] | [![Marc Tamsky][tamsky_avatar]](tamsky_homepage)
[Marc Tamsky][tamsky_homepage] | +|---|---|---|---| -## Contributors + [osterman_homepage]: https://github.com/osterman + [osterman_avatar]: https://github.com/osterman.png?size=150 + [goruha_homepage]: https://github.com/goruha + [goruha_avatar]: https://github.com/goruha.png?size=150 + [aknysh_homepage]: https://github.com/aknysh + [aknysh_avatar]: https://github.com/aknysh.png?size=150 + [tamsky_homepage]: https://github.com/tamsky + [tamsky_avatar]: https://github.com/tamsky.png?size=150 -| [![Erik Osterman][erik_img]][erik_web]
[Erik Osterman][erik_web] | [![Andriy Knysh][andriy_img]][andriy_web]
[Andriy Knysh][andriy_web] |[![Igor Rodionov][igor_img]][igor_web]
[Igor Rodionov][igor_img]|[![Sarkis Varozian][sarkis_img]][sarkis_web]
[Sarkis Varozian][sarkis_web] | -|-------------------------------------------------------|------------------------------------------------------------------|------------------------------------------------------------------|------------------------------------------------------------------| -[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/ -[igor_img]: http://s.gravatar.com/avatar/bc70834d32ed4517568a1feb0b9be7e2?s=144 -[igor_web]: https://github.com/goruha/ -[sarkis_img]: https://avatars3.githubusercontent.com/u/42673?s=144&v=4 -[sarkis_web]: https://github.com/sarkis/ diff --git a/README.yaml b/README.yaml new file mode 100644 index 000000000..58d34011d --- /dev/null +++ b/README.yaml @@ -0,0 +1,77 @@ +--- +# +# This is the canonical configuration for the `README.md` +# Run `make readme` to rebuild the `README.md` +# + +# Name of this project +name: terraform-root-modules + +# Logo for this project +#logo: docs/logo.png + +# License of this project +license: "APACHE2" + +# Canonical GitHub repo +github_repo: cloudposse/terraform-root-modules + +# Badges to display +badges: + - name: "Build Status" + image: "https://travis-ci.org/cloudposse/terraform-root-modules.svg?branch=master" + url: "https://travis-ci.org/cloudposse/terraform-root-modules" + - name: "Latest Release" + image: "https://img.shields.io/github/release/cloudposse/terraform-root-modules.svg" + url: "https://travis-ci.org/cloudposse/terraform-root-modules/releases" + - name: "Slack Community" + image: "https://slack.cloudposse.com/badge.svg" + url: "https://slack.cloudposse.com" + +related: + - name: "audit.cloudposse.co" + description: "Example Terraform Reference Architecture of a Geodesic Module for an Audit Logs Organization in AWS." + url: "https://github.com/cloudposse/audit.cloudposse.co" + - name: "prod.cloudposse.co" + description: "Example Terraform Reference Architecture of a Geodesic Module for a Production Organization in AWS." + url: "https://github.com/cloudposse/prod.cloudposse.co" + - name: "staging.cloudposse.co" + description: "Example Terraform Reference Architecture of a Geodesic Module for a Staging Organization in AWS." + url: "https://github.com/cloudposse/staging.cloudposse.co" + - name: "dev.cloudposse.co" + description: "Example Terraform Reference Architecture of a Geodesic Module for a Development Sandbox Organization in AWS." + url: "https://github.com/cloudposse/dev.cloudposse.co" + +# Short description of this project +description: |- + This is a collection of reusable root modules for CloudPosse AWS accounts. + +# How to use this project +usage: |- + Use the `terraform-root-modules` Docker image as the base image in the application `Dockerfile`, and copy the modules from `/aws` folder into `/conf` folder + + ```dockerfile + FROM cloudposse/terraform-root-modules:0.3.2 as terraform-root-modules + + FROM cloudposse/geodesic:0.9.18 + + # Copy root modules into /conf folder + COPY --from=terraform-root-modules /aws/ /conf/ + + WORKDIR /conf/ + ``` + +include: + - "docs/targets.md" + - "docs/terraform.md" + +# Contributors to this project +contributors: + - name: "Erik Osterman" + github: "osterman" + - name: "Igor Rodionov" + github: "goruha" + - name: "Andriy Knysh" + github: "aknysh" + - name: "Marc Tamsky" + github: "tamsky" diff --git a/docs/targets.md b/docs/targets.md new file mode 100644 index 000000000..2f9b1c6ef --- /dev/null +++ b/docs/targets.md @@ -0,0 +1,8 @@ +## Makefile Targets +``` +Available targets: + + help This help screen + help/all Display help for all targets + +``` diff --git a/docs/terraform.md b/docs/terraform.md new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/docs/terraform.md @@ -0,0 +1 @@ +