Skip to content

Commit 6b61f66

Browse files
authored
(docs)clarify cert FAQ and tweak multi-part config file docs (#617)
1 parent d9b768a commit 6b61f66

File tree

2 files changed

+35
-33
lines changed

2 files changed

+35
-33
lines changed

docs/faq/faq.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,7 @@ The Accelerator provides 3 mechanisms to enable utilizing certificates with ALB'
327327

328328
- this mechanism allows a customer to generate new public certificates directly in ACM
329329
- both `DNS` and `EMAIL` validation mechanisms are supported (DNS recommended)
330+
- this requires a **_Public_** DNS zone be properly configured to validate you are legally entitled to issue certificates for the domain
330331
- this will also create a certificate in ACM and a secret in secrets manager named `accelerator/certificates/My-Cert` in the specified AWS account(s), which points to the newly imported certificates ARN
331332
- this mechanism should NOT be used on new installs, skip certificate and ALB deployment during initial deployment (removing them from the config file) and simply add on a subsequent state machine execution
332333
- Process:
@@ -336,7 +337,7 @@ The Accelerator provides 3 mechanisms to enable utilizing certificates with ALB'
336337
- during deployment, go to the AWS account in question, open ACM and the newly requested certificate. Document the authorization CNAME record required to validate certificate generation
337338
- add the CNAME record to the zone in bullet 1 (in Route53 or 3rd party DNS provider) (documented [here](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html))
338339
- after a few minutes the certificate will validate and switch to `Issued` status
339-
- Accelerator phase 1 will finish (assuming the phase didn't time-out)
340+
- Accelerator phase 1 will finish (as long as the certificate is validated before the Phase 1 credentials time-out after 60-minutes)
340341
- the ALB will deploy in a later phase with the specified certificate
341342

342343
- **Method 3** - Manually generate a certificate in ACM

docs/installation/multi-file-config-capabilities.md

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,12 @@
2727
- The loadAcceleratorConfig functionality should no longer assume config.json as the config filename in the config repo and/or S3, instead it should look for config.yaml and config.json
2828
- Check for the existence of config.yaml and config.json (initially in S3, but also in CodeCommit on future executions)
2929
- If both files exist, fail with an error message
30-
- Infer the file type from the extension, and parse accordingly
30+
- **Infer the file type from the extension, and parse accordingly**
3131
- Any other failure should also be an error, fail with an error message
3232
- The accelerator will continue to use JSON formatting internally, if a yaml file is supplied, we are simply converting it to JSON for use by the Accelerator
33-
- All examples throughout this document use config.yaml as the example, but also apply to JSON
33+
- All examples throughout this document use config.json as the example, but also apply to YAML
3434
- Both JSON and YAML input files will be equally supported
35+
- Only one file format is supported across all config files, either JSON or YAML, customers can NOT mix YAML and JSON file formats
3536

3637
### Steps For File Split:
3738

@@ -40,15 +41,15 @@
4041
```
4142
{
4243
"core": {
43-
"__LOAD": "ous/core.yaml"
44+
"__LOAD": "ous/core.json"
4445
}
4546
}
4647
```
4748

4849
Note that while we will provide sensible examples, there is no prescriptive requirement for file organization within a customer's configuration, customers can use the feature to break-out sections as is most effective for their deployment. Breaking out large repeatable sections like security groups is a good example and could be included off the main file, an account file, or off an ou file:
4950

5051
```
51-
"security-groups": [ "__LOAD": "global/security-groups.yaml" ]
52+
"security-groups": [ "__LOAD": "global/security-groups.json" ]
5253
```
5354

5455
Examples:
@@ -64,25 +65,25 @@ Examples:
6465

6566
```
6667
.
67-
├── config.yaml
68+
├── config.json
6869
├── ous
69-
│ ├── core.yaml
70-
│ ├── dev.yaml
71-
│ └── test.yaml ---> could be one per ou, could only be for some ou's as determined by customer
70+
│ ├── core.json
71+
│ ├── dev.json
72+
│ └── test.json ---> could be one per ou, could only be for some ou's as determined by customer
7273
├── accounts
73-
│ ├── workload-accounts-group1.yaml
74-
│ ├── workload-accounts-group2.yaml
75-
│ ├── my-workload-accounts.yaml
76-
│ └── more-accounts.yaml ---->we will encourage each file being as close to 2000 lines as possible (not one per account, not all in one file)
74+
│ ├── workload-accounts-group1.json
75+
│ ├── workload-accounts-group2.json
76+
│ ├── my-workload-accounts.json
77+
│ └── more-accounts.json ---->we will encourage each file being as close to 2000 lines as possible (not one per account, not all in one file)
7778
└── global
78-
├── global-options.yaml
79-
├── security-groups.yaml
79+
├── global-options.json
80+
├── security-groups.json
8081
8182
etc
8283
```
8384

84-
- Max depth of 2 means config.yaml can load ou/dev.yaml, which can load global/security-groups.yaml.
85-
- security-groups.yaml CANNOT load another sub-file (unless security-groups.yaml was only directly loaded from config.yaml).
85+
- Max depth of 2 means config.json can load ou/dev.json, which can load global/security-groups.json.
86+
- security-groups.json CANNOT load another sub-file (unless security-groups.json was only directly loaded from config.json).
8687

8788
### Dealing with Accelerator Automatic Config File Updates:
8889

@@ -91,7 +92,7 @@ When customers create AWS accounts directly through AWS Organizations, the Accel
9192
1. Add the following new parameters to the global-options section of the config file
9293

9394
```
94-
"workloadaccounts-param-filename": "accounts/more-accounts2.yaml",
95+
"workloadaccounts-param-filename": "accounts/more-accounts2.json",
9596
"workloadaccounts-prefix" : "accounts/more-accounts",
9697
"workloadaccounts-suffix" : 3,
9798
```
@@ -106,7 +107,7 @@ When customers create AWS accounts directly through AWS Organizations, the Accel
106107
2. Add the following new parameter to each mandatory and workload account config
107108

108109
```
109-
"src-filename": "accounts/my-workload-accounts.yaml",
110+
"src-filename": "accounts/my-workload-accounts.json",
110111
```
111112

112113
Accelerator Internal Operations:
@@ -115,7 +116,7 @@ Accelerator Internal Operations:
115116
- When creating new accounts (inserting into config file):
116117
- if the update is not going to make the file larger than 2000 lines, insert the new account into the config file `"workloadaccounts-param-filename"`
117118
- if the insert will push the file over 2000 lines:
118-
- create the next unused filename for the given prefix in Code Commit (`{"workloadaccounts-prefix"}{"workloadaccounts-suffix"}.{customer file format}`), i.e. `"accounts/more-accounts3.yaml"`
119+
- create the next unused filename for the given prefix in Code Commit (`{"workloadaccounts-prefix"}{"workloadaccounts-suffix"}.{customer file format}`), i.e. `"accounts/more-accounts3.json"`
119120
- insert the new account into the new file in it's entirety
120121
- update `"workloadaccounts-param-filename"` to: `{"workloadaccounts-prefix"}{"workloadaccounts-suffix"}.{customer file format}`
121122
- add a new load stmt to the workload-accounts section of the config file with the name `{"workloadaccounts-prefix"}{"workloadaccounts-suffix"}.{customer file format}`
@@ -128,40 +129,40 @@ The entire main config file could be reduced to this:
128129

129130
```
130131
{"global-options": {
131-
"workloadaccounts-param-filename": "accounts/more-accounts2.yaml",
132+
"workloadaccounts-param-filename": "accounts/more-accounts2.json",
132133
"workloadaccounts-prefix" : "accounts/more-accounts",
133134
"workloadaccounts-suffix" : 3,
134-
"__LOAD": "global/global-options.yaml"
135+
"__LOAD": "global/global-options.json"
135136
},
136137
"mandatory-account-configs": {
137-
"__LOAD": "accounts/mandatory-accounts.yaml"
138+
"__LOAD": "accounts/mandatory-accounts.json"
138139
},
139140
"workload-account-configs": {
140-
"__LOAD": ["accounts/workload-accounts1.yaml",
141-
"accounts/my-other-accounts.yaml",
142-
"accounts/workload-accounts2.yaml"]
141+
"__LOAD": ["accounts/workload-accounts1.json",
142+
"accounts/my-other-accounts.json",
143+
"accounts/workload-accounts2.json"]
143144
},
144145
"organizational-units": {
145146
"core": {
146-
"__LOAD": "ous/core.yaml"
147+
"__LOAD": "ous/core.json"
147148
},
148149
"Central": {
149-
"__LOAD": "ous/central.yaml"
150+
"__LOAD": "ous/central.json"
150151
},
151152
"Dev": {
152-
"__LOAD": "ous/dev.yaml"
153+
"__LOAD": "ous/dev.json"
153154
},
154155
"Test": {
155-
"__LOAD": "ous/test.yaml"
156+
"__LOAD": "ous/test.json"
156157
},
157158
"Prod": {
158-
"__LOAD": "ous/prod.yaml"
159+
"__LOAD": "ous/prod.json"
159160
},
160161
"UnClass": {
161-
"__LOAD": "ous/unclass.yaml"
162+
"__LOAD": "ous/unclass.json"
162163
},
163164
"Sandbox": {
164-
"__LOAD": "ous/sandbox.yaml"
165+
"__LOAD": "ous/sandbox.json"
165166
}
166167
}}
167168
```

0 commit comments

Comments
 (0)