Ketch is an application delivery framework that facilitates the deployment and management of applications on Kubernetes using a simple command line interface. No YAML required!

Architecture Diagram


Getting Started

Download and Install Ketch

The latest Ketch release can be found here. Use the following commands
to install Ketch,

Install latest at /usr/local/bin default location

curl -s | bash

Alternatively, you can install specific tag at a target location, for example command below installs ketch version v0.2.0 in current directory:

curl -s | INSTALL_DIR=. TAG=v0.2.0  bash

Install Ingress Controller

At present, Ketch supports Istio and Traefik ingress controllers.

Here is how you can install Traefik:

Use Helm to install Traefik.

helm repo add traefik
helm repo update
helm install traefik traefik/traefik

Or you can install Istio:

curl -Ls | ISTIO_VERSION=1.7.4 sh -
export PATH=$PWD/istio-1.7.4/bin:$PATH
istioctl install --set profile=demo 

Install Cert Manager.

kubectl apply --validate=false -f

Install Ketch controller.

kubectl apply -f

Thats it!

Using Ketch

Learn more about Ketch at Ketch documentation

Quick Start

Deploying apps is easy once you've installed Ketch. First, create a pool. Then create app(s) adding them to the pool and finally
deploy the app(s). The following example illustrates these steps.

# Add a pool with ingress Traefik (default), replace ingress IP address by your ingress IP address
ketch pool add mypool  --ingress-service-endpoint --ingress-type traefik

# Create app
ketch app create bulletinboard --pool mypool       

# Deploy app
ketch app deploy bulletinboard -i 

# Check app status
ketch app list 

NAME             POOL        STATE        ADDRESSES                                      PLATFORM    DESCRIPTION
bulletinboard    mypool      1 running

After you deploy your application, you can access it at the address associated with it using the ketch app list, in
this example


For details see

  ketch [flags]
  ketch [command]

Available Commands:
  app         Manage applications
  cname       Manage cnames of an application
  env         Manage an app's environment variables
  help        Help about any command
  platform    Manage platforms
  pool        Manage pools
  unit        Manage an app's units

  -h, --help      help for ketch
  -v, --version   version for ketch

Use "ketch [command] --help" for more information about a command.