blob: 50ff2937cc09cbfe569cd6b753b5fecc6aef611b [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
version: '3'
services:
controller:
image: airavata/controller
restart: always
depends_on:
- zookeeper
- db
- kafka
- keycloak
environment:
- zookeeper.server.connection=zookeeper:2181
command: ["/tmp/wait-for-it.sh", "zookeeper:2181", "--" , "/opt/apache-airavata-controller/bin/controller.sh"]
apiserver:
image: airavata/api-server
restart: always
depends_on:
- zookeeper
- db
- kafka
- keycloak
- rabbitmq
links:
- "keycloak:airavata.host"
ports:
- "8930:8930"
- "7878:7878"
- "8962:8962"
- "8960:8960"
- "8970:8970"
volumes:
- ../resources/keystores:/opt/keystores
environment:
- registry.jdbc.driver=org.mariadb.jdbc.Driver
- registry.jdbc.url=jdbc:mariadb://db:3306/experiment_catalog
- registry.jdbc.user=root
- registry.jdbc.password=123456
- start.derby.server.mode=false
- validationQuery=SELECT 1 from CONFIGURATION
- enable.sharing=true
- default.registry.user=default-admin
- default.registry.password=123456
- default.registry.gateway=default
- default.registry.oauth.client.id=pga
- default.registry.oauth.client.secret=9790c8c4-7d9b-4ccc-a820-ca5aac38d2ad
- super.tenant.gatewayId=default
- cluster.status.monitoring.enable=false
- cluster.status.monitoring.repeat.time=18000
- appcatalog.jdbc.driver=org.mariadb.jdbc.Driver
- appcatalog.jdbc.url=jdbc:mariadb://db:3306/app_catalog
- appcatalog.jdbc.user=root
- appcatalog.jdbc.password=123456
- appcatalog.validationQuery=SELECT 1 from CONFIGURATION
- replicacatalog.jdbc.driver=org.mariadb.jdbc.Driver
- replicacatalog.jdbc.url=jdbc:mariadb://db:3306/replica_catalog
- replicacatalog.jdbc.user=root
- replicacatalog.jdbc.password=123456
- replicacatalog.validationQuery=SELECT 1 from CONFIGURATION
- workflowcatalog.jdbc.driver=org.mariadb.jdbc.Driver
- workflowcatalog.jdbc.url=jdbc:mariadb://db:3306/workflow_catalog
- workflowcatalog.jdbc.user=root
- workflowcatalog.jdbc.password=123456
- workflowcatalog.validationQuery=SELECT 1 from CONFIGURATION
- sharingcatalog.jdbc.driver=org.mariadb.jdbc.Driver
- sharingcatalog.jdbc.url=jdbc:mariadb://db:3306/sharing_catalog
- sharingcatalog.jdbc.user=root
- sharingcatalog.jdbc.password=123456
- sharingcatalog.validationQuery=SELECT 1 from CONFIGURATION
- sharing_server=org.apache.airavata.sharing.registry.server.SharingRegistryServer
- sharing.registry.server.host=0.0.0.0
- sharing.registry.server.port=7878
- apiserver.class=org.apache.airavata.api.server.AiravataAPIServer
- apiserver.host=0.0.0.0
- apiserver.port=8930
- orchestrator=org.apache.airavata.orchestrator.server.OrchestratorServer
- orchestrator.server.host=0.0.0.0
- orchestrator.server.port=8940
- orchestrator.server.min.threads=50
- job.validators=org.apache.airavata.orchestrator.core.validator.impl.BatchQueueValidator,org.apache.airavata.orchestrator.core.validator.impl.ExperimentStatusValidator
- enable.validation=true
- host.scheduler=org.apache.airavata.orchestrator.core.schedule.DefaultHostScheduler
- regserver=org.apache.airavata.registry.api.service.RegistryAPIServer
- regserver.server.host=localhost
- regserver.server.port=8970
- regserver.server.min.threads=50
- job.notification.enable=true
- job.notification.emailids=
- credential.store.keystore.url=/opt/keystores/airavata.sym.p12
- credential.store.keystore.alias=airavata
- credential.store.keystore.password=airavata
- credential.store.jdbc.url=jdbc:mariadb://db:3306/credential_store
- credential.store.jdbc.user=root
- credential.store.jdbc.password=123456
- credential.store.jdbc.driver=org.mariadb.jdbc.Driver
- credential.store.server.host=0.0.0.0
- credential.store.server.port=8960
- credential.store.class=org.apache.airavata.credential.store.server.CredentialStoreServer
- credential.store.jdbc.validationQuery=SELECT 1 from CONFIGURATION
- rabbitmq.broker.url=amqp://guest:guest@rabbitmq:5672/develop
- rabbitmq.status.exchange.name=status_exchange
- rabbitmq.process.exchange.name=process_exchange
- rabbitmq.experiment.exchange.name=experiment_exchange
- durable.queue=false
- prefetch.count=200
- embedded.zk=false
- zookeeper.server.connection=zookeeper:2181
- security.manager.class=org.apache.airavata.service.security.KeyCloakSecurityManager
- TLS.enabled=true
- TLS.client.timeout=10000
- keystore.path=/opt/keystores/airavata.p12
- keystore.password=airavata
- authz.cache.enabled=true
- authz.cache.manager.class=org.apache.airavata.service.security.authzcache.DefaultAuthzCacheManager
- in.memory.cache.size=1000
- profile.service.server.host=0.0.0.0
- profile.service.server.port=8962
- profile_service.class=org.apache.airavata.service.profile.server.ProfileServiceServer
- profile.service.jdbc.url=jdbc:mariadb://db:3306/profile_service
- profile.service.jdbc.user=root
- profile.service.jdbc.password=123456
- profile.service.jdbc.driver=org.mariadb.jdbc.Driver
- profile.service.validationQuery=SELECT 1
- iam.server.url=https://airavata.host:8443
- iam.server.super.admin.username=admin
- iam.server.super.admin.password=admin
- db_event_manager.class=org.apache.airavata.db.event.manager.DBEventManagerRunner
- thrift.client.pool.abandoned.removal.enabled=true
command: ["/tmp/wait-for-it.sh", "db:3306", "--", "/tmp/wait-for-it.sh", "rabbitmq:5672", "--" , "/opt/apache-airavata-api-server/bin/airavata-server-start.sh", "api-orch"]
prewm:
image: airavata/pre-wm
restart: always
depends_on:
- zookeeper
- db
- kafka
- keycloak
- apiserver
- rabbitmq
environment:
- zookeeper.server.connection=zookeeper:2181
- regserver.server.host=apiserver
- rabbitmq.broker.url=amqp://guest:guest@rabbitmq:5672/develop
- pre.workflow.manager.loadbalance.clusters=false
command: ["/tmp/wait-for-it.sh", "zookeeper:2181", "--", "/tmp/wait-for-it.sh", "apiserver:8970", "--" , "/tmp/wait-for-it.sh", "rabbitmq:5672", "--", "/opt/apache-airavata-pre-wm/bin/pre-wm.sh"]
participant:
image: airavata/participant
restart: always
depends_on:
- zookeeper
- db
- kafka
- keycloak
- apiserver
- rabbitmq
environment:
- zookeeper.server.connection=zookeeper:2181
- regserver.server.host=apiserver
- rabbitmq.broker.url=amqp://guest:guest@rabbitmq:5672/develop
- credential.store.server.host=apiserver
- email.based.monitor.address=CHANGEME
- enable.realtime.monitor=false
- profile.service.server.host=apiserver
- profile.service.server.port=8962
command: ["/tmp/wait-for-it.sh", "zookeeper:2181", "--", "/tmp/wait-for-it.sh", "apiserver:8970", "--" , "/tmp/wait-for-it.sh", "rabbitmq:5672", "--", "/opt/apache-airavata-participant/bin/participant.sh"]
emailmonitor:
image: airavata/email-monitor
restart: always
depends_on:
- zookeeper
- db
- kafka
- keycloak
- apiserver
- rabbitmq
environment:
- zookeeper.server.connection=zookeeper:2181
- regserver.server.host=apiserver
- regserver.server.port=8970
- email.based.monitor.address=CHANGEME
- email.based.monitor.password=CHANGEME
- kafka.broker.url=kafka:9092
command: ["/tmp/wait-for-it.sh", "zookeeper:2181", "--", "/tmp/wait-for-it.sh", "apiserver:8970", "--" , "/tmp/wait-for-it.sh", "kafka:9092", "--", "/opt/apache-airavata-email-monitor/bin/email-monitor.sh"]
db:
image: mariadb:10.4.13
environment:
MYSQL_ROOT_PASSWORD: 123456
ports:
- "3306:3306"
volumes:
- mariadb_data:/var/lib/mysql
keycloak:
image: keycloak/keycloak:24.0
environment:
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
command: ["start-dev", "--https-port=8443"]
ports:
- "8443:8443"
- "18080:8080"
rabbitmq:
image: rabbitmq:3.12.14-management
ports:
- "5672:5672"
- "15672:15672"
environment:
- RABBITMQ_DEFAULT_USER=guest
- RABBITMQ_DEFAULT_PASS=guest
command: >
bash -c "
rabbitmq-server &
until rabbitmqctl status > /dev/null 2>&1; do
echo 'Waiting for RabbitMQ to be ready...'
sleep 2
done
rabbitmqctl add_vhost develop
rabbitmqctl set_permissions -p develop guest '.*' '.*' '.*'
wait
"
zookeeper:
image: wurstmeister/zookeeper
hostname: zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
hostname: kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: kafka
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
postwm:
image: airavata/post-wm
restart: always
depends_on:
- zookeeper
- db
- kafka
- keycloak
- apiserver
- rabbitmq
environment:
- zookeeper.server.connection=zookeeper:2181
- regserver.server.host=apiserver
- rabbitmq.broker.url=amqp://guest:guest@rabbitmq:5672/develop
- post.workflow.manager.loadbalance.clusters=false
- kafka.broker.url=kafka:9092
command: ["/tmp/wait-for-it.sh", "zookeeper:2181", "--", "/tmp/wait-for-it.sh", "apiserver:8970", "--" , "/tmp/wait-for-it.sh", "rabbitmq:5672", "--", "/tmp/wait-for-it.sh", "kafka:9092", "--", "/opt/apache-airavata-post-wm/bin/post-wm.sh"]
volumes:
mariadb_data: