You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Key decisions:
- Single account, ap-southeast-2, dev only
- EKS Auto Mode pure default NodePool
- ACK manages RDS (db.t4g.small), credentials in K8s Secret
- ALB + ACM TLS, Route 53 via ACK, WAF via ACK
- CloudFront via ACK (Preview, accepted)
- Argo CD as EKS Capability for GitOps
- KRO single top-level instance per environment
- EKS Pod Identity, External Secrets Operator
- 5-layer tagging, self-contained (no sparked-infra dependency)
- MVP: EKS + VPC + RDS, then iterate
Refs: #19
Copy file name to clipboardExpand all lines: aws/GRILL-ME.md
+39-19Lines changed: 39 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,21 +11,25 @@ Answers inline after each question — fill in and save.
11
11
Will the EKS cluster and its backing services (RDS, ECR, CloudFront) all live in one AWS account, or do you want a multi-account setup where ACK creates resources cross-account via IAM role assumption?
12
12
13
13
**Answer:**
14
+
single account
14
15
15
16
### 1.2 Region
16
17
Which AWS region? (The sparked-infrastructure pattern uses `ap-southeast-2`.)
17
18
18
19
**Answer:**
20
+
ap-southeast-2
19
21
20
22
### 1.3 Environments
21
23
How many environments do we need to spec? (e.g., `dev` only for now, or `dev` + `prod`? The KRO instances directory can hold per-env configs.)
22
24
23
25
**Answer:**
26
+
dev only - remember this is to make recipe for others. Let's start simple, and we need to tear it down clean.
24
27
25
28
### 1.4 Existing VPC or new?
26
29
Should the bootstrap Terraform create a new VPC, or should it expect an existing VPC (like sparked-infrastructure's sparkey-eks does)?
27
30
28
31
**Answer:**
32
+
new VPC by default, with option to provide one
29
33
30
34
---
31
35
@@ -37,16 +41,19 @@ EKS Auto Mode creates a `default` NodePool. The Azure version has two node pools
37
41
- (b) One custom NodePool/NodeClass for Ontoserver workloads (to control instance family, e.g., memory-optimised for the 4G+ heap)?
38
42
39
43
**Answer:**
44
+
pure default - these people want to bring the server up. This can be additional documentation
40
45
41
46
### 2.2 Kubernetes version pinning
42
47
Should the bootstrap pin a specific K8s version (e.g., `1.32`) or track latest?
43
48
44
49
**Answer:**
50
+
I think pinning is better, as features change
45
51
46
52
### 2.3 Private or public endpoint?
47
53
EKS API server endpoint: public, private, or both? (sparked-infrastructure uses `endpoint_public_access = true`.)
48
54
49
55
**Answer:**
56
+
endpoint_public_access = true - we need to expect that initially people will need to be able to inspect - again - documentation
50
57
51
58
---
52
59
@@ -58,7 +65,7 @@ The Azure version uses `B_Gen5_2` (basic tier, 2 vCPU). The sparked-infrastructu
**Answer:** - please check the ontoserver requirements. I would use (a) as we only want to prove how it works in principle - documented switch would be ideal
62
69
63
70
### 3.2 RDS via ACK or bootstrap Terraform?
64
71
ACK's RDS controller is GA. Options:
@@ -68,15 +75,15 @@ ACK's RDS controller is GA. Options:
68
75
69
76
Which approach? Note: if ACK manages RDS and you delete the K8s resource, the DB gets deleted too (unless deletion policy is set to `retain`).
70
77
71
-
**Answer:**
78
+
**Answer:** (a)
72
79
73
80
### 3.3 Database credentials
74
81
How should the DB password be managed?
75
82
- (a) ACK generates a master password stored in a K8s Secret
76
83
- (b) AWS Secrets Manager (with External Secrets Operator pulling it into K8s)
77
84
- (c) Something else
78
85
79
-
**Answer:**
86
+
**Answer:** (a)
80
87
81
88
---
82
89
@@ -87,12 +94,13 @@ The Azure version uses a 512 GB Premium managed disk. EKS Auto Mode includes EBS
87
94
- (a) gp3 PVC (what size? 512 GB like Azure, or smaller for initial dev?)
88
95
- (b) io2 for higher IOPS if indexing is time-sensitive
89
96
90
-
**Answer:**
97
+
**Answer:** (a) with documentation for (b) switch?
91
98
92
99
### 4.2 EBS encryption
93
100
EKS Auto Mode encrypts by default. Use default AWS-managed key, or a customer-managed KMS key?
94
101
95
102
**Answer:**
103
+
default
96
104
97
105
---
98
106
@@ -105,7 +113,7 @@ Azure version uses an optional ACR. Same pattern for ECR?
105
113
- (c) Pull directly from quay.io (no registry needed in AWS)
106
114
107
115
**Answer:**
108
-
116
+
(a)
109
117
---
110
118
111
119
## 6. Networking & Ingress
@@ -117,7 +125,7 @@ EKS Auto Mode includes the AWS Load Balancer Controller. The existing EKS Helm e
117
125
- (c) Both supported (Envoy for app routing, ALB for external ingress)
118
126
119
127
**Answer:**
120
-
128
+
(a)
121
129
### 6.2 TLS termination
122
130
- (a) ALB terminates TLS using ACM certificate (simplest for AWS)
@@ -189,6 +197,7 @@ What tag keys should all resources carry? Suggested minimum:
189
197
What keys/values do you want? Any org-mandated tags?
190
198
191
199
**Answer:**
200
+
use minimum, explain how to extend
192
201
193
202
### 9.2 5-layer tagging
194
203
EKS Auto Mode resources created by built-in controllers (EC2, EBS, ALB) require a [5-layer tagging pattern](https://aws-samples.github.io/sample-aws-eks-auto-mode/docs/architecture/tagging):
@@ -201,6 +210,7 @@ EKS Auto Mode resources created by built-in controllers (EC2, EBS, ALB) require
201
210
This requires `enable_auto_mode_custom_tags = true` on the EKS module (adds IAM permissions for custom tag keys). Acceptable?
202
211
203
212
**Answer:**
213
+
yes
204
214
205
215
### 9.3 KRO as resource grouping
206
216
You mentioned KRO ResourceGroups as an analogue to Azure Resource Groups for logical grouping + cascading cleanup. The KRO `ResourceGraphDefinition` composes resources, and deleting the instance triggers deletion of all composed resources.
@@ -211,7 +221,7 @@ Should we design:
211
221
- (c) Hybrid — one master that references sub-compositions
212
222
213
223
**Answer:**
214
-
224
+
(a) - explain alternatives
215
225
---
216
226
217
227
## 10. Secrets & Identity
@@ -223,12 +233,12 @@ EKS Auto Mode supports EKS Pod Identity (no IRSA setup needed). The chart alread
223
233
- (c) Either — support both
224
234
225
235
**Answer:**
226
-
236
+
(a)
227
237
### 10.2 External Secrets Operator
228
238
The ontoserver chart already supports External Secrets. Should the platform layer install ESO and configure a ClusterSecretStore pointing to AWS Secrets Manager?
229
239
230
240
**Answer:**
231
-
241
+
yes, I am changing my mind on above, if incompatible
232
242
---
233
243
234
244
## 11. CI/CD & GitOps
@@ -237,13 +247,15 @@ The ontoserver chart already supports External Secrets. Should the platform laye
237
247
The sparked-infrastructure uses ArgoCD (there's a `sparked-argo` repo). The examples directory has ArgoCD manifests. Use ArgoCD for deploying the ACK/KRO resources and Ontoserver?
238
248
239
249
**Answer:**
250
+
We need to imagine a completely independent setup. So I would propose flux with code commit. Flux because it is easier, and code commit because it is batteries included.
240
251
241
252
### 11.2 Terraform state backend
242
253
- (a) Reuse the existing `examplebucket-fhir-aws` S3 bucket (from sparked-infrastructure)
243
254
- (b) New dedicated state bucket for this project
244
255
- (c) To be determined when AWS account access is provided
245
256
246
257
**Answer:**
258
+
No, see above
247
259
248
260
---
249
261
@@ -259,6 +271,8 @@ However, if we package ACK controller installations or KRO ResourceGraphDefiniti
- (c) Mix — ACK controllers via their official Helm charts, KRO compositions as raw manifests
261
273
274
+
Please double-check EKS has ACK built in.
275
+
262
276
**Answer:**
263
277
264
278
### 12.2 Integration test AWS account
@@ -268,6 +282,7 @@ Will the integration tests run against:
268
282
- (c) TBD
269
283
270
284
**Answer:**
285
+
(a)
271
286
272
287
### 12.3 Acceptance test scope
273
288
For the integration test, what constitutes "working"?
@@ -277,6 +292,7 @@ For the integration test, what constitutes "working"?
277
292
- (d) Other
278
293
279
294
**Answer:**
295
+
(c) - we want this to work for users
280
296
281
297
---
282
298
@@ -287,9 +303,9 @@ For the first deliverable, which services are must-have vs nice-to-have?
287
303
288
304
| Service | Must-have? |
289
305
|---------|-----------|
290
-
| EKS Auto Mode cluster ||
291
-
| VPC/networking ||
292
-
| RDS PostgreSQL ||
306
+
| EKS Auto Mode cluster |X|
307
+
| VPC/networking |X|
308
+
| RDS PostgreSQL |X|
293
309
| EBS persistence (Lucene indexes) ||
294
310
| ALB ingress with TLS ||
295
311
| ECR ||
@@ -299,11 +315,13 @@ For the first deliverable, which services are must-have vs nice-to-have?
299
315
| External Secrets ||
300
316
301
317
**Answer:**
318
+
I think the first three and then iterate
302
319
303
320
### 13.2 Timeline pressure
304
321
Is there a deadline or event driving this, or is it spec-at-leisure?
305
322
306
323
**Answer:**
324
+
No deadline. Thorough work preferred
307
325
308
326
---
309
327
@@ -315,6 +333,7 @@ kro is described as "not yet intended for production use" (their README). The Re
315
333
- (b) Want a fallback plan (e.g., Helm + ArgoCD without KRO for prod, KRO for dev)
316
334
317
335
**Answer:**
336
+
(a) note that KRO is a feature that can be turned in EKS auto, so you do not have to maintain anything there either.
318
337
319
338
### 14.2 Ontoserver read-write vs read-only
320
339
The Azure version doesn't specify. The EKS examples show both patterns. Should the default deployment be:
@@ -323,12 +342,13 @@ The Azure version doesn't specify. The EKS examples show both patterns. Should t
323
342
- (c) Both documented as KRO instances
324
343
325
344
**Answer:**
345
+
(c) - both likely usecases
326
346
327
347
### 14.3 Relationship to sparked-infrastructure
328
348
Should this `aws/` directory be self-contained (duplicating VPC/EKS bootstrap), or should it reference/import from sparked-infrastructure? The Azure directory is self-contained.
329
349
330
350
**Answer:**
331
-
351
+
self-contained. This is for external customers to stand up their own instance.
332
352
---
333
353
334
354
*End of grill-me. Save your answers and let me know when ready.*
0 commit comments