Skip to content

Commit 17523e7

Browse files
authored
Document how to get started (#108)
1 parent ba0c46c commit 17523e7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+748
-70
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
deploy.toml
33
test
44
test.toml
5+
.htmltest.*.yaml
56
node_modules
67
.build-harness
78
build-harness/

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ lint/formatting:
9292
@! grep -Eo 'CloudPosse' -R content/ # Should be Cloud Posse
9393
@! grep -Eo 'Cloudposse' -R content/ # Should be Cloud Posse
9494
@! grep -Eo 'Github' -R content/ # Should be GitHub
95+
@! grep -Eo 'go template' -R content/ # Should be Go template
9596
@! grep -Eo 'CI\\+CD' -R content/ # Should be CI/CD
9697
@! grep -Eo 'ci/cd' -R content/ # Should be CI/CD
9798

content/documentation/_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
title: "Documentation"
33
description: ""
44
icon: "far fa-compass"
5+
redirect: "/documentation/getting-started/"
56
---
67
{{% dialog type="info" icon="fa fa-book" title="Read More" %}}
78
⇠ Select one of these pages to learn more about the topic.

content/documentation/contact-us.md

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,29 @@
11
---
22
title: Contact Us
3-
description: ''
3+
description: 'Cloud Posse is a **DevOps Professional Services** company.'
44
parent: home
55
---
6-
| | |
7-
| ------------- | ---------------------------------------------------------- |
8-
| Inquiries | [hello@cloudposse.com](mailto:hello@cloudposse.com) |
9-
| Schedule Time | [calendly.com/cloudposse](https://calendly.com/cloudposse) |
10-
| Call | +1 (310) 496-6556 |
6+
7+
We're developers and ops practitioners who are gungho about doing things the "right way" (tm).
8+
9+
We help companies achieve success in the cloud by automating systems for maximum efficiency and 24x7 uptime. Our solutions deliver world-class infrastructure by leveraging [Open Source technologies](/tools/) coupled with proprietary integrations to reduce total cost of ownership. Following our [proven methodology]({{< relref "documentation/getting-started.md" >}}) empowers companies to adopt the most current "best practices" including end-to-end CI/CD Pipelines, GitOps and Automated Deployments. The results are human-centric systems that are easier to maintain and thus reduce technical debt. By prioritization of automation, the Cloud Posse approach improves developer productivity and increases overall platform stability.
10+
11+
# Hire us!
12+
13+
| | |
14+
|:-------------- |:------------------------------------------------------------------------------- |
15+
| Email | [hello@cloudposse.com](mailto:hello@cloudposse.com) |
16+
| Website | <https://cloudposse.com> |
17+
| GitHub | <https://github.com/cloudposse> |
18+
| Office Address | 45 S. Arroyo Parkway, Pasadena, CA 91105 |
19+
| Schedule Time | [calendly.com/cloudposse](https://calendly.com/cloudposse) |
20+
| Call Us | [+1 (310) 496-6556](tel:+13104966556) |
21+
| Slack | [`#community`](https://cloudposse.com/slack/) |
22+
| Twitter | [twitter.com/cloudposse](https://twitter.com/cloudposse) |
23+
| LinkedIn | [linkedin.com/company/cloudposse](https://www.linkedin.com/company/cloudposse/) |
24+
25+
# Partnership Opportunities
26+
27+
Cloud Posse welcomes all partnership inquiries, including partnerships with other DevOps practicioners, freelancers and consultancies who want to leverage our methodologies with their customers.
28+
29+
Please drop us a line at <[hello@cloudposse.com](mailto:hello@cloudposse.com)>.

content/documentation/documentation-template.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: Documentation Template
33
description: Example of how to structure a document
4+
draft: true
45
---
56

67
# Synopsis

content/documentation/getting-started-with-cloud-posse.md

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
---
2+
title: Getting Started with Cloud Posse
3+
description: >-
4+
This page will help you get started with Cloud Posse. You'll be up and running
5+
in a jiffy!
6+
---
7+
8+
# Geodesic
9+
10+
Start with getting familiar with the [geodesic design]({{< relref "geodesic/design.md" >}}).
11+
12+
Create [geodesic modules](/geodesic/module/) anywhere you want to logically organize infrastructure as code.
13+
14+
Get intimately familiar with docker inheritance and [multi-stage docker builds]({{< relref "tools/docker/best-practices.md#multi-stage-builds" >}}). We use this pattern extensively.
15+
16+
Check out our [terraform-root-modules](https://github.com/cloudposse/terraform-root-modules) for reference architectures to easily provision infrastructure
17+
18+
# Local Development
19+
20+
1. Get your [local environment](/local-dev-environments/) setup
21+
2. Make sure you're familiar with [`make`](/tools/make/) and [`Makefiles`]({{< relref "tools/make/makefile-examples.md" >}}) because we use them extensively for "executable documentation".
22+
3. Review Docker compose
23+
4. Docker composition monorepo strategy
24+
25+
# Tools
26+
27+
Tons of tools/clis are used as part of our solution. We distribute these tools in a couple of different ways.
28+
29+
* Geodesic bundles most of these tools as part of the geodesic base image
30+
* Our [packages repo]({{< relref "tools/packages.md" >}}) provides an embeddable `Makefile` system for installing packages in other contexts (e.g. [`build-harness`]({{< relref "release-engineering/build-harness.md" >}})). This can also be used for local ("native") development contexts.
31+
32+
Here are some of the most important tools to be aware of:
33+
34+
- [`make`](/tools/make/)
35+
- [`chamber`]({{< relref "tools/chamber.md" >}})
36+
- [`terraform`]({{< relref "terraform/_index.md" >}})
37+
- [`gomplate`]({{< relref "tools/gomplate.md" >}})
38+
- [`aws-vault`]({{< relref "tools/aws-vault.md" >}})
39+
40+
If using kubernetes, then also review these tools:
41+
42+
- [`kops`]({{< relref "tools/kops.md" >}})
43+
- [`helm`]({{< relref "tools/helm.md" >}})
44+
- [`helmfile`]({{< relref "tools/helmfile.md" >}})
45+
46+
# Kubernetes
47+
48+
Kubernetes is a massive part of our solutions. Our Kubernetes documentation is geared towards leveraging [`kops`]({{< relref "tools/kops.md" >}}) by way of our `geodesic` strategy.
49+
50+
## Helm
51+
52+
Helm is central to how we deploy all services on kubernetes.
53+
54+
* [helm]({{< relref "tools/helm.md" >}}) is essentially the package manager for Kubernetes (like `npm` for Node, `gem` for Ruby, and `rpm` for RHEL)
55+
* [helm charts](/helm-charts/) are how kubernetes resources are templatized using Go templates
56+
* [helm charts quickstart]({{< relref "helm-charts/quickstart.md" >}}) is our "cheatsheet" for getting started with Helm Charts.
57+
* [helm registries](/kubernetes-platform-services/chart-registry/) are used to store helm charts, which are essentially tarball artifacts.
58+
* [chartmuseum]({{< relref "kubernetes-platform-services/chart-registry/chartmuseum.md">}}) is deployed as the chart repository
59+
* [helmfiles]({{< relref "tools/helmfile.md">}}) are used to define a distribution of helm charts. So if you want to install prometheus, grafana, nginx-ingress, kube-lego, etc, we use a `helmfile.yaml` to define how that's done.
60+
* [chamber]({{< relref "tools/chamber.md">}}) is used to manage secrets and provide them when provisioning with `helmfile`. It's also a big part of our overall story on [secrets management](/secrets-management/)
61+
* [rollbacks]({{< relref "faq/how-to-perform-rollbacks.md" >}})
62+
63+
64+
## CI/CD with Codefresh
65+
66+
Learn how [codefresh]({{< relref "release-engineering/codefresh-kubernetes-integration.md" >}}) is integrated with kubernetes. Codefresh runs docker containers for each build step. We provide a dockerized [build-harness]({{< relref "release-engineering/build-harness.md">}}) to distribute common build tools that we use as part of the build steps in the `codefresh.yml`.
67+
68+
* We use some terraform modules to provision resources for codefresh like a chamber user
69+
* Deploy [apps with secrets]({{< relref "secrets-management/cicd.md" >}})
70+
71+
## Backing Services (*Coming Soon*)
72+
73+
Checkout our docs on [kubernetes backing services]({{< relref "kubernetes-backing-services/_index.md" >}}).
74+
75+
## Platform Services (*Coming Soon*)
76+
77+
Checkout our docs on [kubernetes platform services]({{< relref "kubernetes-platform-services/_index.md" >}}).
78+
79+
## Optimization
80+
81+
Inevitably, at some point comes the time when you will need to optimize for performance. We've documented some of the best ways to get started.
82+
83+
First, make sure you're familiar with kubernetes [resource management]({{< relref "kubernetes/resource-management.md" >}}).
84+
85+
* [Scale Cluster Horizontally]({{< relref "kubernetes-optimization/scale-cluster-horizontally.md" >}}) - Scale Kubernetes cluster horizontally by adding nodes
86+
* [Scale Cluster Vertically]({{< relref "kubernetes-optimization/scale-cluster-vertically.md" >}}) - Scale Kubernetes cluster vertically by using different types of EC2 instances
87+
* [Scale Pods Horizontally]({{< relref "kubernetes-optimization/scale-pods-horizontally.md" >}}) - Scale Kubernetes pods horizontally by increasing the replica count
88+
* [Scale Pods Vertically]({{< relref "kubernetes-optimization/scale-pods-vertically.md" >}}) - Scale Kubernetes pods vertically by increasing CPU and Memory limits
89+
* [Scale Nginx Ingress Horizontally]({{< relref "kubernetes-optimization/scale-nginx-ingress-horizontally.md" >}}) - Scale Nginx Ingress pods horizontally by increasing the replica count
90+
* [Scale Nginx Ingress Vertically]({{< relref "kubernetes-optimization/scale-nginx-ingress-vertically.md" >}}) - Scale Nginx Ingress vertically by increasing CPU and Memory limits
91+
* [Tune Nginx]({{< relref "kubernetes-optimization/tune-nginx.md" >}}) - Tune Nginx parameters (timeouts, worker processes, logs, http)
92+
* [Optimize databases]({{< relref "kubernetes-optimization/optimize-database-indexes.md" >}}) - Optimize database queries and indexes
93+
94+
# Terraform
95+
96+
Study up on our [Best Practices]({{< relref "terraform/best-practices.md" >}}) for working with terraform. Get started quickly provisioning infrastructure by referencing our [terraform-root-modules](/terraform-modules/root/).
97+
98+
## Terraform Modules
99+
100+
We provide a staggering number of Terraform modules in our GitHub. This number is growing every week and we're also [accepting module contributions]({{< relref "documentation/our-github.md#contributing" >}}).
101+
102+
Our modules are broken down in to specific areas of concern:
103+
104+
- [Backups](/terraform-modules/backups/)
105+
- [CI/CD](/terraform-modules/cicd/)
106+
- [CDN](/terraform-modules/cdn/)
107+
- [Kubernetes (kops)](/terraform-modules/kops-kubernetes/)
108+
- [Logging](/terraform-modules/logging/)
109+
- [Monitoring](/terraform-modules/monitoring/)
110+
- [Networking](/terraform-modules/networking/)
111+
- [Platform](/terraform-modules/platform/)
112+
- [Security](/terraform-modules/security/)
113+
114+
Before writing your own modules, review our [Best Practices]({{< relref "terraform-modules/best-practices.md" >}}) for working with Terraform modules.
115+
116+
# Monitoring (*Coming Soon*)
117+
118+
In the meantime, review some of our docs on [monitoring and alerting](/monitoring-and-alerting/).
119+
120+
If running on kubernetes, review our ["backing services" documentation for monitoring]({{< relref "kubernetes-backing-services/monitoring/_index.md" >}})
121+
122+
# Load Testing
123+
124+
After you've gotten familiar with how monitoring is working, you'll want to run some load tests to ensure everything meets expectations. We provide some of our "best practices", workflows, scripts and scenarios for load and performance testing of websites and applications
125+
(in particular those deployed on Kubernetes clusters).
126+
127+
Our strategy for load and performance testing breaks down like this:
128+
129+
1. [Review Load Testing Tools]({{< relref "load-testing/load-testing-tools.md" >}}) - how we select and setup our load testing tools
130+
2. [Example Testing Scenarios]({{< relref "load-testing/load-testing-scenarios.md" >}}) - how we implement load testing scenarios
131+
3. [Run Tests and Analyze Results]({{< relref "load-testing/perform-testing-and-analyze-results.md" >}}) - how we do load testing and analyze the results
132+
4. [Optimization and Tuning Procedures]({{< relref "load-testing/optimization-and-tuning-procedures.md" >}}) - optimization and tuning steps that we usually perform after running load tests
133+
134+
135+
# Secrets (*Coming Soon*)
136+
137+
Have a look at our docs on [secrets management](/secrets-management/).
138+
139+
140+
141+
# Contributing Back
142+
143+
Everything we provide on our [GitHub](https://github.com/cloudposse/) wouldn't have been possible if it weren't for our [phenomenal customers](https://cloudposse.com/) and the support of the [community](https://cloudposse.com/slack/) contributing bug-fixes, [filing issues](https://github.com/search?q=org%3Acloudposse+type%3Aissue) and submitting a steady stream of [Pull Requests](https://github.com/search?q=org%3Acloudposse+type%3Apr).
144+
145+
We welcome any Terraform module submissions, Helm charts, and generally any other useful tools that others could benefit from. Our only requirement is that they be licensed under `APACHE2`.
146+
147+
Drop us a line at [hello@cloudposse.com](mailto:hello@cloudposse.com) to get in touch with us about contributing.
148+
149+
# Getting Help
150+
151+
Check out our [FAQ](/faq/) which is also fully indexed by our Algolia search available on the [homepage](/).
152+
153+
Review our [glossary](/glossary/) if there are any terms that are confusing.
154+
155+
File issues anywhere you find the documentation lacking by going to our [docs repo](https://github.com/cloudposse/docs).
156+
157+
Join our [Slack Community](https://cloudposse.com/slack/) and speak directly with the maintainers
158+
159+
We provide "white glove" DevOps support. [Get in touch]({{< relref "documentation/contact-us.md" >}}) with us today!
160+
161+
[Schedule Time](https://calendly.com/cloudposse/) with us.

content/documentation/our-github.md

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,48 @@
11
---
22
title: "Our GitHub"
3-
description: ""
3+
description: "Information on how to collaborate with Cloud Posse"
44
---
5+
6+
# Our Commitment
7+
8+
We commit to always provide free and public access to our Open Source repositories. If you see repository on our GitHub today, then it will be here tomorrow and thereafter in perpetuity.
9+
10+
From time to time, we might decide we can no longer maintain a repository. If that happens, we will mark it as "archived" on GitHub. This will ensure you will continue to have access to the code.
11+
12+
# Getting Involved
13+
14+
The best way to get involved is to checkout our "[getting started]({{< relref "documentation/getting-started.md" >}})" guide.
15+
16+
Then join us in our [`#community`](https://cloudposse.com/slack/) channel to get support or talk with others in the community.
17+
18+
# Contributing
19+
20+
Cloud Posse accepts contributions from the community. In the interest of fostering an open and welcoming environment, we have a strict [code of conduct]({{< relref "development/code-of-conduct.md">}}) to ensure participation in our projects and our community is a harassment-free experience for everyone.
21+
22+
If you want to make some big changes or don't know where to begin, it's best to first get in touch. You can discuss the change you wish to make via GitHub issues, [email](mailto:hello@cloudposse.com), or join our [`#community`](https://cloudposse.com/slack/) channel.
23+
24+
In general, PRs are welcome. We follow the typical "fork-and-pull" Git workflow.
25+
26+
1. Fork the repo on GitHub
27+
2. Clone the project to your own machine
28+
3. Commit changes to your own branch
29+
4. Push your work back up to your fork
30+
5. Submit a Pull request so that we can review your changes
31+
32+
**NOTE:** Be sure to merge the latest from "upstream" before making a pull request!
33+
34+
# Maintenance
35+
36+
Cloud Posse actively maintains all projects on [our GitHub](https://github.com/cloudposse/).
37+
38+
# GitHub Projects
39+
40+
There's a lot going on in our GitHub. With over [200+ Open Source repositories](https://github.com/cloudposse/), keeping track of all the [Open Issues](https://github.com/search?q=org%3Acloudposse+type%3Aissues+is%3Aopen), Feature Requests, and Pull Requests is a fulltime job.
41+
42+
We use Kanban board to manage our [Open Source projects](https://github.com/orgs/cloudposse/projects/3).
43+
44+
(**Help wanted!**)
45+
46+
# Something Missing?
47+
48+
[Get in touch]({{< relref "documentation/contact-us.md" >}}) with us.

content/faq/init-terraform-fails.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ tags:
66
- ssh-agent
77
- terraform
88
- init-terraform
9+
- tfstate
10+
- terraform-aws-tfstate-backend
911
- ssh
1012
---
1113

@@ -39,5 +41,3 @@ This usually happens for one of two reasons:
3941
2) No SSH keys have been added to your `ssh-agent`
4042

4143
Run `ssh-add -l` to verify the keys are in your `ssh-agent`. Remember, that in geodesic `/localhost` is your `$HOME` directory.
42-
43-

0 commit comments

Comments
 (0)