This repository started out as reproduction of this issue: Aidbox/Issues#501
It's now a 'production like' environment to reproduce issues observed in aidbox.
- linux
- docker, and your user must have access to the docker daemon
- terraform
- terragrunt
- Multibox license key, in the environment variable MB_LICENSE
Boot up the stack
cd stack
./start.sh
This creates:
- keycloak instance
- 2x multibox instances backed by the same database (HA mode multibox)
- nginx load balancer in front of the two instances
- multiple boxes within multibox
- client in keycloak for each box
- client-specific roles for each box, such as fhir_reader, fhir_writer
- client+service account+client id & secret in keycloak for customer-1 who will access their box.
- token introspector and access policies within boxes
- locust load tester
- prometheus metrics scraper
Locust web UI is available on: http://localhost:8089/ and host parameter & env vars are pre-set to access the 'aggregate' box in aidbox.
locustfile.py contains 2 tasks to put and get /fhir/Appointment resources. Press 'Start swarming' to load test.
Prometheus web UI is available on http://localhost:9090/ and is collecting metrics from the 2 multibox instances.
Note you can tear down the containers with the stop script
cd stack
./stop.sh