Keel closes the gap between publishing a new container image and updating the Kubernetes workload that uses it. It can discover registry changes through notifications or polling and apply updates according to configured policies. It is useful for an intentionally automated image-promotion workflow. Those updates must agree with whichever system owns the deployment configuration, and a newly available image is not evidence that application tests or security checks have passed.
Current guidance
Keel automates image updates through Kubernetes and Helm integrations. Its upstream describes semantic-version policies, registry webhooks and polling, including detecting a changed digest behind a reused tag. That is deployment automation, not evidence that the new image has passed application tests or a security review.
Determine whether Keel or another delivery controller owns each workload. If GitOps continually reconciles an older image from Git, direct image updates can be reverted or create a loop. Choose an intentional promotion and approval policy, and record the exact image digest used so a mutable tag does not obscure what changed.
Restrict registry credentials, webhook access and administrative interfaces, and check the release-specific authentication configuration before exposing the UI. Exercise a rejected image, an unhealthy rollout and a rollback in a disposable environment; a successful API update is not successful application deployment. Review Helm-provider behavior separately from plain Deployment updates, including how values are preserved. The source review identifies current upstream capabilities but does not certify every registry integration or permit automatic production upgrades without the user’s delivery policy.
Historical upstream link check · 2026-10-09
The recorded upstream address responded successfully (HTTP 200) on 2026-10-09. Link availability does not certify the historical installation instructions or current security support.
Website availability is separate from project, chart and image support. Use the current guidance and primary sources on this page to assess the distribution.
Historical Kubedex content
Preserved for context. Commands, versions, prices and results below reflect the original research.
Keel aims to be a simple, robust, background service that automatically updates Kubernetes workloads so users can focus on important things like writing code, testing and admiring their creation.
While Container Builder and Google Container Engine (Kubernetes) make a great pair and building images and running your workloads – there is a missing gap: who/what updates deployments when new images are available? maybe it is you:
- update image tag in deployment.yaml
- run kubectl apply -f deployment.yaml
- These updates can be repetitive, lacking control (user needs access to the cluster) and simply not necessary. This is what Keel solves: pluggable trigger system
- (webhooks, pubsub, polling) and pluggable provider system (Kubernetes, Helm).
Keel provides several key features:
- Kubernetes and Helm providers – Keel has direct integrations with Kubernetes and Helm.
- No CLI/API – tired of ***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 and Quay 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 and standard webhook notifications, more info here
Note: For now Keel gets installed into kube-system namespace by default as where Helm’s Tiller is installed.
Overview
Keel acts as a native Kubernetes service, main features:
- Runs silently and doesn’t1 require direct interactions from the user (users label deployments that are eligible for updates)
- Automatically creates topic & subscriptions for your GCR images (GCR uses pubsub instead of webhooks to notify regarding push/delete events in registry) so you don’t
have to - Accepts webhooks from DockerHub, Quay, JFrog (because not everyone runs on Google Cloud)
- Schedules regular image SHA digest checks if you don’t have access to webhooks (ie: repository is not yours) and scans for new tags
So, once you have deployed Keel in your Kubernetes cluster, the workflow looks like this:
- Tag a release in GitHub (this triggers CI to build a new image).
- Cloudbuild/{insert your favorite builder here} starts building an image and pushes to the image registry.
- Keel gets new image event, looks for impacted deployments marked with keel update policy and starts rolling update.
Sources & further reading
Spotted something that needs another look?
Help improve this page →