Kubernetes Operator to automate Helm, DaemonSet, StatefulSet & Deployment updates
Switch branches/tags
Clone or download
Latest commit fedaf23 Oct 14, 2018
Failed to load latest commit information.
.circleci circle cfg Jun 17, 2018
approvals changing to uint32 to help rpi build Oct 12, 2018
bot tests updated Oct 7, 2018
cache #284 fixed missing approvals Oct 7, 2018
chart/keel updating webhookrelayd container tag Sep 16, 2018
cmd/keel #284 fixed missing approvals Oct 7, 2018
constants keel logo url Feb 25, 2018
deployment fixed deployment manifests Sep 16, 2018
extension added HIPCHAT_SERVER environment variable Oct 2, 2018
hack charts updated Aug 29, 2018
internal policy parse tests Sep 4, 2018
provider tests updated Oct 7, 2018
registry using registry constructors Apr 1, 2018
secrets Working with tests by filtering ports from the image registry Sep 27, 2018
static readme updated, sample updated Jul 9, 2017
trigger Merge pull request #291 from keel-hq/feature/registry_notifications Oct 12, 2018
types fixed tests Sep 4, 2018
util More version comparison logging Oct 9, 2018
vendor adding go-glob to vendor Sep 2, 2018
version updated repo Nov 1, 2017
.gitignore ignore update Feb 25, 2018
Dockerfile updated go image Jun 17, 2018
Dockerfile.aarch64 Dockerfiles for arm Oct 14, 2018
Dockerfile.armhf Dockerfiles for arm Oct 14, 2018
Dockerfile.debian Add debian make target for local testing May 28, 2018
Dockerfile.local vendor updated Aug 4, 2017
Gopkg.lock adding go-glob to vendor Sep 2, 2018
Gopkg.toml adding go-glob to vendor Sep 2, 2018
LICENSE license, readme Jun 11, 2017
Makefile arm build Oct 14, 2018
readme.md chart updated Aug 6, 2018


CircleCI Go Report Docker Pulls

Keel - automated Kubernetes deployments for the rest of us

Keel is a tool for automating Kubernetes deployment updates. Keel is stateless, robust and lightweight.

Keel provides several key features:

  • Kubernetes and Helm providers - Keel has direct integrations with Kubernetes and Helm.

  • No CLI/API - tired of f***ctl for everything? Keel doesn't have one. Gets job done through labels, annotations, charts.

  • Semver policies - specify update policy for each deployment/Helm release individually.

  • Automatic Google Container Registry configuration - Keel automatically sets up topic and subscriptions for your deployment images by periodically scanning your environment.

  • Native, DockerHub, Quay and Azure container registry webhooks support - once webhook is received impacted deployments will be identified and updated.

  • Polling - when webhooks and pubsub aren't available - Keel can still be useful by checking Docker Registry for new tags (if current tag is semver) or same tag SHA digest change (ie: latest).

  • Notifications - out of the box Keel has Slack, Hipchat, Mattermost and standard webhook notifications, more info here


Support Keel's development by:

Lightning quick start


Clone this repo (you will need the chart):

git clone https://github.com/keel-hq/keel.git && cd keel

Install through Helm (with Helm provider enabled):

helm upgrade --install keel --namespace=kube-system ./chart/keel/ --set helmProvider.enabled="true" --set rbac.enabled="true"

If you work mostly with regular Kubernetes manifests, you can install Keel without Helm provider support:

helm upgrade --install keel --namespace=keel ./chart/keel/ --set helmProvider.enabled="false" --set rbac.enabled="true"

That's it, see Configuration section now.

Quick Start

A step-by-step guide to install Keel on your Kubernetes cluster is viewable on the Keel website:



Once Keel is deployed, you only need to specify update policy on your deployment file or Helm chart:

No additional configuration is required. Enabling continuous delivery for your workloads has never been this easy!


Documentation is viewable on the Keel Website:



Before starting to work on some big or medium features - raise an issue here so we can coordinate our efforts.

Developing Keel

If you wish to work on Keel itself, you will need Go 1.9+ installed. Make sure you put Keel into correct Gopath and go build (dependency management is done through dep).

To test Keel while developing:

  1. Launch a Kubernetes cluster like Minikube or Docker for Mac with Kubernetes.
  2. Change config to use it: kubectl config use-context docker-for-desktop
  3. Build Keel from cmd/keel directory.
  4. Start Keel with: keel --no-incluster. This will use Kubeconfig from your home.