docker compose separation for client diversity, configuration management
๐ฏ Problem to be solved
background
At the moment, just a single client combination is provided for obol DVT configuration. e.g., nethermind-lighthouse-charon-lodestar-...
It does not make any problem itself. However, if all cluster members use the same configuration, which makes single point of failure against the same client.
In this approach(like MA to MSA), we need to divide a single docker-compose file to several docker-compose files.
It makes easy management, easy to use. These changes can be deployed for https://github.com/ObolNetwork/lido-charon-distributed-validator-node/
Obol can provides predefined multiple client configurations easily.
It allows operators
- to choose their own combination from predefined client configurations (by adding clients in docker-compose.yml they choose)
- be able to check changes easily
- easily update modified service file (merge conflict from changes. It will not prevent conflict, but it narrow conflict range)
example
current : single docker-compose.yml including nethermind-lighthouse-lodestar-charon-...
want: docker-compose.yml
include:
- el/docker-compose-el-nethermind.yml
- cl/docker-compose-cl-lighthouse.yml
- vc/docker-compose-vc-lodestar.yml
- docker-compose-mev-boost.yml
- docker-compose-charon.yml
- docker-compose-prometheus.yml
- docker-compose-grafana.yml
networks:
dvnode:
docker-compose-el-nethermind.yml, docker-compose-el-....yml
...
docker-compose-cl-lighthouse.yml, docker-compose-cl-....yml
...
docker-compose-vc-xxx.yml, docker-compose-vc-....yml
...
docker-compose-charon.yml ... ...
full example of concept : https://github.com/cosmostation/charon-distributed-validator-node/commit/0f64adde6dea27cafdb93e078cae57b00ca07c8b
expected work if these changes are acceptable
- It is required to configure docker-compose-xxx.yml for supported clients
- It needs to build new structures to accommodate current docker volume mount.
๐งช Tests
- [ ] Works in local docker-compose
- [ ] Has a attested on a testnet at least once