Need help with Beetle?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

157 Stars 12 Forks MIT License 458 Commits 6 Opened issues


🔥 Kubernetes multi-cluster deployment automation service.

Services available


Need anything else?

Contributors list


Kubernetes multi-cluster deployment automation service

:unicorn: Check out the demo!

Application deployment and management should be automated, auditable, and easy to understand and that's what beetle tries to achieve in a simple manner. Beetle automates the deployment and rollback of your applications in a multi-cluster, multi-namespaces kubernetes environments. Easy to integrate with through API endpoints & webhooks to fit a variety of workflows.



On a Linux Server

Download the latest beetle binary.

$ curl -sL | tar xz

Create your config file as explained on development part and run beetle with systemd or anything else you prefer.

$ ./beetle serve -c /custom/path/


Beetle uses Go Modules to manage dependencies. First Create a prod config file.

$ git clone
$ cp config.dist.yml

Then add your default configs. You probably wondering how the following configs even work! let's pick one and explain.

The item mode:

means that the mode is dev unless environment variable
is defined. so you can always override the value by defining the environment variable
export BEETLE_APP_MODE=prod
. and same for others
# App configs
    # Env mode (dev or prod)
    mode: ${BEETLE_APP_MODE:-dev}
    # HTTP port
    port: ${BEETLE_API_PORT:-8080}
    # App URL
    domain: ${BEETLE_APP_DOMAIN:-}
    # TLS configs
        status: ${BEETLE_API_TLS_STATUS:-off}
        pemPath: ${BEETLE_API_TLS_PEMPATH:-cert/server.pem}
        keyPath: ${BEETLE_API_TLS_KEYPATH:-cert/server.key}

# Message Broker Configs
    # Broker driver (native)
    driver: ${BEETLE_BROKER_DRIVER:-native}
    # Native driver configs
        # Queue max capacity
        capacity: ${BEETLE_BROKER_NATIVE_CAPACITY:-5000}
        # Number of concurrent workers
        workers: ${BEETLE_BROKER_NATIVE_WORKERS:-4}

# API Configs
    key: ${BEETLE_API_KEY:- }

# Runtime, Requests/Response and Beetle Metrics
        # Route for the metrics endpoint
        endpoint: ${BEETLE_METRICS_PROM_ENDPOINT:-/metrics}

# Application Database
    # Database driver (sqlite3, mysql)
    driver: ${BEETLE_DATABASE_DRIVER:-sqlite3}
    # Database Host
    host: ${BEETLE_DATABASE_MYSQL_HOST:-localhost}
    # Database Port
    # Database Name
    name: ${BEETLE_DATABASE_MYSQL_DATABASE:-beetle.db}
    # Database Username
    # Database Password

# Kubernetes Clusters
        name: ${BEETLE_KUBE_CLUSTER_01_NAME:-production}
        inCluster: ${BEETLE_KUBE_CLUSTER_01_IN_CLUSTER:-false}
        kubeconfig: ${BEETLE_KUBE_CLUSTER_01_CONFIG_FILE:-/app/configs/production-cluster-kubeconfig.yaml}
        name: ${BEETLE_KUBE_CLUSTER_02_NAME:-staging}
        inCluster: ${BEETLE_KUBE_CLUSTER_02_IN_CLUSTER:-false}
        kubeconfig: ${BEETLE_KUBE_CLUSTER_02_CONFIG_FILE:-/app/configs/staging-cluster-kubeconfig.yaml}

# HTTP Webhook
    url: ${BEETLE_WEBHOOK_URL:- }
    retry: ${BEETLE_WEBHOOK_RETRY:-3}
    apiKey: ${BEETLE_WEBHOOK_API_KEY:- }

Log configs

log: # Log level, it can be debug, info, warn, error, panic, fatal level: ${BEETLE_LOG_LEVEL:-info} # output can be stdout or abs path to log file /var/logs/beetle.log output: ${BEETLE_LOG_OUTPUT:-stdout} # Format can be json format: ${BEETLE_LOG_FORMAT:-json}

And then run the application.

$ go build beetle.go
$ ./beetle serve -c /custom/path/

// OR

$ make run

// OR

$ go run beetle.go serve -c /custom/path/

API Documentation

Go to and import this file


For transparency into our release cycle and in striving to maintain backward compatibility, Beetle is maintained under the Semantic Versioning guidelines and release process is predictable and business-friendly.

See the Releases section of our GitHub project for changelogs for each release version of Beetle. It contains summaries of the most noteworthy changes made in each release.

Bug tracker

If you have any suggestions, bug reports, or annoyances please report them to our issue tracker at

Security Issues

If you discover a security vulnerability within Beetle, please send an email to [email protected]


We are an open source, community-driven project so please feel free to join us. see the contributing guidelines for more details.


© 2020, clivern. Released under MIT License.

Beetle is authored and maintained by @clivern.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.