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.
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.
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