Monorepo consolidation: workspace, shared types, transport plans, docker/swam assets
This commit is contained in:
132
swarm/stacks/platform.yml
Normal file
132
swarm/stacks/platform.yml
Normal file
@@ -0,0 +1,132 @@
|
||||
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: cloudlysis/gateway: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: cloudlysis/aggregate: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: cloudlysis/projection: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: cloudlysis/runner: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: cloudlysis/runner: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:
|
||||
Reference in New Issue
Block a user