wtsi-hgi/supergiant

Name: supergiant

Owner: Wellcome Trust Sanger Institute - Human Genetics Informatics

Description: Automatically scale hardware and easily run stateful applications using Kubernetes.

Forked from: supergiant/supergiant

Created: 2018-03-02 11:31:25.0

Updated: 2018-03-02 11:31:28.0

Pushed: 2018-03-13 10:43:16.0

Homepage: https://supergiant.io/

Size: 8274

Language: Go

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Supergiant: Easy container orchestration using Kubernetes


GoReportCard Widget GoDoc Widget Travis Widget Release Widget Coverage Status Widget


Supergiant is an open-source container orchestration system that lets developers easily deploy and manage apps as Docker containers using Kubernetes.

Supergiant aims to automate installation and simplify management of Kubernetes across different cloud accounts by providing an easy-to-use UI that exposes Kubernetes API. The system implements simple concepts that abstract Kubernetes API for pod and services deployment, storage, load-balancing, hardware auto-scaling, and more. Supergiant uses an efficient packing algorithm to enable seamless auto-scaling of Kubernetes clusters to minimize costs and improve resilience of applications. For a more detailed overview of Supergiant top-level concepts, see the docs folder.

Features
Installation
  1. Download the Supergiant server for your system (Windows, Mac, and Linux) and processor architecture from our releases page. For example, for Linux:
 https://github.com/supergiant/supergiant/releases/download/v0.15.6/supergiant-server-linux-amd64 -L -o /usr/bin/supergiant
  1. Make sure to make the downloaded binary executable:
 chmod +x /usr/bin/supergiant
  1. Download the example config file and customize it:
 https://raw.githubusercontent.com/supergiant/supergiant/master/config/config.json.example --create-dirs -o /etc/supergiant/config.json

In the configuration file, specify your paths to log and database locations and create corresponding directories for them.



lite_file": "/var/lib/supergiant/development.db",

g_file": "/var/log/supergiant/development.log",


  1. Run the binary with a config file and save the user/password for the admin user generated the first time Supergiant runs.
ergiant-server-binary> --config-file /etc/supergiant/config.json
  1. Access Supergiant on default 8080 port on localhost.
Installing on AWS

If you want to easily install Supergiant on Amazon Web Services EC2 with Supergiant Amazon Machine Image (AMI), follow the Supergiant AWS Install Tutorial.

Usage
Deploying Kubernetes Cluster

Supergiant allows deploying Kubernetes clusters (Kubes) via the easy-to-use interface with the minimal configuration required. The system manages Kubernetes installation and configuration under the hood enabling various master and nodes services and tools.

Deploying Apps from Helm Repositories

Supergiant provides access to Kubernetes curated helm charts with a broad choice of configured containers installable in one click.

Tracking Cluster Resources

Supergiant UI gives a comprehensive view of computer resources used by the cluster, running applications, services, and attached storages to get insights and simplify cluster administration.

Micro-Roadmap

Currently, the core team is working on the following:

Resources
Community and Contributing

We are grateful for any contribution to the Supergiant project be it in a form of a new GitHub issue, a GitHub feature Pull Request, social media engagement etc. Contributing to Supergiant projects requires familiarization with 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
et github.com/supergiant/supergiant
Create a Config file

You can copy the example configuration:

onfig/config.json.example config/config.json
Run Supergiant
un cmd/server/server.go --config-file config/config.json
 localhost:8080
Build the CLI

This will allow for calling the CLI with the supergiant command:

uild -o $GOPATH/bin/supergiant cmd/cli/cli.go
Run Tests
ndor test +local
Saving dependencies

If you make a change and import a new package, run this to vendor the imports.

ndor 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:

indata -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.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.