Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Keel Deploy
This adds
keel deploy
to the CLI for deploying a Keel app to any AWS account (self-hosting).Integration tests
I have integrated the
deploy/lambdas/runtime
package into the integration tests and thekeel test
command, which means all that code is pretty well covered by tests. In these setups any usage of AWS API's (e.g. SSM, S3) is mocked out by providing a custom endpoint to AWS clients and setting up a very simple mock server.The deploy code (e.g. the pulumi program) is not currently covered by tests and so needs manual QA for now. I have an idea for how to write some tests for this but they will require an AWS account to run and I think out of scope for this initial PR.
Manual testing
First you need to build the runtime Lambda binary which you can do by running this command in the repo:
Then you can do a deploy by running the CLI:
The Keel app must have a
keelconfig.<env>.yaml
file with adeploy
section in it. A minimal valid config looks like this:Other than you just need to be authenticated into the AWS account you want to deploy to. A first deploy with RDS will take around 5 minutes and updates around 2 minutes.