SUPERGIANT: Easy container orchestration using Kubernetes
Supergiant is an open-source container orchestration system that lets developers
easily deploy and manage apps as Docker containers using Kubernetes.
We want to make Supergiant the easiest way to run Kubernetes in the cloud.
Quick start...
Features
- Fully compatible with native Kubernetes (works with existing setups)
- UI and CLI, both built on top of an API (with importable
Go client lib)
- Filterable container metrics views (RAM / CPU timeseries graphs)
- Deploy / Update / Restart containers with a few clicks
- Launch and manage multiple Kubes across multiple cloud providers from the UI
- Works with multiple cloud providers (AWS, DigitalOcean, OpenStack, and
actively adding more, in addition to on-premise hardware support)
- Automatic server management (background server autoscaling, up/down depending
on container resource needs)
- Role-based Users, Session-based login, self-signed SSL, and API tokens for
security (OAuth and LDAP support to come)
Resources
Installation
Checkout the releases page
for binaries on Windows, Mac, and Linux.
Copy (and customize if necessary)
the example config file, and run with:
<supergiant-server-binary> --config-file config.json
If you want to easily install Supergiant on Amazon Web Services EC2, follow the
Supergiant Install Tutorial.
Top-Level Concepts
See the docs folder.
Micro-Roadmap
Currently, the core team is working on the following:
- Add LDAP and OAUTH user authentication
- Add support for additional cloud providers
- Add support for local installations
Community and Contributing
We are very grateful of any contribution.
All Supergiant projects require familiarization with our Community and our
Contribution Guidelines. Please see these links to get started.
Development
Use Docker in development
docker-compose build server
docker-compose run --rm --service-ports server
Native go on your host
If you would like to contribute changes to Supergiant, first see the pages in
the section above, Community and Contributing.
Note: Supergiant cloud installers have dependencies
pre-installed and configured and will generate a self-signed cert based on the
server hostname. These instructions are for setting up a local or custom
environment.
Supergiant dependencies:
Checkout the repo
go get github.com/supergiant/supergiant
Create a Config file
You can copy the example configuration:
cp config/config.json.example config/config.json
Run Supergiant
go run cmd/server/server.go --config-file config/config.json
open localhost:8080
Build the CLI
This will allow for calling the CLI with the supergiant
command:
go build -o $GOPATH/bin/supergiant cmd/cli/cli.go
Run Tests
govendor test +local
Saving dependencies
If you make a change and import a new package, run this to vendor the imports.
govendor add +external
Compiling Provider files, UI templates, and static assets
Supergiant uses go-bindata to compile
assets directly into the code. You will need to run this command if you're
making changes to the UI or if you're working with Provider code:
go-bindata -pkg bindata -o bindata/bindata.go config/providers/... ui/assets/... ui/views/...
Enabling SSL
Our AMI distribution automatically sets up self-signed SSL for Supergiant, but
the default config/config.json.example
does not enable SSL.
You can see our AMI boot file for an example of how
that is done if you would like to use SSL locally or on your own production
setup.
License
This software is licensed under the Apache License, version 2 ("ALv2"), quoted below.
Copyright 2016 Qbox, Inc., a Delaware corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at http://www.apache.org/licenses/LICENSE-2.0.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under
the License.