Deploy Resoto to AWS with Cloud Development Kit
We provide a CDK construct to simplify the deployment of Resoto to AWS.
The Resoto web installer is the easiest way to get a production-grade setup, whereas the CDK construct is a bit more involved but gives you more control over the setup and does not require you to send us your cloud credentials.
Prerequisites​
- Git
- AWS account with IAM role permissions
- AWS command-line interface
kubectl
command-line tool- Node.js
Directions​
Run the following commands in the terminal:
$ git clone git@github.com:someengineering/resoto-cdk.git
$ cd resoto-cdk
$ npm ciThen, deploy Resoto with the following command:
$ npm run cdk deploy -- --parameters ResotoTag=edge
noteIf this is your first CDK deployment, you will need to bootstrap your AWS account. You can do so with the following command:
$ npm run cdk bootstrap
infoIt is possible to override the default CloudFormation parameter values:
$ npm run cdk deploy -- --parameters ResotoTag=edge --parameters MngInstanceType=r5a.xlarge
Parameter Description Default Value ResotoTag
The Resoto image tag to use 3.6.5
MngMaxSize
The maximum number of instances in the k8s managed node group 3
MngMinSize
The minimum number of instances in the k8s managed node group 1
MngDesiredSize
The desired number of instances in the k8s managed node group 1
MngInstanceType
The instance type of the k8s managed node group r5a.xlarge
Confirm the deployment. This will trigger CDK to create an EKS cluster and install the Resoto Helm chart.
infoThe deployment will take approximately 30 minutes. You can follow the progress in the terminal.
Once deployment is complete, you will see output similar to the following:
Outputs:
ResotoEKS.ResotoEKSConfigCommandXXXX = aws eks update-kubeconfig ...
ResotoEKS.ResotoPskSecret = kubectl get secrets ...
ResotoEKS.ResotoUI = https://a3xxxxxx.us-east-1.elb.amazonaws.com:8900
Stack ARN:
arn:aws:cloudformation:us-east-1:115717706081:stack/ResotoEKS/e1b9e6a0-d5f6-11eb-8498-0a374cd00e27einfoThe value of
ResotoEKS.ResotoEKSConfigCommandXXXX
in Outputs is a command to configurekubectl
to connect to the EKS cluster.You can check that the connection is working by running the following command:
$ kubectl get pods -A | grep resotocore
​resoto resoto-resotocore-xxx 1/1 Running 0 32mThe value of
ResotoEKS.ResotoPskSecret
in Outputs is a command to retrieve the Resoto PSK.$ kubectl get secrets resoto-psk -o jsonpath='{.data.psk}' | base64 -d
The value of
ResotoEKS.ResotoUI
in Outputs is the URL of the Resoto UI.