Skip to main content

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 dynamic configuration.

Mechanism of Operation

Sovereign allows you to define templates that represent each resource type provided by Envoy. For example, clusters, routes, listeners, secrets, extension_configs, etc.

In order to enrich the templates with data, Sovereign has ways of polling data out-of-band which it then includes as variables that can be accessed within the templates.

This allows Sovereign to provide configuration to Envoy that changes over time depending on the data sources, without needing to redeploy the control-plane.

Sovereign provides some built-in ways of polling data (such as over HTTP, or on-disk) but also exposes extension points, allowing you to write your own plugins in Python.

Support

Submit new issues here

If you're unable to submit an issue on Bitbucket, send an email to vsyrakis@atlassian.com

Release

See [RELEASE.md]

Roadmap

  • Performance improvements
  • Data persistence
  • Push API (versus polling)
  • Client for Sovereign
  • gRPC

Requirements

  • Python 3.8+

Installation

pip install sovereign

Documentation

Read the docs here!

Local development

Requirements

  • Poetry
  • Docker
  • Docker-compose

Installing dependencies for dev

Dependencies and creation of virtualenv is handled by poetry

poetry install
poetry shell

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.

Release files for sovereign 0.32.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sovereign 0.32.12
File Size Uploaded
sovereign-0.32.12.tar.gz 99.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sovereign 0.32.12
File Interpreter ABI Platform
sovereign-0.32.12-py3-none-any.whl Python 3 none any Details

Total release size: 214.6 kB

Release files / sovereign-0.32.12.tar.gz

Download URL sovereign-0.32.12.tar.gz
Size 99.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c36711f981a6b02be45c64e562a0aec0edffe9e00faa78af52c874cc29736112
BLAKE2b-256 checksum
How to use checksums
668631cb2261cfa08e124fa87853f846c9cdf45e7a1394dad03efc5158d2058f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.5 CPython/3.11.16 Linux/6.18.35

Release files / sovereign-0.32.12-py3-none-any.whl

Download URL sovereign-0.32.12-py3-none-any.whl
Size 115.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9e611cf22d36d18b97e03ea00eea8e4e420c53b2d27831168d32874fd31f5368
BLAKE2b-256 checksum
How to use checksums
971cfd82f64bff516d9b859c2e56ce30d6769d64c6a425465f05a120a734b201
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.5 CPython/3.11.16 Linux/6.18.35

Release history Release notifications | RSS feed

This release

0.32.12 This release

2 release files

0.32.9

2 release files

0.32.8

2 release files

0.32.6

2 release files

0.32.5

2 release files

0.32.3

2 release files

0.32.2

2 release files

0.32.0

2 release files

0.31.0

2 release files

0.29.4

2 release files

0.29.3

2 release files

0.29.1

2 release files

0.29.0

2 release files

0.27.1

1 release file

0.27.0

2 release files

0.26.0

2 release files

0.25.4

2 release files

0.25.2

2 release files

0.25.1

2 release files

0.25.0

2 release files

0.24.5

2 release files

0.24.4

2 release files

0.24.3

2 release files

0.24.2

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.20.2

2 release files

0.20.0

2 release files

0.19.3

2 release files

0.19.2

2 release files

0.19.1

2 release files

0.19.0

2 release files

0.17.0

2 release files

0.16.1

2 release files

0.16.0

2 release files

0.14.2

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.2

2 release files

0.11.0

2 release files

0.10.5

2 release files

0.10.0

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.6.17

2 release files

0.6.16

2 release files

0.6.14

2 release files

0.6.13

2 release files

0.6.11

2 release files

0.6.10

2 release files

0.6.9

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.13

2 release files

0.5.12

2 release files

0.5.11

2 release files

0.5.10

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.30

2 release files

0.1.29

2 release files

0.1.28

2 release files

0.1.27

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

1 release file

0.1.8

1 release file

0.1.7

1 release file

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page