MCPcopy Index your code
hub / github.com/banzaicloud/satellite

github.com/banzaicloud/satellite @0.0.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.0.4 ↗ · + Follow
34 symbols 84 edges 11 files 31 documented · 91%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

license Go Report Card Docker Automated build

Satellite is a Golang library and RESTful API that determines a host's cloud provider with a simple HTTP call. Behind the scenes, it uses file systems and provider metadata to properly identify cloud providers.


Satellite(SAT)

Satellite is widely used across the Banzai Cloud Pipeline platform. We are cloud agnostic but at the same time cloud aware - using the Banzai Cloud Kubernetes operators all our code relies on Satellite to determine the cloud provider and inject the cloud specific code.

With this simple service the cloud provider can be determined easily with a simple HTTP call.

Supported Cloud Providers

  • Amazon
  • Alibaba Cloud
  • Azure
  • Google Cloud
  • Oracle Cloud
  • DigitalOcean

API

  • GET "/satellite" -> {name: cloudprovider}

Helm chart

You can deloy Satellite to a cloud based Kubernetes cluster using this Helm chart.

To install the chart from the Banzai Cloud chart repo:

$ helm repo add banzaicloud-stable http://kubernetes-charts.banzaicloud.com/branch/master
$ helm install banzaicloud-stable/satellite

Examples

The Banzai Cloud PVC operator uses Satellite in order to keep Helm charts cloud agnostic. For further details please check the PVC operator.

This operator makes using Kubernetes Persistent Volumes easier on cloud providers, by dynamically creating the required accounts, classes and more. It allows to use exactly the same Helm chart on all the supported providers, there is no need to create cloud specific Helm charts.

Contributing

If you find this project useful here's how you can help:

  • Send a pull request with your new features and bug fixes
  • Help new users with issues they may encounter
  • Support the development of this project and star this repo!

Extension points exported contracts — how you extend this code

Identifier (Interface)
Identifier is the common interface [7 implementers]
api/api.go

Core symbols most depended-on inside this repo

Identify
called by 2
api/api.go
NewDetermineProviderApi
called by 1
api/api.go
Logger
called by 1
config/logger.go
newLogger
called by 1
config/logger.go
NewLogger
called by 1
config/logger.go
main
called by 0
main.go
Identify
called by 0
providers/aws.go
IdentifyAmazonViaMetadataServer
called by 0
providers/aws.go

Shape

Struct 13
Function 11
Method 9
Interface 1

Languages

Go100%

Modules by API surface

api/api.go6 symbols
providers/oracle.go4 symbols
providers/digitalocean.go4 symbols
providers/aws.go4 symbols
config/logger.go4 symbols
providers/google.go3 symbols
providers/azure.go3 symbols
providers/alibaba.go3 symbols
providers/slow.go2 symbols
main.go1 symbols

For agents

$ claude mcp add satellite \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact