Eru
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.
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.
- Test source code and build image
<cli_execute_path> --name <image_name> http://bit.ly/EruCore
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.
- 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] http://bit.ly/EruCore
Now you will find core was started in nodes.