Files
cloudlysis/swarm/stacks/platform.yml
Vlad Durnea 1ab112438b
Some checks failed
images / build-and-push (push) Failing after 19s
ci / rust (push) Failing after 2m26s
ci / ui (push) Failing after 28s
Switch CI/CD to Gitea Actions and Gitea registry
2026-03-30 11:47:19 +03:00

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: