Skip to content
Eru, a simple, stateless, flexible, production-ready orchestrator designed to easily integrate into existing workflows. Can run any virtualization things in long or short time.
Branch: master
Clone or download
Latest commit d33c278 Jul 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci use new footstone to make release Jul 22, 2018
3rdmocks separate docker engine with eru core, can support other executor now Feb 18, 2019
auth refactor all cluster APIs Nov 23, 2018
client add core client pkgs Nov 16, 2018
cluster refactor set-node api Jul 9, 2019
engine make sure corebuild files will be removed, and not remove twice by http Jul 4, 2019
lock fix all typos Dec 17, 2018
metrics feat: adding/list of nodes with storage. Jun 21, 2019
rpc batch get for etcd Jul 19, 2019
scheduler feat: adding/list of nodes with storage. Jun 21, 2019
source fix all typos Dec 17, 2018
store refactor etcdv3 store Jul 19, 2019
tools use new data struct in etcd, use tools/updatev2.go for updating Apr 23, 2019
types batch get for etcd Jul 19, 2019
utils feat: storage alloc. Jun 21, 2019
versioninfo fix all typos Dec 17, 2018
.gitignore add mock engine, for some system testing Jun 13, 2019
Dockerfile use debian sid slim replace alpine Jun 24, 2019
Dockerfile.alpine use debian sid slim replace alpine Jun 24, 2019
LICENSE bump version Sep 11, 2017
Makefile feat: storage alloc. Jun 21, 2019
README.md README: Mac install 0.27.x libgit2 for now. Jun 12, 2019
VERSION add ttl to deploy status Jul 4, 2019
app.yaml switch to go module, upgrade go to 1.12.1 Mar 22, 2019
core.go minor change to embeded storage Apr 26, 2019
core.yaml.sample support etcd with tls and etcd auth Jun 28, 2019
eru-core.service change core config file in /etc/eru Sep 16, 2017
go.mod feat: storage from engine INFO. Jun 24, 2019
go.sum feat: storage from engine INFO. Jun 24, 2019
make-release separate docker engine with eru core, can support other executor now Feb 18, 2019

README.md

Eru

CircleCI Codacy Badge

Eru is a stateless, flexible, production-ready cluster scheduler designed to easily integrate into existing workflows. Eru can run any containerized things in long or short time. This project is Eru Core. The Core use for resource allocation and manage containers lifetime.

Testing

Run make test

Compile

  • Run make build if you want binary.
  • Run ./make-rpm if you want RPM for el7. However we use FPM for packing, so you have to prepare it first.

Developing

Run make deps for generating vendor dir.

Under macOS we have to install libgit2 manually, if you using Homebrew please install like this:

# need to specify libgit2 version 0.27.x because git2go not supported lastest 0.28: https://github.com/libgit2/git2go/issues/502
HOMEBREW_NO_AUTO_UPDATE=1 brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/19dee2bd48ec0443e1f4a90bbdae0b9b8ef7da98/Formula/libgit2.rb
make deps

In linux you can reference our image's Dockerfile. Our server were running under CentOS 7, so if your server was different, something will not same.

On other hand, you can use our footstone image for testing and compiling.

GRPC

Generate golang & python 3 code

go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
pip install -U grpcio-tools
make grpc

Run it

$ eru-core --config /etc/eru/core.yaml.sample

or

$ export ERU_CONFIG_PATH=/path/to/core.yaml
$ eru-core

Dockerized Core manually

Image: projecteru2/core

docker run -d \
  --name eru_core_$HOSTNAME \
  --net host \
  --restart always \
  -v <HOST_CONFIG_DIR_PATH>:/etc/eru \
  projecteru2/core \
  /usr/bin/eru-core

Build and Deploy by Eru itself

After we implemented bootstrap in eru2, now you can build and deploy eru with cli tool.

  1. Test source code and build image
<cli_execute_path> --name <image_name> https://goo.gl/KTGJ9k

Make sure you can clone code. After the fresh image was named and tagged, it will be auto pushed to the remote registry which was defined in config file.

  1. Deploy core itself
<cli_execute_path> container deploy --pod <pod_name> [--node <node_name>] --entry core --network <network_name> --image <projecteru2/core>|<your_own_image> --file <core_config_yaml>:/core.yaml [--count <count_num>] [--cpu 0.3 | --mem 1024000000] https://goo.gl/KTGJ9k

Now you will find core was started in nodes.

You can’t perform that action at this time.