docker compose setup #15
2
.gitignore
vendored
|
@ -2,3 +2,5 @@
|
|||
.idea/
|
||||
# name of executable when built using command 'go build'
|
||||
elektron
|
||||
# test log directory name.
|
||||
Elektron-Test-Run*
|
||||
|
|
62
Dockerfile
Normal file
|
@ -0,0 +1,62 @@
|
|||
# Copyright (C) 2018 spdfg
|
||||
#
|
||||
# This file is part of Elektron.
|
||||
#
|
||||
# Elektron is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Elektron is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
FROM ubuntu:xenial
|
||||
|
||||
RUN apt-get update && apt-get -y install \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
software-properties-common && \
|
||||
apt-get install -yq ssh git
|
||||
|
||||
RUN add-apt-repository ppa:deadsnakes/ppa && \
|
||||
apt-get update && \
|
||||
apt-get install -y python3.7
|
||||
|
||||
# Installing performance co-pilot.
|
||||
RUN apt-get install -y pcp pcp-gui
|
||||
|
||||
# The name of the elektron executable.
|
||||
ARG elektronexecutablename=elektron
|
||||
ENV ELEKTRON_EXECUTABLE_NAME=$elektronexecutablename
|
||||
|
||||
# HOST:PORT of the mesos master.
|
||||
ARG elektronmesosmasterlocation=localhost:5050
|
||||
ENV ELEKTRON_MESOS_MASTER_LOCATION=$elektronmesosmasterlocation
|
||||
|
||||
# Workload to be scheduled.
|
||||
ARG elektronworkload=workload_sample.json
|
||||
ENV ELEKTRON_WORKLOAD=$elektronworkload
|
||||
|
||||
# Prefix of the log directory.
|
||||
ARG elektronlogdirprefix=Elektron-Test-Run
|
||||
ENV ELEKTRON_LOGDIR_PREFIX=$elektronlogdirprefix
|
||||
|
||||
# Hostname/IP Address of the physical machine on which the docker containers are being run.
|
||||
# This is used to create the pcp config file.
|
||||
ARG hostip=""
|
||||
ENV HOST_IP=$hostip
|
||||
|
||||
# Creating directory into which the current directory is going to be mounted.
|
||||
RUN mkdir /elektron
|
||||
ADD ./ /elektron
|
||||
WORKDIR /elektron
|
||||
RUN chmod 777 /elektron/entrypoint.sh
|
||||
|
||||
ENTRYPOINT ["/elektron/entrypoint.sh"]
|
54
README.md
|
@ -55,14 +55,64 @@ If vendoring dependencies, then use the below commands after cloning _elektron_.
|
|||
|
||||
An alternative is to clone _elektron_ using the command `git clone --recurse-submodules git@github.com:spdfg/elektron.git`.
|
||||
|
||||
|
||||
## Build and Run
|
||||
## Build
|
||||
Compile the source code using the `go build` tool as shown below.
|
||||
```commandline
|
||||
go build -o elektron
|
||||
```
|
||||
Use the `-h` option to get information about other command-line options.
|
||||
|
||||
## Run
|
||||
Elektron can be run on bare-metal or using a docker-compose environment.
|
||||
### Bare-Metal
|
||||
Follow instructions [here](http://mesos.apache.org/documentation/latest/building/) to setup a Mesos cluster.
|
||||
In addition, the following software should be installed.
|
||||
|
||||
| Software | Target Machines |
|
||||
|-----------------------|---------------------------|
|
||||
| [Performance Co-Pilot](http://pcp.io/) | Mesos master nodes + agent nodes |
|
||||
| [Docker](https://docs.docker.com/install/linux/docker-ce/ubuntu/) | Mesos agent nodes |
|
||||
|
||||
If power consumption needs to be monitored, install the perfevent PMDA by following the instructions [here](https://pcp.io/man/man1/pmdaperfevent.1.html).
|
||||
_Note: You might need to update the exposed event names for RAPL depending on the architecture_.
|
||||
For example, update _perfevent.conf_ with the following events if measuring both CPU and DRAM power.
|
||||
```
|
||||
rapl::RAPL_ENERGY_PKG node
|
||||
rapl::RAPL_ENERGY_DRAM node
|
||||
```
|
||||
|
||||
**_Detail document on the bare-metal setup coming up soon!_**
|
||||
|
||||
### Docker-Compose
|
||||
For local testing purposes, the docker-compose setup can be used. Follow instructions [here](https://docs.docker.com/compose/install/) to install docker-compose.
|
||||
|
||||
The [entrypoint](./entrypoint.sh) script requires the IP address of the host machine to generate the [PCP config](./config).
|
||||
On a linux machine, the below command can be used to set it.
|
||||
```commandline
|
||||
export HOST_IP=$(curl ifconfig.me)
|
||||
```
|
||||
|
||||
#### Environment Variables
|
||||
The following are the environment variables required to run _elektron_.
|
||||
|
||||
| Environment Variable | Description | Commandline Option (if any) |
|
||||
|--------------------------------|-------------------------------|-----------------------------|
|
||||
| ELEKTRON_EXECUTABLE_NAME | Name of the elektron executable. Default = elektron |
|
||||
| ELEKTRON_MESOS_MASTER_LOCATION | HOST:PORT of the mesos master. Default = localhost:5050 | `-master` |
|
||||
| ELEKTRON_WORKLOAD | Filename of workload json to be scheduled. Default = workload_sample.json | `-workload` |
|
||||
| ELEKLTRON_LOGDIR_PREFIX | Prefix of the log directory generated. Default = Elektron-Test-Run | `-logPrefix` |
|
||||
|
||||
Use the below command to run elektron using the docker-compose setup.
|
||||
```commandline
|
||||
docker-compose run elektron
|
||||
```
|
||||
The Mesos master UI can be viewed from the host machine using _http://localhost:5050_.
|
||||
|
||||
If any other commandline options need to be specified, for example using the [bin-packing](./schedulers/bin-packing.go) scheduling policy, use the below command.
|
||||
```commandline
|
||||
docker-compose run elektron -schedPolicy bin-packing
|
||||
```
|
||||
|
||||
### Workload
|
||||
Use the `-workload` option to specify the location of the workload json file. Below is an example workload.
|
||||
```json
|
||||
|
|
103
docker-compose.yaml
Normal file
|
@ -0,0 +1,103 @@
|
|||
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
# Copyright (C) 2018 spdfg
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
#
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
# This file is part of Elektron.
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
#
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
# Elektron is free software: you can redistribute it and/or modify
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
# (at your option) any later version.
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
#
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
# Elektron is distributed in the hope that it will be useful,
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
# GNU General Public License for more details.
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
#
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
# You should have received a copy of the GNU General Public License
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
# along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
#
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
version: "2"
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
services:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
zk:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
image: rdelvalle/zookeeper
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
restart: on-failure
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
ports:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
- "2181:2181"
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
environment:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
ZK_CONFIG: tickTime=2000,initLimit=10,syncLimit=5,maxClientCnxns=128,forceSync=no,clientPort=2181
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
ZK_ID: 1
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
networks:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
elektron-cluster:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
ipv4_address: 19.16.4.3
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
logging:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
driver: none
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
mesos-master:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
image: rdelvalle/mesos-master:1.5.1
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
restart: on-failure
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
ports:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
- "5050:5050"
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
environment:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
MESOS_ZK: zk://19.16.4.3:2181/mesos
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
MESOS_QUORUM: 1
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
MESOS_HOSTNAME: localhost
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
MESOS_CLUSTER: test-cluster
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
MESOS_REGISTRY: replicated_log
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
MESOS_WORK_DIR: /tmp/mesos
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
networks:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
elektron-cluster:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
ipv4_address: 19.16.4.4
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
logging:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
driver: none
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
depends_on:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
- zk
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
mesos-agent:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
image: spdf/mesos-agent-elektron:1.5.1
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
pid: host
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
restart: on-failure
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
ports:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
- "5051:5051"
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
environment:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
MESOS_MASTER: zk://19.16.4.3:2181/mesos
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
MESOS_CONTAINERIZERS: mesos,docker
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
MESOS_ISOLATION: cgroups/cpu
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
MESOS_PORT: 5051
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
MESOS_HOSTNAME: localhost
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
MESOS_RESOURCES: ports(*):[11000-11999]
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
MESOS_SYSTEMD_ENABLE_SUPPORT: 'false'
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
MESOS_WORK_DIR: /tmp/mesos
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
networks:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
elektron-cluster:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
ipv4_address: 19.16.4.5
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
logging:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
driver: none
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
volumes:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
- /sys/fs/cgroup:/sys/fs/cgroup
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
depends_on:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
- mesos-master
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
elektron:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
image: spdf/elektron:v1
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
restart: on-failure
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
environment:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
ELEKTRON_EXECUTABLE_NAME: elektron
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
ELEKTRON_WORKLOAD: workload_sample.json
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
ELEKTRON_MESOS_MASTER_LOCATION: 19.16.4.4:5050
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
ELEKTRON_LOGDIR_PREFIX: Elektron-Test-Run
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
HOST_IP: ${HOST_IP}
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
networks:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
elektron-cluster:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
ipv4_address: 19.16.4.6
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
volumes:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
- ./:/elektron
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
depends_on:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
- mesos-agent
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
networks:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
elektron-cluster:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
ipam:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
config:
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
- subnet: 19.16.4.0/16
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
||||
gateway: 19.16.4.1
|
||||
![]() We own the organization We own the organization `spdf` at dockerhub https://hub.docker.com/orgs/spdf/repositories
![]() Good to know. I'll push the image there then. Good to know. I'll push the image there then.
|
33
entrypoint.sh
Executable file
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/env bash
|
||||
# Copyright (C) 2018 spdfg
|
||||
#
|
||||
# This file is part of Elektron.
|
||||
#
|
||||
# Elektron is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Elektron is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Elektron. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
# Accessing host machine's ip address.
|
||||
hostip=$HOST_IP
|
||||
|
||||
# setting up metrics to be monitored.
|
||||
# creating PCP config with the cpu and memory usage metrics to be monitored.
|
||||
cat >config <<EOL
|
||||
${hostip}:kernel.all.cpu.user
|
||||
${hostip}:kernel.all.cpu.sys
|
||||
${hostip}:kernel.all.cpu.idle
|
||||
${hostip}:mem.util.free
|
||||
${hostip}:mem.util.used
|
||||
EOL
|
||||
|
||||
./$ELEKTRON_EXECUTABLE_NAME -m $ELEKTRON_MESOS_MASTER_LOCATION -w $ELEKTRON_WORKLOAD -p $ELEKTRON_LOGDIR_PREFIX $@
|
We own the organization
spdf
at dockerhub https://hub.docker.com/orgs/spdf/repositories