Define and deploy multi-container apps in Kubernetes, from source
Forge uses your Kubernetes manifest and Dockerfile -- so it’s easy to use and learn.
Dynamically configure your Kubernetes manifests with Jinja2 templates
Define service dependencies, so you can deploy a multi-service application with one command
Native integration with Ambassador lets you easily do canary deployments
Forge is a single binary that runs anywhere: in your CI system, on your laptop, or anywhere else.
Are you a Kubernetes application developer who wants to deploy your application from source into Kubernetes? Are you looking to have the same deployment workflow for both your CI system and your dev environment?
Create a service template in source control that defines how your application is built in a Dockerfile, and how it's deployed with a Kubernetes manifest. Here's a sample Python service template:
$ git clone https://github.com/datawire/hello-world-python.git
Add a service.yaml to your service that specifies the service name, any dependencies, and as many different deployment configurations as you want.
name: hello-world
profiles:
default:
endpoint: /hello/
max_memory: 0.5G
max_cpu: 0.5
canary:
endpoint: /hello/
weight: 10.0
max_memory: 0.5G
max_cpu: 0.5
Install and configure the Forge binary (if you want, you can even check this into source control, too).
$ curl https://s3.amazonaws.com/datawire-static-files/forge/$(curl https://s3.amazonaws.com/datawire-static-files/forge/latest.url)/forge -o /tmp/forge
$ chmod a+x /tmp/forge
$ sudo mv /tmp/forge /usr/local/bin
$ forge setup
Deploy the service into Kubernetes:
$ forge deploy
Install Ambassador, the Envoy-based Kubernetes API Gateway, and automatically deploy a canary version of your service.
$ forge --profile canary deploy
Forge is under active development. Subscribe to get updates and announcements:
Built by Datawire, helping you build an amazing development workflow on Kubernetes