| # 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: |