Initial commit

This commit is contained in:
2018-02-05 12:49:10 +01:00
commit 441794fcf9
9 changed files with 797 additions and 0 deletions

10
.gitignore vendored Normal file
View File

@@ -0,0 +1,10 @@
.*
!.gitignore
settings.local.*
data
portainer
postgres
mesos-master
mesos-slave
woken/application.conf
woken/validation.conf

260
docker-compose.yml Normal file
View File

@@ -0,0 +1,260 @@
# Copyright (c) 2018-2018
# Data Intensive Applications and Systems Labaratory (DIAS)
# Ecole Polytechnique Federale de Lausanne
#
# All Rights Reserved.
#
# Permission to use, copy, modify and distribute this software and its
# documentation is hereby granted, provided that both the copyright notice
# and this permission notice appear in all copies of the software, derivative
# works or modified versions, and any portions thereof, and that both notices
# appear in supporting documentation.
#
# This code 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. THE AUTHORS AND ECOLE POLYTECHNIQUE FEDERALE DE LAUSANNE
# DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE
# USE OF THIS SOFTWARE.
version: '3'
networks:
local:
services:
zookeeper:
image: ${ZOOKEEPER_IMAGE}${ZOOKEEPER_VERSION}
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zookeeper:2888:3888
restart: unless-stopped # Used only by docker-compose
deploy: # Used only by docker stack
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
networks:
- local
# ports:
# - "${ZOOKEEPER_PORT1}:2181"
# - "${ZOOKEEPER_PORT2}:2888"
# - "${ZOOKEEPER_PORT3}:3888"
mesos-master:
image: ${MESOS_MASTER_IMAGE}${MESOS_MASTER_VERSION}
environment:
MESOS_PORT: 5050
MESOS_ZK: zk://zookeeper:${ZOOKEEPER_PORT1}/mesos
MESOS_QUORUM: 1
MESOS_REGISTRY: in_memory
MESOS_CLUSTER: local
MESOS_HOSTNAME: mesos-master
MESOS_LOG_DIR: /var/log/mesos
MESOS_WORK_DIR: /tmp/mesos
volumes:
- ${MESOS_MASTER_LOGS}:/var/log/mesos:rw
- ${MESOS_MASTER_TMP}:/tmp/mesos:rw
depends_on:
- zookeeper
restart: unless-stopped # Used only by docker-compose
deploy: # Used only by docker stack
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
networks:
- local
# ports:
# - "${MESOS_MASTER_PORT}:5050"
mesos-slave:
image: ${MESOS_SLAVE_IMAGE}${MESOS_SLAVE_VERSION}
environment:
MESOS_MASTER: zk://zookeeper:${ZOOKEEPER_PORT1}/mesos
MESOS_PORT: 5051
MESOS_LOG_DIR: /var/log/mesos
MESOS_WORK_DIR: /tmp/mesos
MESOS_CONTAINERIZERS: docker,mesos
MESOS_EXECUTOR_REGISTRATION_TIMEOUT: 5mins
MESOS_EXECUTOR_SHUTDOWN_GRACE_PERIOD: 90secs
MESOS_DOCKER_STOP_TIMEOUT: 60secs
MESOS_HOSTNAME: mesos-slave
MESOS_SWITCH_USER: 0
# see bug resolution for "Failed to determine the hierarchy where the subsystem freezer is attached" at https://github.com/eBayClassifiedsGroup/PanteraS/issues/142
MESOS_LAUNCHER: "posix"
# privileged: true
depends_on:
- zookeeper
- mesos-master
restart: unless-stopped # Used only by docker-compose
deploy: # Used only by docker stack
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
volumes:
- /sys:/sys:ro
- /var/run/docker.sock:/var/run/docker.sock:rw
- ${MESOS_SLAVE_LOGS}:/var/log/mesos:rw
- ${MESOS_SLAVE_TMP}:/tmp/mesos:rw
networks:
- local
# ports:
# - "${MESOS_SLAVE_PORT}:5051"
chronos:
image: ${CHRONOS_IMAGE}${CHRONOS_VERSION}
command: "--zk_hosts zookeeper:${ZOOKEEPER_PORT1} --master zk://zookeeper:${ZOOKEEPER_PORT1}/mesos --zk_timeout 30000"
environment:
PORT0: 4400
PORT1: 4401
depends_on:
- zookeeper
- mesos-slave
restart: unless-stopped # Used only by docker-compose
deploy: # Used only by docker stack
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
networks:
- local
# ports:
# - "${CHRONOS_PORT1}:4400"
# - "${CHRONOS_PORT2}:4401"
db:
image: ${DB_IMAGE}${DB_VERSION}
environment:
POSTGRES_USER: ${DB_USER_ADMIN}
POSTGRES_PASSWORD: ${DB_PASSWORD_ADMIN}
PGDATA: "/data/pgdata"
restart: unless-stopped # Used only by docker-compose
deploy: # Used only by docker stack
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
volumes:
- ${DB_DATA}:/data:rw
- ${DB_DATASETS}:/datasets:ro
networks:
- local
# ports:
# - "${DB_PORT}:5432"
woken:
image: ${WOKEN_IMAGE}${WOKEN_VERSION}
depends_on:
- chronos
# - db
restart: unless-stopped # Used only by docker-compose
deploy: # Used only by docker stack
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
volumes:
- ${WOKEN_CONF}:/opt/woken/config/application.conf:ro
networks:
- local
# ports:
# - "${WOKEN_PORT2}:${WOKEN_PORT2}"
# - "${WOKEN_PORT1}:${WOKEN_PORT1}"
woken-validation:
image: ${WOKEN_VALIDATION_IMAGE}${WOKEN_VALIDATION_VERSION}
depends_on:
- woken
restart: unless-stopped # Used only by docker-compose
deploy: # Used only by docker stack
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
volumes:
- ${WOKEN_VALIDATION_CONF}:/opt/woken-validation/config/application.conf:ro
networks:
- local
# ports:
# - "${WOKEN_VALIDATION_PORT}:${WOKEN_VALIDATION_PORT}"
backend:
image: ${PORTAL_BACKEND_IMAGE}${PORTAL_BACKEND_VERSION}
environment:
PORTAL_DB_URL: jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME4}
PORTAL_DB_SERVER: ${DB_HOST}:${DB_PORT}
PORTAL_DB_USER: ${DB_USER4}
PORTAL_DB_PASSWORD: ${DB_PASSWORD4}
META_DB_URL: jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME1}
META_DB_SERVER: ${DB_HOST}:${DB_PORT}
META_DB_USER: ${DB_USER1}
META_DB_PASSWORD: ${DB_PASSWORD1}
FEATURES_DB_URL: jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME2}
FEATURES_DB_SERVER: ${DB_HOST}:${DB_PORT}
FEATURES_DB_USER: ${DB_USER2}
FEATURES_DB_PASSWORD: ${DB_PASSWORD2}
FEATURES_DB_MAIN_TABLE: cde_features_a
CONTEXT_PATH: /services
AUTHENTICATION: ${PORTAL_BACKEND_AUTHENTICATION}
CLIENT_ID: ${PORTAL_BACKEND_CLIENT_ID}
CLIENT_SECRET: ${PORTAL_BACKEND_CLIENT_SECRET}
TOKEN_URI: https://services.humanbrainproject.eu/oidc/token
AUTH_URI: https://services.humanbrainproject.eu/oidc/authorize
USER_INFO_URI: https://services.humanbrainproject.eu/oidc/userinfo
FRONTEND_LOGIN_URL: ${PORTAL_FRONTEND_URL}/services/login/hbp
FRONTEND_AFTER_LOGIN_URL: ${PORTAL_FRONTEND_URL}/home
FRONTEND_AFTER_LOGOUT_URL: ${PORTAL_FRONTEND_URL}/services/login/hbp
WOKEN_HOST: ${WOKEN_HOST}
WOKEN_PORT: ${WOKEN_PORT1}
WOKEN_AKKA_PATH: /user/entrypoint
EXAREME_URL: ${WOKEN_EXAREME_URL}
LOGGING_LEVEL_WEB: DEBUG
LOGGING_LEVEL_HIBERNATE: WARN
SESSION_TIMEOUT: 2592000
VIRTUAL_HOST: backend
VIRTUAL_PORT: 8080
depends_on:
# - db
- woken
restart: unless-stopped # Used only by docker-compose
deploy: # Used only by docker stack
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
networks:
- local
# ports:
# - "8080:8080"
# - "8089:8089"
frontend:
image: ${PORTAL_FRONTEND_IMAGE}${PORTAL_FRONTEND_VERSION}
environment:
WORKER_PROCESSES: 1
ERROR_LOG_LEVEL: warn
PORTAL_VIRTUAL_HOST: frontend
PORTAL_BACKEND_SERVER: backend:8080
PORTAL_BACKEND_CONTEXT: services
depends_on:
- backend
restart: unless-stopped # Used only by docker-compose
deploy: # Used only by docker stack
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
networks:
- local
ports:
- "${PORTAL_FRONTEND_PORT}:80"

77
load_data.sh Executable file
View File

@@ -0,0 +1,77 @@
#!/bin/sh
# Copyright (c) 2018-2018
# Data Intensive Applications and Systems Labaratory (DIAS)
# Ecole Polytechnique Federale de Lausanne
#
# All Rights Reserved.
#
# Permission to use, copy, modify and distribute this software and its
# documentation is hereby granted, provided that both the copyright notice
# and this permission notice appear in all copies of the software, derivative
# works or modified versions, and any portions thereof, and that both notices
# appear in supporting documentation.
#
# This code 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. THE AUTHORS AND ECOLE POLYTECHNIQUE FEDERALE DE LAUSANNE
# DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE
# USE OF THIS SOFTWARE.
# Import settings
. ./settings.sh
# 1. Create all the DB at once
echo "Create databases..."
db_id=$(docker run --rm -d \
-e POSTGRES_USER="${DB_USER_ADMIN}" \
-e POSTGRES_PASSWORD="${DB_PASSWORD_ADMIN}" \
-e PGDATA="/data/pgdata" \
-v ${DB_DATA}:/data:rw \
-v ${DB_DATASETS}:/datasets:ro \
--network=${MIP_PRIVATE_NETWORK} \
--name ${DB_HOST} \
${DB_IMAGE}${DB_VERSION}
)
db_list=""
for f in ${DB_CREATE_LIST}
do
eval "t=\"\
-e DB${f}=\${DB_NAME${f}} \
-e USER${f}=\${DB_USER${f}} \
-e PASSWORD${f}=\${DB_PASSWORD${f}}\""
db_list="$db_list $t"
done
sleep 5
docker run --rm \
-e DB_HOST="${DB_HOST}" \
-e DB_PORT="${DB_PORT}" \
-e DB_ADMIN_USER="${DB_USER_ADMIN}" \
-e DB_ADMIN_PASSWORD="${DB_PASSWORD_ADMIN}" \
${db_list} \
--network=${MIP_PRIVATE_NETWORK} \
${DB_CREATE_IMAGE}${DB_CREATE_VERSION}
# 2. Pre-populate the DBs which needs it
for f in ${DB_SETUP_LIST}
do
eval "img=\${${f}_IMAGE}"
eval "version=\${${f}_VERSION}"
eval "db=\${${f}_DB}"
echo
echo "Executing ${img}${version}"
docker run --rm \
-e FLYWAY_HOST="${DB_HOST}" \
-e FLYWAY_PORT="${DB_PORT}" \
-e FLYWAY_USER="${DB_USER_ADMIN}" \
-e FLYWAY_PASSWORD="${DB_PASSWORD_ADMIN}" \
-e FLYWAY_DATABASE_NAME="${db}" \
--network=${MIP_PRIVATE_NETWORK} \
${img}${version}
done
docker stop ${db_id}

33
run.sh Executable file
View File

@@ -0,0 +1,33 @@
#!/bin/sh
# Copyright (c) 2018-2018
# Data Intensive Applications and Systems Labaratory (DIAS)
# Ecole Polytechnique Federale de Lausanne
#
# All Rights Reserved.
#
# Permission to use, copy, modify and distribute this software and its
# documentation is hereby granted, provided that both the copyright notice
# and this permission notice appear in all copies of the software, derivative
# works or modified versions, and any portions thereof, and that both notices
# appear in supporting documentation.
#
# This code 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. THE AUTHORS AND ECOLE POLYTECHNIQUE FEDERALE DE LAUSANNE
# DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE
# USE OF THIS SOFTWARE.
# Import settings
. ./settings.sh
for f in ${WOKEN_CONF} ${WOKEN_VALIDATION_CONF}
do
for v in $(grep '^:' settings.default.sh|cut -c 5- |cut -d: -f1)
do
eval "t=\"s#${v}#\${${v}}#g\""
script="${script}${t};"
sed -e "${script}" $f.in > $f
done
done
docker-compose $@

115
settings.default.sh Normal file
View File

@@ -0,0 +1,115 @@
: ${SHOW_SETTINGS:=false}
#############################################################################
# DATABASES
# Service Parameters
: ${DB_IMAGE:="postgres"}
: ${DB_VERSION:=":9.6.5-alpine"}
: ${DB_HOST:="db"}
: ${DB_PORT:="5432"}
: ${DB_DATA:="${PWD}/postgres"}
: ${DB_DATASETS:="${PWD}/datasets"}
: ${DB_USER_ADMIN:="postgres"}
: ${DB_PASSWORD_ADMIN:="test"}
# Databases Definitions:
# 1. To add a new DB, copy the last 3 lines below and increment the id
# 2. Add the new number in DB_CREATE_LIST
: ${DB_NAME1:="meta"}
: ${DB_USER1:="meta"}
: ${DB_PASSWORD1:="metapwd"}
: ${DB_NAME2:="features"}
: ${DB_USER2:="features"}
: ${DB_PASSWORD2:="featurespwd"}
: ${DB_NAME3:="woken"}
: ${DB_USER3:="woken"}
: ${DB_PASSWORD3:="wokenpwd"}
: ${DB_NAME4:="portal"}
: ${DB_USER4:="portal"}
: ${DB_PASSWORD4:="portalpwd"}
# Database setup tools
: ${DB_CREATE_IMAGE:="hbpmip/create-databases"}
: ${DB_CREATE_VERSION:=":1.0.0"}
# List of databases to create
: ${DB_CREATE_LIST:="1 2 3 4"}
: ${WOKEN_SETUP_IMAGE:="hbpmip/woken-db-setup"}
: ${WOKEN_SETUP_VERSION:=":1.0.2"}
: ${WOKEN_SETUP_DB:=${DB_NAME3}}
: ${METADATA_SETUP_IMAGE:="hbpmip/sample-meta-db-setup"}
: ${METADATA_SETUP_VERSION:=":0.4.0"}
: ${METADATA_SETUP_DB:=${DB_NAME1}}
: ${DATA_SETUP_IMAGE:="hbpmip/sample-data-db-setup"}
: ${DATA_SETUP_VERSION:=":0.5.0"}
: ${DATA_SETUP_DB:=${DB_NAME2}}
# List of databases to populate
: ${DB_SETUP_LIST:="WOKEN_SETUP METADATA_SETUP DATA_SETUP"}
#############################################################################
: ${MIP_PRIVATE_NETWORK:="mip_local"}
: ${COMPOSE_PROJECT_NAME:="mip"}
: ${PORTAINER_IMAGE:="portainer/portainer"}
: ${PORTAINER_VERSION:=":latest"}
: ${PORTAINER_HOST:="portainer"}
: ${PORTAINER_PORT:="9000"}
: ${PORTAINER_DATA:="${PWD}/portainer"}
: ${PORTAINER_ENABLED:="true"}
#############################################################################
# Services
: ${ZOOKEEPER_IMAGE:="zookeeper"}
: ${ZOOKEEPER_VERSION:=":3.4.11"}
: ${ZOOKEEPER_PORT1:="2181"}
: ${ZOOKEEPER_PORT2:="2888"}
: ${ZOOKEEPER_PORT3:="3888"}
: ${MESOS_MASTER_IMAGE:="mesosphere/mesos-master"}
: ${MESOS_MASTER_VERSION:=":1.3.0"}
: ${MESOS_MASTER_PORT:="5050"}
: ${MESOS_MASTER_LOGS:="${PWD}/mesos-master/logs"}
: ${MESOS_MASTER_TMP:="${PWD}/mesos-master/tmp"}
: ${MESOS_SLAVE_IMAGE:="mesosphere/mesos-slave"}
: ${MESOS_SLAVE_VERSION:=":1.3.0"}
: ${MESOS_SLAVE_PORT:="5051"}
: ${MESOS_SLAVE_LOGS:="${PWD}/mesos-slave/logs"}
: ${MESOS_SLAVE_TMP:="${PWD}/mesos-slave/tmp"}
: ${CHRONOS_IMAGE:="mesosphere/chronos"}
: ${CHRONOS_VERSION:=":v3.0.2"}
: ${CHRONOS_HOST:="chronos"}
: ${CHRONOS_PORT1:="4400"}
: ${CHRONOS_PORT2:="4401"}
: ${WOKEN_IMAGE:="hbpmip/woken"}
: ${WOKEN_VERSION:=":2.1.4"}
: ${WOKEN_HOST:="woken"}
: ${WOKEN_CONF:="${PWD}/woken/application.conf"}
: ${WOKEN_PORT1:="8088"}
: ${WOKEN_PORT2:="8087"}
: ${WOKEN_EXAREME_URL:="http://prozac.madgik.di.uoa.gr:9090/mining/query"}
: ${WOKEN_VALIDATION_IMAGE:="hbpmip/woken-validation"}
: ${WOKEN_VALIDATION_VERSION:=":2.1.0"}
: ${WOKEN_VALIDATION_HOST:="woken-validation"}
: ${WOKEN_VALIDATION_PORT:="8082"}
: ${WOKEN_VALIDATION_CONF:="${PWD}/woken/validation.conf"}
: ${PORTAL_BACKEND_IMAGE:="hbpmip/portal-backend"}
: ${PORTAL_BACKEND_VERSION:=":2.5.4"}
: ${PORTAL_BACKEND_AUTHENTICATION:="0"}
: ${PORTAL_BACKEND_CLIENT_ID:="none"}
: ${PORTAL_BACKEND_CLIENT_SECRET:="none"}
: ${PORTAL_FRONTEND_IMAGE:="hbpmip/portal-frontend"}
: ${PORTAL_FRONTEND_VERSION:=":2.6.0"}
: ${PORTAL_FRONTEND_PORT:="80"}
: ${PORTAL_FRONTEND_URL:="http://172.16.22.176:80"}

39
settings.sh Normal file
View File

@@ -0,0 +1,39 @@
#Settings are taken in the following order of precedence:
# 1. Shell Environment, or on the command line
# 2. Node-specific settings `settings.local.<Alias>.sh`
if test ! -z "$1" && test -f ./settings.local.$1.sh;
then
. ./settings.local.$1.sh;
fi
# 3. Federation-specific `settings.local.sh`
if test -f ./settings.local.sh;
then
. ./settings.local.sh;
fi
# 4. Default settings `settings.default.sh`
if test -f ./settings.default.sh;
then
. ./settings.default.sh;
fi
if ${SHOW_SETTINGS};
then
echo "Current settings:"
fi
for v in $(grep '^:' settings.default.sh|cut -c 5- |cut -d: -f1)
do
eval "export $v=\"\$$v\""
if ${SHOW_SETTINGS};
then
eval "echo $v=\$$v"
fi
done
if ${SHOW_SETTINGS};
then
echo
fi

49
setup.sh Executable file
View File

@@ -0,0 +1,49 @@
#!/bin/sh
# Copyright (c) 2018-2018
# Data Intensive Applications and Systems Labaratory (DIAS)
# Ecole Polytechnique Federale de Lausanne
#
# All Rights Reserved.
#
# Permission to use, copy, modify and distribute this software and its
# documentation is hereby granted, provided that both the copyright notice
# and this permission notice appear in all copies of the software, derivative
# works or modified versions, and any portions thereof, and that both notices
# appear in supporting documentation.
#
# This code 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. THE AUTHORS AND ECOLE POLYTECHNIQUE FEDERALE DE LAUSANNE
# DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE
# USE OF THIS SOFTWARE.
# Import settings
. ./settings.sh
# If requested, setup portainer:
if ${PORTAINER_ENABLED}
then
# Permanent storage for Portainer
mkdir -p ${PORTAINER_DATA}
docker run -d -p ${PORTAINER_PORT}:9000 \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock:rw \
-v ${PORTAINER_DATA}:/data:rw \
--name ${COMPOSE_PROJECT_NAME}_${PORTAINER_HOST} \
${PORTAINER_IMAGE}${PORTAINER_VERSION}
fi
# Permanent storage for the Databases
mkdir -p ${DB_DATA}
mkdir -p ${DB_DATASETS}
sudo chown -R 999:999 ${DB_DATA} ${DB_DATASETS}
# Permanent storage for Mesos
mkdir -p ${MESOS_MASTER_LOGS}
mkdir -p ${MESOS_MASTER_TMP}
mkdir -p ${MESOS_SLAVE_LOGS}
mkdir -p ${MESOS_SLAVE_TMP}
# Preload the databases
./load_data.sh

172
woken/application.conf.in Normal file
View File

@@ -0,0 +1,172 @@
# Sample configuration for local execution of the woken
akka {
log-dead-letters = 1
log-dead-letters-during-shutdown = off
loglevel = INFO
actor {
provider = "akka.cluster.ClusterActorRefProvider"
debug {
receive = on
autoreceive = off
lifecycle = on
fsm = on
unhandled = on
event-stream = off
}
}
remote {
log-sent-messages = off
log-received-messages = off
log-remote-lifecycle-events = off
maximum-payload-bytes = 10000000 bytes
enabled-transports = [ "akka.remote.netty.tcp" ]
netty.tcp {
hostname = WOKEN_HOST # external (logical) hostname
port = WOKEN_PORT1 # external (logical) port
bind-hostname = localhost # internal (bind) hostname
bind-port = WOKEN_PORT1 # internal (bind) port
message-frame-size = 10000000b
send-buffer-size = 10000000b
receive-buffer-size = 10000000b
maximum-frame-size = 10000000b
}
}
cluster {
seed-nodes = [ "akka.tcp://woken@WOKEN_HOST:WOKEN_PORT1" ]
roles = [ "woken" ]
}
}
spray.can.server {
idle-timeout = 300s
request-timeout = 180s
ssl-encryption = off
ssl-tracing = on
}
spray.can.client {
request-timeout = 20s
chunkless-streaming = off
connecting-timeout = 10s
}
spray.can.host-connector {
max-connections = 5
host-connector.max-retries = 2
pipelining = on
}
app {
clusterSystemName = "woken"
jobServiceName = "job-service"
dockerBridgeNetwork = "MIP_PRIVATE_NETWORK"
networkInterface = "0.0.0.0"
webServicesPort = WOKEN_PORT2
master.router {
actors {
mining.limit = 5
experiment.limit = 5
}
}
basicAuth {
username = "admin"
password = "WoKeN"
}
}
jobs {
node = "federation"
owner = "admin@mip.chuv.ch"
chronosServerUrl = "http://CHRONOS_HOST:CHRONOS_PORT1"
featuresDb = "DB_NAME2"
featuresTable = "cde_features_a"
resultDb = "DB_NAME3"
metaDb = "DB_NAME1"
}
db {
woken {
jdbc_driver = "org.postgresql.Driver"
jdbc_url = "jdbc:postgresql://DB_HOST:DB_PORT/DB_NAME3"
host = "DB_HOST"
port = DB_PORT
user = "DB_USER3"
password = "DB_PASSWORD3"
}
features {
jdbc_driver = "org.postgresql.Driver"
jdbc_url = "jdbc:postgresql://DB_HOST:DB_PORT/DB_NAME2"
host = "DB_HOST"
port = DB_PORT
user = "DB_USER2"
password = "DB_PASSWORD2"
}
metadata {
jdbc_driver = "org.postgresql.Driver"
jdbc_url = "jdbc:postgresql://DB_HOST:DB_PORT/DB_NAME1"
host = "DB_HOST"
port = DB_PORT
user = "DB_USER1"
password = "DB_PASSWORD1"
}
}
# The actual Algorithm Library
algorithms {
histograms = {
dockerImage = "hbpmip/python-histograms:0.3.6"
predictive = false
}
statisticsSummary = {
dockerImage = "hbpmip/r-summary-stats:2afe249"
predictive = false
}
anova = {
dockerImage = "hbpmip/python-anova:0.3.6"
predictive = false
}
linearRegression = {
dockerImage = "hbpmip/python-linear-regression:0.0.7"
predictive = false
}
knn = {
dockerImage = "hbpmip/java-rapidminer-knn:0.2.1"
predictive = true
}
naiveBayes = {
dockerImage = "hbpmip/java-rapidminer-naivebayes:0.2.0"
predictive = true
}
tSNE = {
dockerImage = "hbpmip/python-tsne:0.3.3"
predictive = true
maturity = "experimental"
}
ggparci = {
dockerImage = "hbpmip/r-ggparci:0.2.0"
predictive = false
maturity = "experimental"
}
}

42
woken/validation.conf.in Normal file
View File

@@ -0,0 +1,42 @@
akka {
loglevel = INFO
actor {
provider = "akka.cluster.ClusterActorRefProvider"
debug {
receive = on
autoreceive = on
lifecycle = on
fsm = on
}
}
remote {
maximum-payload-bytes = 10000000 bytes
enabled-transports = [ "akka.remote.netty.tcp" ]
netty.tcp {
hostname = WOKEN_VALIDATION_HOST # external (logical) hostname
port = WOKEN_VALIDATION_PORT # external (logical) port
bind-hostname = localhost # internal (bind) hostname
bind-port = WOKEN_VALIDATION_PORT # internal (bind) port
message-frame-size = 10000000b
send-buffer-size = 10000000b
receive-buffer-size = 10000000b
maximum-frame-size = 10000000b
}
}
cluster {
seed-nodes = [ "akka.tcp://woken@WOKEN_HOST:WOKEN_PORT1" ]
roles = [ "validation" ]
#role {
# woken.min-nr-of-members = 1
# validation.min-nr-of-members = 1
#}
}
}