Skip to content

Platform agnostic GSLB frontend with OpenStack-like API

License

Notifications You must be signed in to change notification settings

sapcc/andromeda

Folders and files

NameName
Last commit message
Last commit date
Mar 12, 2025
Jan 3, 2025
Mar 20, 2025
Oct 15, 2024
Jan 3, 2025
Mar 25, 2025
Dec 16, 2024
Oct 10, 2024
Jan 3, 2025
Apr 3, 2025
Apr 24, 2023
Mar 3, 2022
Feb 24, 2025
Mar 3, 2022
Mar 20, 2025
Dec 5, 2022
Apr 1, 2025
Apr 1, 2025
Jun 20, 2024
Jan 3, 2025

Repository files navigation

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

Loading
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