Skip to main content

Envoy Proxy control-plane written in Python

Project description


Mission statement

This project implements a JSON control-plane based on the envoy data-plane-api

The purpose of sovereign is to supply downstream envoy proxies with configuration in near-realtime by responding to discovery requests.


  1. Accepts data from source(s) e.g. file, http, custom
  2. (optional) Applies modifications to the received data
  3. Renders the data into a Jinja2 template (or returns a static response)
  4. Serializes the rendered configuration as JSON and returns it to the Envoy proxy

The idea behind this architecture is to enable high-extensibility.
Users can add their own entry point to the package (todo: documentation) which the control-plane will automatically use to retrieve data to be turned into configuration on the fly.


  • Python 3.7+


pip install sovereign


Read the docs here!

:new: Read-only user interface

Added in v0.5.3!

This interface allows you to browse the resources currently returned by Sovereign.

Sovereign User Interface Screenshot

Local development


  • Docker
  • Docker-compose

Installing dependencies for dev

I recommend creating a virtualenv before doing any dev work

python3 -m venv venv
source venv/bin/activate
pip install -r requirements-dev.txt

Running locally

Running the test env

make run

Running the test env daemonized

make run-daemon


make lint

Unit tests

make unit

Acceptance tests

make run-daemon acceptance


Pull requests, issues and comments welcome. For pull requests:

  • Add tests for new features and bug fixes
  • Follow the existing style
  • Separate unrelated changes into multiple pull requests

See the existing issues for things to start contributing.

For bigger changes, make sure you start a discussion first by creating an issue and explaining the intended change.

Atlassian requires contributors to sign a Contributor License Agreement, known as a CLA. This serves as a record stating that the contributor is entitled to contribute the code/documentation/translation to the project and is willing to have it used in distributions and derivative works (or is willing to transfer ownership).

Prior to accepting your contributions we ask that you please follow the appropriate link below to digitally sign the CLA. The Corporate CLA is for those who are contributing as a member of an organization and the individual CLA is for those contributing as an individual.


Copyright (c) 2018 Atlassian and others. Apache 2.0 licensed, see LICENSE.txt file.

Project details

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for sovereign, version 0.5.10
Filename, size File type Python version Upload date Hashes
Filename, size sovereign-0.5.10-py3.7.egg (75.6 kB) File type Egg Python version 3.7 Upload date Hashes View
Filename, size sovereign-0.5.10.tar.gz (25.9 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page