Categorygithub.com/sapcc/andromeda
repository
1.0.0
Repository: https://github.com/sapcc/andromeda.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

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:

  • F5 BigIP DNS
  • Akamai

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)

Optional development requirements (needed to re-create meta sources)

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