Launchpad is a command-line tool that lets you easily create applications on Kubernetes.
In practice, Launchpad works similar to Heroku or Vercel, except everything is on Kubernetes.
The example below initializes a web project with launchpad init
, and deploys to a local Kubernetes cluster with launchpad up
:
Launchpad builds any image, publishes it to your Docker Registry, and deploys it to Kubernetes in one step. No need to manually build and push your image, setup your kube-context, or write long pages of Kubernetes YAML.
Ever wonder how you'd graduate from Heroku or a single EC2 machine to Kubernetes without going through a painful setup again? Faint not! With Launchpad, no manual migrations are required. In fact, developers can deploy and run their applications without needing to learn Kubernetes.
Adding a new member to the team? Forget about Registry access, Cluster credentials, Kubernetes configurations, Namespace permissions, and a million other things to take care of. With Jetpack's Mission Control, Launchpad can automatically create all of the above for each new developer.
Secrets are tied to your launchpad projects, so they can be shared and updated securely by your team.
In addition to installing Launchpad itself, you will need to install docker
since Launchpad depends on it:
-
Install Docker Desktop.
-
Install Launchpad:
curl -fsSL https://get.jetpack.io/launchpad | bash
Read more on the Launchpad docs.
In this quickstart, we’ll deploy a cron job to your local Docker Desktop Kubernetes cluster.
-
Open a terminal in a new empty folder called
launchpad/
. -
Enable Kubernetes on Docker Desktop
-
Initialize Launchpad in
launchpad/
:> launchpad init
You will see the following questions:
? What is the name of this project? // Press <Enter> to use the default name ? What type of service you would like to add to this project? // Choose `Cron Job` ? To which cluster do you want to deploy this project? // Choose `docker-desktop`
This creates a
launchpad.yaml
file in the current directory. You should commit it to source control. -
Your
launchpad.yaml
file should now look like this:configVersion: 0.1.2 projectId: ... name: app cluster: docker-desktop services: app-cron: type: cron image: busybox:latest command: [/bin/sh, -c, date; echo Hello from Launchpad] schedule: '* * * * *'
-
Start a new deployment to Kubernetes:
launchpad up
-
Wait for a minute, and see the cron job in action:
> kubectl get pods > kubectl logs <pod_name>
kubectl, while not required, is a useful tool for inspecting and managing your deployments in Kubernetes.
-
Clean up:
launchpad down
launchpad help
- see all commands
launchpad auth
- create a user, login, or logout (login required)
launchpad env
- manage environment variables and secrets (login required)
launchpad cluster
- create a cluster, list your clusters (login required)
All "login required" commands require you to have an account with Jetpack's Mission Control offering. These special commands are added on top of the open-source codebase for you. Even though they are excluded from this repository, they are readily available in the launchpad CLI.
See the CLI Reference for the full list of commands.
- Chat with us by joining the Jetpack.io Discord Server – we have a #launchpad channel dedicated to this project.
- File bug reports and feature requests using Github Issues
- Follow us on Jetpack's Twitter for product updates
Launchpad is an open-core project so contributions are always welcome. Please read our contributing guide before submitting pull requests.