133 lines
3.5 KiB
YAML
133 lines
3.5 KiB
YAML
version: "3.9"
|
|
|
|
services:
|
|
nats:
|
|
image: nats:2.10-alpine
|
|
command: ["-js", "-m", "8222"]
|
|
ports:
|
|
- "4222:4222"
|
|
- "8222:8222"
|
|
volumes:
|
|
- nats_data:/data
|
|
deploy:
|
|
replicas: 1
|
|
|
|
gateway:
|
|
image: ${IMAGE_PREFIX:-cloudlysis}/gateway:${IMAGE_TAG:-dev}
|
|
environment:
|
|
GATEWAY_ADDR: 0.0.0.0:8080
|
|
GATEWAY_GRPC_ADDR: 0.0.0.0:8081
|
|
GATEWAY_STORAGE_PATH: /data/gateway.mdbx
|
|
GATEWAY_ROUTING_NATS_URL: nats://nats:4222
|
|
GATEWAY_ROUTING_NATS_BUCKET: gateway.routing
|
|
GATEWAY_ROUTING_NATS_KEY: routing.json
|
|
ports:
|
|
- "8080:8080"
|
|
- "8081:8081"
|
|
volumes:
|
|
- gateway_data:/data
|
|
deploy:
|
|
replicas: 2
|
|
update_config:
|
|
parallelism: 1
|
|
order: start-first
|
|
failure_action: rollback
|
|
rollback_config:
|
|
parallelism: 1
|
|
order: stop-first
|
|
|
|
aggregate:
|
|
image: ${IMAGE_PREFIX:-cloudlysis}/aggregate:${IMAGE_TAG:-dev}
|
|
environment:
|
|
AGGREGATE_NATS_URL: nats://nats:4222
|
|
AGGREGATE_STORAGE_PATH: /data
|
|
AGGREGATE_HTTP_ADDR: 0.0.0.0:8080
|
|
AGGREGATE_GRPC_ADDR: 0.0.0.0:50051
|
|
volumes:
|
|
- aggregate_data:/data
|
|
deploy:
|
|
replicas: 3
|
|
placement:
|
|
constraints:
|
|
- node.labels.tenant_range != ""
|
|
restart_policy:
|
|
condition: on-failure
|
|
|
|
projection:
|
|
image: ${IMAGE_PREFIX:-cloudlysis}/projection:${IMAGE_TAG:-dev}
|
|
environment:
|
|
PROJECTION_NATS_URL: nats://nats:4222
|
|
PROJECTION_STREAM_NAME: AGGREGATE_EVENTS
|
|
PROJECTION_DURABLE_NAME: projection
|
|
PROJECTION_STORAGE_PATH: /data
|
|
PROJECTION_MANIFEST_PATH: /config/projection-manifest.yaml
|
|
PROJECTION_MULTI_TENANT: "true"
|
|
PROJECTION_MAX_IN_FLIGHT: "128"
|
|
PROJECTION_ACK_TIMEOUT_MS: "30000"
|
|
PROJECTION_MAX_DELIVER: "10"
|
|
PROJECTION_CONSUMER_MODE: single
|
|
volumes:
|
|
- projection_data:/data
|
|
configs:
|
|
- source: projection_manifest
|
|
target: /config/projection-manifest.yaml
|
|
deploy:
|
|
replicas: 2
|
|
restart_policy:
|
|
condition: on-failure
|
|
update_config:
|
|
parallelism: 1
|
|
order: start-first
|
|
failure_action: rollback
|
|
|
|
runner_saga:
|
|
image: ${IMAGE_PREFIX:-cloudlysis}/runner:${IMAGE_TAG:-dev}
|
|
environment:
|
|
RUNNER_NATS_URL: nats://nats:4222
|
|
RUNNER_MODE: saga
|
|
RUNNER_HTTP_ADDR: 0.0.0.0:8080
|
|
RUNNER_STORAGE_PATH: /data/runner.mdbx
|
|
RUNNER_SAGA_MANIFEST_PATH: /config/sagas.yaml
|
|
RUNNER_EFFECTS_MANIFEST_PATH: /config/effects.yaml
|
|
volumes:
|
|
- runner_saga_data:/data
|
|
configs:
|
|
- source: runner_sagas
|
|
target: /config/sagas.yaml
|
|
- source: runner_effects
|
|
target: /config/effects.yaml
|
|
deploy:
|
|
replicas: 1
|
|
|
|
runner_effect:
|
|
image: ${IMAGE_PREFIX:-cloudlysis}/runner:${IMAGE_TAG:-dev}
|
|
environment:
|
|
RUNNER_NATS_URL: nats://nats:4222
|
|
RUNNER_MODE: effect
|
|
RUNNER_HTTP_ADDR: 0.0.0.0:8081
|
|
RUNNER_STORAGE_PATH: /data/runner.mdbx
|
|
RUNNER_EFFECTS_MANIFEST_PATH: /config/effects.yaml
|
|
volumes:
|
|
- runner_effect_data:/data
|
|
configs:
|
|
- source: runner_effects
|
|
target: /config/effects.yaml
|
|
deploy:
|
|
replicas: 1
|
|
|
|
configs:
|
|
projection_manifest:
|
|
file: ../../projection/projection-manifest.yaml
|
|
runner_sagas:
|
|
file: ../../runner/config/sagas.yaml
|
|
runner_effects:
|
|
file: ../../runner/config/effects.yaml
|
|
|
|
volumes:
|
|
aggregate_data:
|
|
gateway_data:
|
|
nats_data:
|
|
projection_data:
|
|
runner_effect_data:
|
|
runner_saga_data:
|