andromeda
Platform agnostic GSLB frontend with OpenStack-like API
Andromeda is a OpenStack like REST API Fronted for Global Loadbalancing as a Service (GLbaaS). It can support multiple backends, called provider.
Features:
- Multi-tenant capable
- keystone authentication
- OpenStack policy files
- Prometheus metrics
- Rate limiting
- OpenStack like Quota API
- Multiple Database backends supported
- PostgreSQL
- MariaDB (Warning, MySQL/Percona is not supported)
- CockroachDB
Currently it supports following provider:
API Documentation: https://sapcc.github.io/andromeda/
CLI Client
Andromeda provides a reference CLI client called m31ctl
that uses the REST API of Andromeda.
Running Requirements
- go 1.19
- NATS
- SQL Database (PostgreSQL/MariaDB/CockroachDB)
Build
- Build
andromeda
and m31ctl
: $ make
- Rebuild swagger metafiles:
$ make swagger
Example Architecture
flowchart TB
A[User region A] -->|Rest API| C(andromeda-api)
B[User region B] -->|Rest API| D(andromeda-api)
M[User region C] -->|Rest API| O(andromeda-api)
C & D & O <--> NATS
C ---> db1[(Database)]
D ----> db2[(Database)]
O ---> db3[(Database)]
subgraph Distributed Database
db1 ---|sync| db2
db2 ---|sync| db3
end
subgraph NATS
N[NATS message bus]
end
NATS --> andromeda-worker-1
NATS --> andromeda-worker-2
NATS --> andromeda-worker-3
License