Kubernetes Operator to automate Helm, DaemonSet, StatefulSet & Deployment updates
Clone or download
Latest commit 52a4e71 Dec 17, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Update config.yml Nov 23, 2018
.pipeline GCP cloud build integration and chart lint and install test Nov 23, 2018
.scripts perms Nov 23, 2018
.test add tiller readiness check Nov 23, 2018
approvals changing to uint32 to help rpi build Oct 12, 2018
bot tests updated Oct 7, 2018
cache cleanup Dec 11, 2018
chart/keel bump keel app version to v0.13.0 Dec 17, 2018
cmd/keel #323 new CLUSTER_NAME env variable for setting up cluster name Dec 10, 2018
constants keel logo url Feb 25, 2018
deployment disable pubsub by default Nov 11, 2018
extension Use http.DefaultTransport to support HTTP proxies Nov 22, 2018
hack bump to 0.12.0 Oct 23, 2018
internal policy: allow explicitly selecting NilPolicy Dec 6, 2018
provider fixed a problem with helm approvals not getting default deadline Dec 14, 2018
registry reg name updated Nov 24, 2018
secrets #301 more debugging options Dec 12, 2018
static add icon file for keel chart Dec 17, 2018
tests adding debug for tests Dec 1, 2018
trigger #301 more debugging options Dec 12, 2018
types adding policy to the tracked image to help with polling Nov 30, 2018
util adding policy to the tracked image to help with polling Nov 30, 2018
vendor deps updated Nov 14, 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 deps updated Nov 14, 2018
Gopkg.toml adding go-glob to vendor Sep 2, 2018
LICENSE license, readme Jun 11, 2017
Makefile skip e2e on circle Nov 14, 2018
readme.md update main readme with shorter keel helm repo name Dec 17, 2018

readme.md

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

Support Keel's development by:

Lightning quick start

Prerequisites:

You need to add this Chart repo to Helm:

helm repo add keel https://charts.keel.sh 
helm repo update

Install through Helm (with Helm provider enabled by default):

helm upgrade --install keel --namespace=kube-system keel/keel

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

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

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:

https://keel.sh/v1/guide/quick-start.html

Configuration

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

Documentation is viewable on the Keel Website:

https://keel.sh/v1/guide/documentation

Contributing

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.

Running unit tests

To run unit tests:

make test

Running e2e tests

Prerequisites:

  • configured kubectl + kubeconfig
  • a running cluster (test suite will create testing namespaces and delete them after tests)
  • Go environment (will compile Keel before running)

Once prerequisites are ready:

make e2e