Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: keel deploy command #1678

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

feat: keel deploy command #1678

wants to merge 1 commit into from

Conversation

jonbretman
Copy link
Member

@jonbretman jonbretman commented Nov 29, 2024

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 the keel 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:

$ goreleaser build --snapshot --rm-dist -p 4 --id runtime-lambda

Then you can do a deploy by running the CLI:

$ go run ./cmd/keel/main.go deploy up --env staging --runtime-binary ./dist/runtime-lambda_linux_amd64_v1/runtime-lambda -d ../path/to/some/keel/app

The Keel app must have a keelconfig.<env>.yaml file with a deploy section in it. A minimal valid config looks like this:

deploy:
  projectName: my-project
  region: eu-west-2

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.

@jonbretman jonbretman added the WIP work in progress label Nov 29, 2024
@jonbretman jonbretman force-pushed the keel-deploy branch 8 times, most recently from b8ef698 to 552ab6a Compare December 2, 2024 19:16
@jonbretman jonbretman force-pushed the keel-deploy branch 7 times, most recently from c2606e9 to c5d4b4b Compare December 11, 2024 09:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WIP work in progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant