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 data-plane-api

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

Documentation

Read the docs here!

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

Contributors

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.

License

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.

Source Distribution

sovereign-0.5.1.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sovereign-0.5.1-py3.7.egg (62.8 kB view details)

Uploaded Egg

File details

Details for the file sovereign-0.5.1.tar.gz.

File metadata

  • Download URL: sovereign-0.5.1.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for sovereign-0.5.1.tar.gz
Algorithm Hash digest
SHA256 0b5ce41291078a29f3cde05b24a167d805f7b5485ed045748daf0f76e2fc9422
MD5 c9756f2890c23418bd75cf9b63498ddd
BLAKE2b-256 66e44e1d82ec87712592280a1ec1f0976a1aae7df95f5b161fdaf0765ae84a8b

See more details on using hashes here.

File details

Details for the file sovereign-0.5.1-py3.7.egg.

File metadata

  • Download URL: sovereign-0.5.1-py3.7.egg
  • Upload date:
  • Size: 62.8 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for sovereign-0.5.1-py3.7.egg
Algorithm Hash digest
SHA256 b21bd0a2bc057a54c5243e1edf04ca9b3fde638396e75343b99dbf0b0602a44a
MD5 2480a24003f50f394ffcd5dcc7069e4d
BLAKE2b-256 be5b9162641f1fe6e29dc817d39c96a94b5de788722dfc7469525c66fafc9e16

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page