[Fix] Consolidate CDK deployment into single command, add AWS deployment options to docs website and README#159
Conversation
Merge custom-resources/package.json dependencies into the root package.json and remove the separate package file. This simplifies the Quick Start from two npm install commands to one. The custom resource Lambda handlers use NodejsFunction with esbuild, which resolves imports via standard Node module resolution — walking up to the root node_modules works correctly. Dependencies moved to root: - @aws-crypto/sha256-js (bundled into UI Init Lambda) - @aws-sdk/credential-provider-node (external, Lambda runtime) - @aws-sdk/signature-v4 (bundled into UI Init Lambda) - @smithy/protocol-http (bundled into UI Init Lambda) Dependencies dropped (excluded via externalModules and provided by Lambda Node.js 22 runtime): - @aws-sdk/client-opensearch - @aws-sdk/client-secrets-manager Tested: cdk synth + full cdk deploy --all with all 4 custom resource Lambdas (FGAC mapping, DQS datasource, OpenSearch App, UI Init) completing successfully. Signed-off-by: Kyle Hounslow <kylhouns@amazon.com>
040d935 to
cc6bbe1
Compare
Add a new top-level 'Deploy to Cloud' sidebar section with two pages: - deploy/index.md: Overview comparing Kubernetes vs Managed Services deployment paths, with component mapping table and links - deploy/aws.md: AWS Managed Services page with CLI installer and CDK instructions, SigV4 telemetry configuration, and cleanup commands Update astro.config.mjs sidebar to place the new section between 'Get Started' and 'Send Data', structured to grow for future Kubernetes/Helm, Azure, and GCP support. Build passes with all internal links valid (105 pages). Signed-off-by: Kyle Hounslow <kylhouns@amazon.com>
Update component mapping table in both README and docs site to use 'OpenSearch UI' with the correct documentation link instead of 'OpenSearch Service Dashboards'. Signed-off-by: Kyle Hounslow <kylhouns@amazon.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #159 +/- ##
=======================================
Coverage 18.51% 18.51%
=======================================
Files 3 3
Lines 54 54
Branches 18 18
=======================================
Hits 10 10
Misses 44 44 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
The repository does not currently contain a Helm chart directory. Signed-off-by: Kyle Hounslow <kylhouns@amazon.com>
52d8fb4 to
2852cf0
Compare
| @@ -0,0 +1,29 @@ | |||
| --- | |||
| title: Deploy to Cloud | |||
There was a problem hiding this comment.
this sounds a bit generic, should title mention AWS? i don't think other cloud providers have all the services we use
There was a problem hiding this comment.
Good call out. I gave this some thought before landing on this structure. The idea is for "Deploy to Cloud" to be a top-level section that grows over time (short term: native Kubernetes/Helm, and eventually long-term: other cloud providers). I don't want to limit to AWS only. The sidebar already scopes it: the only child page is "AWS Managed Services", so users land in the right place. When we add Helm or another provider later we just drop a new page under the same section without restructuring.
There was a problem hiding this comment.
Despite not having all the services we use (mainly OSIS, AOS), an example of supporting other cloud providers could be native K8s / Helm but deployed on GKS or AKS.
| | OpenSearch Dashboards | [OpenSearch UI](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/application.html) | | ||
|
|
||
| :::note | ||
| Native Kubernetes (Helm) deployment documentation is coming soon. |
Problem
The CDK Quick Start requires two separate
npm installcommands — one for the root and one forcustom-resources/. These all serve the same goal (deploying AWS resources via CDK) and there is no technical reason for the split. Additionally, the root README has no mention of the AWS CLI installer or CDK deployment paths, and the docs website has no cloud deployment documentation.Changes
CDK dependency consolidation:
custom-resources/package.jsondependencies into rootpackage.jsoncustom-resources/package.jsonandpackage-lock.jsonThe custom resource Lambdas use CDK's
NodejsFunctionwith esbuild bundling. esbuild resolves imports via standard Node module resolution (walks up to rootnode_modules). The separatepackage.jsonwas unnecessary.Dependencies moved to root:
@aws-crypto/sha256-js,@aws-sdk/credential-provider-node,@aws-sdk/signature-v4,@smithy/protocol-http.Dependencies dropped:
@aws-sdk/client-opensearch,@aws-sdk/client-secrets-manager— excluded viaexternalModules: ['@aws-sdk/*']in all Lambdas that use them, provided by the Node.js 22 Lambda runtime.Root README:
Docs website (Starlight):
docs/deploy/index.md— Overview page comparing Kubernetes vs Managed Services deployment paths, with component mapping tabledocs/deploy/aws.md— AWS Managed Services page with CLI installer and CDK instructions, SigV4 telemetry configuration, and cleanup commandsTesting
cdk synth --all— all 4 Lambdas bundle successfullycdk deploy --all— full end-to-end deploy in us-west-2, all custom resources CREATE_COMPLETEcdk destroy --all— clean teardown