Skip to content

Commit 7ac2609

Browse files
milldrBenbentwocloudpossebot
authored
Refactored with refarch-scaffold Updates (#805)
Co-authored-by: Benbentwo <14911525+Benbentwo@users.noreply.github.com> Co-authored-by: Cloud Posse Bot (CI/CD) <bot@cloudposse.com> Co-authored-by: milldr <14060048+milldr@users.noreply.github.com>
1 parent ab5d09a commit 7ac2609

File tree

102 files changed

+1432
-453
lines changed

Some content is hidden

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

102 files changed

+1432
-453
lines changed

docs/jumpstart/action-items.mdx

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -169,14 +169,6 @@ Confirm if you plan to deploy any of the following integrations. If so, we will
169169

170170
<Steps>
171171

172-
<Step>
173-
### <StepNumber/> Spacelift Access
174-
175-
If deploying Spacelift, we will need a Spacelift subscription. Please see [How to Sign Up for Spacelift](/layers/spacelift). This document answers many common questions and describes the signup process step-by-step.
176-
177-
Cloud Posse will need "admin" access for Spacelift to deploy all resources.
178-
</Step>
179-
180172
<Step>
181173
### <StepNumber/> Datadog Access
182174

@@ -185,11 +177,6 @@ Confirm if you plan to deploy any of the following integrations. If so, we will
185177
Cloud Posse will need "admin" access for Datadog as well to complete the Datadog setup.
186178
</Step>
187179

188-
<Step>
189-
### <StepNumber/> OpsGenie Access
190-
191-
Sign up for OpsGenie following the [How to Sign Up for OpsGenie?](/layers/alerting/opsgenie/how-to-sign-up-for-opsgenie) documentation.
192-
</Step>
193180
</Steps>
194181

195182

docs/jumpstart/handoffs.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,13 @@ https://github.com/facebook/docusaurus/issues/6201
7777
<PrimaryCTA to="/layers/software-delivery">Get Started</PrimaryCTA>
7878
</Slide>
7979

80-
<Slide title="GitOps with GitHub Actions">
80+
<Slide title="Terraform Automation with GitHub Actions">
8181
<figure>
8282
<ReactPlayer controls url='https://docs.cloudposse.com/assets/refarch/handoffs/gitops.mp4' />
8383
<figcaption>AI generated voice</figcaption>
8484
</figure>
8585

86-
<PrimaryCTA to="/layers/gitops">Get Started</PrimaryCTA>
86+
<PrimaryCTA to="/layers/atmos-pro">Get Started</PrimaryCTA>
8787
</Slide>
8888

8989
<Slide title="ECS Platform">

docs/jumpstart/kickoff.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ This document outlines what to expect from your first call with Cloud Posse. In
131131
</TaskList>
132132

133133
<Admonition>
134-
These are the design decisions you can customize as part of the Jumpstart package. [All other decisions are pre-made](/tags/design-decision/) for you, but youre welcome to review them. If youd like to make additional changes, [let us know—were happy to provide a quote](https://cloudposse.com/meet).
134+
These are the design decisions you can customize as part of the Jumpstart package. [All other decisions are pre-made](/tags/design-decision/) for you, but you're welcome to review them. If you'd like to make additional changes, [let us know—we're happy to provide a quote](https://cloudposse.com/meet).
135135
</Admonition>
136136

137137
</Step>
@@ -147,9 +147,9 @@ This document outlines what to expect from your first call with Cloud Posse. In
147147
- [Component Development](/learn/component-development)
148148
- [Account Management](/layers/accounts/)
149149
- [Network and DNS](/layers/network/)
150-
- [Spacelift](/layers/spacelift) or [GitOps](/layers/gitops)
150+
- [Automate Terraform](/layers/atmos-pro)
151151
- [ECS](/layers/ecs) or [EKS](/layers/eks)
152-
- [Monitoring](/layers/monitoring) and [Alerting](/layers/alerting)
152+
- [Monitoring](/layers/monitoring)
153153
- [Release Engineering](/layers/software-delivery)
154154
- Final Call (Sign-off)
155155
</TaskList>
@@ -197,7 +197,7 @@ The Jumpstart accelerator does not include support. To get help, we offer multip
197197

198198
### Slack
199199

200-
If you need help scheduling meetings, please post in your teams Cloud Posse channel (e.g., `#acme-general`). This keeps discussions open and prevents duplicated or siloed information in direct messages (DMs). In general, please avoid DMs, as they make it harder to escalate requests or follow up. Feel free to @ a team member if you need assistance—were here to help!
200+
If you need help scheduling meetings, please post in your team's Cloud Posse channel (e.g., `#acme-general`). This keeps discussions open and prevents duplicated or siloed information in direct messages (DMs). In general, please avoid DMs, as they make it harder to escalate requests or follow up. Feel free to @ a team member if you need assistance—we're here to help!
201201

202202
You can also reach out to our community with our [SweetOps Slack community](#sweetops-slack).
203203

docs/jumpstart/tutorials/offboarding-cloudposse.mdx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,6 @@ See:
8787

8888
Offboard any `@cloudposse.com` email addresses.
8989

90-
### OpsGenie
91-
92-
Offboard any `@cloudposse.com` email addresses.
93-
9490
### Customer Jira & Confluence
9591

9692
Some customers have added our team directly to their Atlassian products. Make sure to offboard any `@cloudposse.com` email addresses.

docs/layers/accounts/account-baseline.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@ Now that all the accounts have been deployed, we need to finalize the setup of t
1616

1717
| Steps | Actions |
1818
| -------------------------- | ----------------------------------- |
19-
| Deploy baseline components | `atmos workflow deploy -f baseline` |
20-
| Deploy account budgets | Create Slack Webhook and `atmos workflow deploy -f accounts` |
19+
| Deploy baseline components | `atmos workflow deploy -f quickstart/foundation/baseline` |
20+
| Deploy account budgets | Create Slack Webhook and `atmos workflow deploy -f quickstart/foundation/accounts` |
2121

2222
<Steps>
2323
<Step>
2424
## <StepNumber/> Deploy CloudTrail
2525

2626
Deploy CloudTrail and the the CloudTrail bucket:
2727

28-
<AtmosWorkflow workflow="deploy/cloudtrail" fileName="baseline" />
28+
<AtmosWorkflow workflow="deploy/cloudtrail" fileName="quickstart/foundation/baseline" />
2929
</Step>
3030

3131
<Step>
@@ -106,7 +106,7 @@ Now that all the accounts have been deployed, we need to finalize the setup of t
106106
time_unit: MONTHLY
107107
```
108108
5. Finally, reapply `account-settings` in any changed account to apply the new settings
109-
<AtmosWorkflow workflow="deploy/account-settings" fileName="accounts" />
109+
<AtmosWorkflow workflow="deploy/account-settings" fileName="quickstart/foundation/accounts" />
110110
</Steps>
111111
</Step>
112112
</Steps>

docs/layers/accounts/accounts.mdx

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -304,29 +304,4 @@ Cloud Posse manages this process with the following components.
304304
- [Decide on AWS Account Flavors and Organizational Units](/layers/accounts/design-decisions/decide-on-aws-account-flavors-and-organizational-units/)
305305
- [Decide on AWS Support](/layers/accounts/design-decisions/decide-on-aws-support/)
306306
- [Decide on Email Address Format for AWS Accounts](/layers/accounts/design-decisions/decide-on-email-address-format-for-aws-accounts/)
307-
- [Structure of Terraform S3 State Backend Bucket](/layers/accounts/tutorials/terraform-s3-state/)
308-
309-
310-
### Mixins and Imports with Atmos
311-
312-
As infrastructure grows, we end up with hundreds or thousands of settings for components and stack configurations. If we
313-
copy and paste these settings everywhere, it’s error-prone and not DRY. What we really want to do is to define a sane
314-
set of defaults and override those defaults when we need them to change.
315-
316-
We accomplish this with Mixins. Mixins are imported into all stacks and each follow a set of rules. We use the
317-
`mixins/region` and `mixins/account` configurations to define common **variables** for all stacks. For example,
318-
`mixins/region/us-east-1.yaml` will define the variable `region: us-east-1`.
319-
320-
**Note.** Do not import components into the account or region mixins. These are imported multiple times to define common
321-
variables, so any component imports would be duplicated and cause an Atmos error such as this:
322-
323-
```
324-
Executing command:
325-
/usr/bin/atmos terraform deploy account-settings -s core-gbl-artifacts
326-
327-
Found duplicate config for the component 'account-settings' for the stack 'core-gbl-artifacts' in the files: orgs/cch/core/artifacts/global-region/baseline, orgs/cch/core/artifacts/global-region/monitoring, orgs/cch/core/artifacts/global-region/identity.
328-
Check that all context variables in the stack name pattern '{tenant}-{environment}-{stage}' are correctly defined in the files and not duplicated.
329-
Check that all imports are valid.
330-
331-
exit status 1
332-
```
307+
- [Structure of Terraform S3 State Backend Bucket](/layers/accounts/tutorials/terraform-s3-state/)

docs/layers/accounts/deploy-accounts.mdx

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,18 @@ import Step from '@site/src/components/Step';
1111
import StepNumber from '@site/src/components/StepNumber';
1212
import Note from '@site/src/components/Note';
1313
import AtmosWorkflow from '@site/src/components/AtmosWorkflow';
14+
import TaskList from '@site/src/components/TaskList';
1415

1516
<Intro>
1617
This step-by-step process outlines how to deploy AWS accounts using `atmos` workflows and ClickOps steps. It covers necessary preparations, such as configuring the AWS Organization, increasing account quotas, and verifying account configurations. The guide details the deployment processes and post-deployment configurations, including setting up account settings, enabling AWS RAM for Organizations, and performing certain manual configurations via ClickOps.
1718
</Intro>
1819

1920
| Steps | Actions |
2021
| ------------------------- | ---------------------------------------------------- |
21-
| Deploy AWS Organization | `atmos workflow deploy/organization -f accounts` |
22+
| Deploy AWS Organization | `atmos workflow deploy/organization -f quickstart/foundation/accounts` |
2223
| Prepare accounts creation | Click Ops |
23-
| Deploy accounts | `atmos workflow deploy/accounts -f accounts` |
24-
| Deploy accounts settings | `atmos workflow deploy/account-settings -f accounts` |
24+
| Deploy accounts | `atmos workflow deploy/accounts -f quickstart/foundation/accounts` |
25+
| Deploy accounts settings | `atmos workflow deploy/account-settings -f quickstart/foundation/accounts` |
2526
| Finalize account setup | Click Ops |
2627

2728
<Steps>
@@ -34,16 +35,18 @@ This step-by-step process outlines how to deploy AWS accounts using `atmos` work
3435

3536
You should double-check the following:
3637

37-
1. Check that `stacks/catalog/account.yaml` has the values you expect, especially account email format
38-
2. Run `atmos describe component account -s core-gbl-root` to inspect the final component configuration (e.g. _after_
38+
<TaskList>
39+
- Check that `stacks/catalog/account.yaml` has the values you expect, especially account email format
40+
- Run `atmos describe component account -s core-gbl-root` to inspect the final component configuration (e.g. _after_
3941
all the mixins have been imported)
40-
3. Plan the run with `atmos terraform plan account -s core-gbl-root`
42+
- Plan the run with `atmos terraform plan account -s core-gbl-root`
43+
</TaskList>
4144
</Step>
4245

4346
<Step>
4447
## <StepNumber/> Deploy the AWS Organization
4548

46-
<AtmosWorkflow workflow="deploy/organization" fileName="accounts" />
49+
<AtmosWorkflow workflow="deploy/organization" fileName="quickstart/foundation/accounts" />
4750

4851
</Step>
4952

@@ -144,7 +147,7 @@ This step-by-step process outlines how to deploy AWS accounts using `atmos` work
144147

145148
Once confident, begin the accounts deployment:
146149

147-
<AtmosWorkflow workflow="deploy/accounts" fileName="accounts" />
150+
<AtmosWorkflow workflow="deploy/accounts" fileName="quickstart/foundation/accounts" />
148151

149152
<Note title="Info">
150153
With the addition of support for dynamic Terraform roles, our `baseline` cold start refarch layer now depends
@@ -168,7 +171,7 @@ This step-by-step process outlines how to deploy AWS accounts using `atmos` work
168171

169172
Once you've created the accounts, you'll need to provision the baseline configuration within the accounts themselves. Run the following:
170173

171-
<AtmosWorkflow workflow="deploy/account-settings" fileName="accounts" />
174+
<AtmosWorkflow workflow="deploy/account-settings" fileName="quickstart/foundation/accounts" />
172175

173176
The workflows will kick off several sequential Terraform runs to provision all the AWS member account settings for
174177
member accounts in the Organization.

docs/layers/accounts/design-decisions/decide-on-email-address-format-for-aws-accounts.mdx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,6 @@ Mailgun supports plus addressing and complex forwarding rules. It’s free for 5
5555
Google Groups are probably the most common solution we see. It
5656
[works very well with plus addressing](https://support.google.com/a/users/answer/9308648?hl=en).
5757

58-
### Use OpsGenie Email Integration
59-
60-
OpsGenie is nice, but it does not support plus addressing. That means we’ll need to provision one integration for each
61-
account.
62-
6358
### Use AWS SES with Lambda Forwarder (catch-22)
6459

6560
Provisioning AWS SES is nice, but we need an email address even for the root account, so it doesn’t solve the cold-start

docs/layers/accounts/faq.mdx

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,30 @@ This component manages the state of all AWS accounts, so apply with extreme caut
5454

5555
[Follow the documentation for creating a new Organizational Unit](/layers/accounts/tutorials/how-to-add-a-new-organizational-unit/)
5656

57+
### How do I use mixins and imports with Atmos
58+
59+
As infrastructure grows, we end up with hundreds or thousands of settings for components and stack configurations. If we
60+
copy and paste these settings everywhere, it’s error-prone and not DRY. What we really want to do is to define a sane
61+
set of defaults and override those defaults when we need them to change.
62+
63+
We accomplish this with Mixins. Mixins are imported into all stacks and each follow a set of rules. We use the
64+
`mixins/region` and `mixins/account` configurations to define common **variables** for all stacks. For example,
65+
`mixins/region/us-east-1.yaml` will define the variable `region: us-east-1`.
66+
67+
**Note.** Do not import components into the account or region mixins. These are imported multiple times to define common
68+
variables, so any component imports would be duplicated and cause an Atmos error such as this:
69+
70+
```
71+
Executing command:
72+
/usr/bin/atmos terraform deploy account-settings -s core-gbl-artifacts
73+
74+
Found duplicate config for the component 'account-settings' for the stack 'core-gbl-artifacts' in the files: orgs/cch/core/artifacts/global-region/baseline, orgs/cch/core/artifacts/global-region/monitoring, orgs/cch/core/artifacts/global-region/identity.
75+
Check that all context variables in the stack name pattern '{tenant}-{environment}-{stage}' are correctly defined in the files and not duplicated.
76+
Check that all imports are valid.
77+
78+
exit status 1
79+
```
80+
5781
### Why does `account-map` fail with "The given key does not identify an element in this collection value"?
5882

5983
This is a common error you may encounter when reading from `account-map`:

docs/layers/accounts/initialize-tfstate.mdx

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Follow these steps to configure and initialize the Terraform state backend using
1717

1818
| Steps | Actions |
1919
| ------------------------- | ----------------------------------------- |
20-
| Configure Terraform state | `atmos workflow init/tfstate -f baseline` |
20+
| Configure Terraform state | `atmos workflow init/tfstate -f quickstart/foundation/baseline` |
2121

2222
## Setting up the Terraform State Backend
2323

@@ -35,15 +35,27 @@ If you look at `components/terraform/`, you'll see a bunch of directories. These
3535

3636
Vendor the Terraform State Backend component by running the following command. The steps here require the `tfstate-backend` and `account-map` components.
3737

38-
<AtmosWorkflow workflow="vendor" fileName="baseline" />
38+
:::tip What is Vendoring?
39+
40+
Vendoring downloads the upstream component files from a central repository at a specified version. In this case, we are pulling the baseline components, which include all account components, the Terraform State component, and other necessary files for setting up the account foundation.
41+
42+
This step only downloads the files to your local project - it does not deploy or make any changes to your infrastructure.
43+
44+
[Read more about vendoring with Atmos](https://atmos.tools/core-concepts/vendor/)
45+
46+
:::
47+
48+
<AtmosWorkflow workflow="vendor" fileName="quickstart/foundation/baseline" />
3949

4050
</Step>
4151
<Step>
4252
## <StepNumber/> Initialize the Terraform State Backend
4353

44-
Initialize the Terraform State Backend by running the following command:
54+
Run the following command to initialize the Terraform State Backend. This workflow has two steps:
55+
- Create the backend using a local Terraform state
56+
- Once the backend bucket exists, migrate the state file into the newly created S3 bucket
4557

46-
<AtmosWorkflow workflow="init/tfstate" fileName="baseline" />
58+
<AtmosWorkflow workflow="init/tfstate" fileName="quickstart/foundation/baseline" />
4759
</Step>
4860

4961
<Step>

0 commit comments

Comments
 (0)