Git Product home page Git Product logo

keel.sh's Introduction

home heroImage actionText actionLink features footer
true
./img/logo_small.png
Get Started โ†’
/docs/
title details
Don't do it by hand, ever
kubectl is the new SSH. If you are using it to update production workloads, you are doing it wrong. See examples on how to automate application updates.
title details
Open Source & Self-Hosted
Single command, no dependencies. No lock-in, no custom configuration files. Start using now.
title details
No CLI/API required
Runs as a single container, no database required. Policies and trigger types are specified in your application deployment files or Helm charts.
Apache 2 Licensed | Copyright ยฉ 2017-present AppScension Ltd

Keel high level diagram

Easy as 1, 2, 3

  1. Deploy Keel into your cluster, installation instructions can be found here.

  2. Modify your deployment manifest with policy annotations:

apiVersion: extensions/v1beta1
kind: Deployment
metadata: 
  name: wd
  namespace: default
  labels: 
    name: "wd"
  annotations:
    keel.sh/policy: minor # <-- policy name according to https://semver.org/
    keel.sh/trigger: poll # <-- actively query registry, otherwise defaults to webhooks
spec:
  template:
    metadata:
      name: wd
      labels:
        app: wd        
    spec:
      containers:                    
        - image: karolisr/webhook-demo:0.0.8
          imagePullPolicy: Always            
          name: wd
          command: ["/bin/webhook-demo"]
          ports:
            - containerPort: 8090

Additional policies such as wildcard, regex and force are available, read more here.

That's it, third step is automated, Keel will do it. Once you deploy it, Keel will be looking for new versions and automatically updating your resource once a new image is available.

Admin Dashboard (only available with 'latest' image)

Keel has an optional, easy to use web UI for quick policy updates, approval management and audit logs:

Keel Web UI

See how to enable admin dashboard here.

Policy Driven Updates

Use policies to define when you want your application to be updated. Providers can have different mechanisms of getting configuration for your application, but policies are consistent across all of them. Following semver.org best practices allows you to safely automate application updates.

Available policies:

  • all: update whenever there is a version bump or a new prerelease created (ie: 1.0.0 -> 1.0.1-rc1)
  • major: update major & minor & patch versions
  • minor: update only minor & patch versions (ignores major)
  • patch: update only patch versions (ignores minor and major versions)
  • force: force update even if tag is not semver, ie: latest, optional label: keel.sh/match-tag=true which will enforce that only the same tag will trigger force update.
  • glob: use wildcards to match versions, example:

Policy configuration docs can be viewed here.

Approvals

Users can specify on their Kubernetes manifests or Helm charts how many approvals do they have to collect before a resource gets updated. Approvals can be collected through the web admin dashboard, HTTP API, Slack and HipChat. Read more about approvals in the docs.

Keel Friends

  • Webhook Relay allows Keel to receive webhooks and connect to admin dashboard without configuring public IP/domains.
  • Sunstone allows users to always deploy latest semver tags without continuously updating your docs and deployment yamls.

keel.sh's People

Contributors

rusenask avatar spaghettifunk avatar dingggu avatar gijsvandulmen avatar leifjones avatar vassilyvv avatar dependabot[bot] avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.