Skip to main content

Envoy Proxy control-plane written in Python

Project description

sovereign

Mission statement

This project implements a JSON control-plane based on the [envoy][1] [data-plane-api][2].

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

Features

  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.

Requirements

  • Python 3.7+

Installation

pip install sovereign

Local development

Requirements

  • 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

Pylint

make lint

Unit tests

make unit

Acceptance tests

make run-daemon acceptance

[1]: https://envoyproxy.io [2]: https://github.com/envoyproxy/data-plane-api

Project details


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.1.9
Filename, size File type Python version Upload date Hashes
Filename, size sovereign-0.1.9.tar.gz (19.3 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page