Giter Club home page Giter Club logo

coregi's Introduction

CoreGI

DockerHub Stats

WebUI for monitoring CoreOS clusters including fleet and etcd

CoreGI

Built with love by the Yodlr team

What is CoreGI

CoreGI came out of our need for a one-stop dashboard for viewing the status of the applications running in our CoreOS clusters, monitoring etcd keys, and managing rolling software updates. We're pro cli-tools, but have found that simple web-apps provide improved visibility into complex systems.

CoreGI Dashboard

CoreGI runs in CoreOS

CoreGI was created to be as simple as possible and deploying CoreGI is as easy as running a docker container. CoreGI can also be installed into a CoreOS cluster using a CoreOS service file. Take a look at our CoreOS service file for an example. CoreGI can also be ran as an application using Node.js by using environment variables to change the default options, see Getting Started.

We have setup automated Docker Hub builds for CoreGI here

Getting Started

CoreOS
git clone https://github.com/yodlr/CoreGI.git
cd CoreGI
fleetctl start services/coregi.service

Our example service file is setup to be a Global service listening on port 3000. This can be modified in the CoreOS service file which can be found here.

Docker
$ docker run --name coregi -p 3000:3000 yodlr/coregi:latest
Node.js

To change default options, see options. Example with custom option:

$ FLEET_BINARY=/usr/local/bin/fleetctl npm start

CoreGI Options

CoreGI default options. To change the default options, simply set the value of any of the following environment variables.

PORT = 3000
FLEET_BINARY = '/usr/bin/fleetctl'
FLEET_TUNNEL = '172.17.42.1'  //If set, will remove FLEET_ENDPOINT option.
FLEET_ENDPOINT = 'http://172.17.42.1:4001'
ETCD_HOST = '172.17.42.1'
ETCD_PORT = 4001
LOG_LEVEL = 'info'

CoreGI Features

CoreGI currently supports querying Fleet for listing of machines, units, unit-files and Etcd for listing of keys. CoreGI also exposes a REST API with the following endpoints:

  • GET /api/machines
  • GET /api/units
  • GET /api/unitFiles
  • GET /api/keys

Future Features

Some of the features we're thinking/planning on implementing include:

  • Unit logs
  • Unit status
  • Start/stop/load/unload units
  • Monitoring and editing etcd keys
  • Rolling deployment of units

CoreGI is built with:

coregi's People

Contributors

jareddlc avatar rosskukulinski avatar sgrimee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

coregi's Issues

Default fleet endpoint incorrect if docker service IP changes (flanneld)

The default values:

FLEET_ENDPOINT = 'http://172.17.42.1:4001'
ETCD_HOST = '172.17.42.1

will not work if the ip address of the docker service is changed, which is the case when flanneld is used.

I will submit a PR that sets it to the host private ip in the unit file, if you think it is a correct fix.

Data stops updating

Using fleetctl, I see a unit is stopped/failed, but in CoreGI it's being reported as RUNNING.

REST API for CoreGI also reports RUNNING, so it must be a backend issue.

etcd/fleet endpoit IP

Hi guys,

Thanks for the nice UI for CoreOS services.

Would be possible to change IP "172.17.42.1" vis docker env, please?
As e.g. CoreOS on vagrant docker uses different IP "10.1.42.1" so I have to add updated "index.js" via
volume for now to get it working in vagrant based CoreOS.

Thanks

Unit/Machine/Unit-Files Broken if fleet version changes

Mar 31 18:48:25 prod-coreos-b-dfw-02 docker[3202]: [2015-03-31T18:48:25.841Z] ERROR: coregi/14 on XXXX: Error - Fleetctl: listUnitFiles
Mar 31 18:48:25 prod-coreos-b-dfw-02 docker[3202]:     Error: ####################################################################
Mar 31 18:48:25 prod-coreos-b-dfw-02 docker[3202]: WARNING: fleetctl (0.9.0+git) is older than the latest registered
Mar 31 18:48:25 prod-coreos-b-dfw-02 docker[3202]: version of fleet found in the cluster (0.9.1). You are strongly
Mar 31 18:48:25 prod-coreos-b-dfw-02 docker[3202]: recommended to upgrade fleetctl to prevent incompatibility issues.
Mar 31 18:48:25 prod-coreos-b-dfw-02 docker[3202]: ####################################################################
Mar 31 18:48:25 prod-coreos-b-dfw-02 docker[3202]: at /src/node_modules/fleetctl/lib/executor.js:9:27
Mar 31 18:48:25 prod-coreos-b-dfw-02 docker[3202]: at ChildProcess.exithandler (child_process.js:646:7)
Mar 31 18:48:25 prod-coreos-b-dfw-02 docker[3202]: at ChildProcess.emit (events.js:98:17)
Mar 31 18:48:25 prod-coreos-b-dfw-02 docker[3202]: at maybeClose (child_process.js:756:16)
Mar 31 18:48:25 prod-coreos-b-dfw-02 docker[3202]: at Process.ChildProcess._handle.onexit (child_process.js:823:5)

Supervisord config path not specified

/usr/lib/python2.7/dist-packages/supervisor/options.py:295: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.

Recursive Listing of Keys

The list of keys shows the "directories", but does not show the children or provide any way to recurse through the etcd tree.

Show os version and release channel

We should add os version and release channel information about the host machine, into the machines view.

Currently we are using fleetctl to grab machine info using list-machines, but the information we want is not present. We need to find a solution into getting the information we want.

Is ui supposed to to be module.export or corgi?

Is ui supposed to to be coregi aka module.export?

See sample:

module.exports = {}
function test(){
    console.log('type:' + typeof(this))
    if(global === this) console.log('global')
    if(module.exports === this) console.log('exports')
}
module.exports.test = test;
test()
console.log('----')
module.exports.test();

Are you intending on having ui be short hand for module.exports and coregi?

If also noticed that ui.app was used frequently. Was message chaining avoided?

configurable base URL

could you pls add environment variable which would allowe to publish CoreGI non-root url path ?

like http:///coregi

thank you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.