2022-08-24 20:31:44 +00:00
|
|
|
# Stack Orchestrator
|
2022-08-22 02:26:55 +00:00
|
|
|
|
2022-08-24 20:31:44 +00:00
|
|
|
Stack Orchestrator allows building and deployment of a Laconic stack on a single machine.
|
|
|
|
|
|
|
|
## Setup
|
|
|
|
### Developer Mode
|
|
|
|
Developer mode runs the orchestrator from a cloned git repository.
|
|
|
|
#### Prerequisites
|
|
|
|
1. Python3
|
|
|
|
1. Docker
|
|
|
|
#### Install
|
|
|
|
1. Clone this repository:
|
|
|
|
```
|
|
|
|
$ git clone (https://github.com/cerc-io/stack-orchestrator.git
|
|
|
|
```
|
|
|
|
1. Enter the project directory:
|
|
|
|
```
|
|
|
|
$ cd stack-orchestrator
|
|
|
|
```
|
|
|
|
1. Create and activate a venv:
|
|
|
|
```
|
|
|
|
$ python3 -m venv venv
|
|
|
|
$ source ./venv/bin/activate
|
|
|
|
(venv) $
|
|
|
|
```
|
|
|
|
1. Install the cli in edit mode:
|
|
|
|
```
|
|
|
|
$ pip install --editable .
|
|
|
|
```
|
|
|
|
1. Verify installation:
|
|
|
|
```
|
|
|
|
(venv) $ laconic-so
|
|
|
|
Usage: laconic-so [OPTIONS] COMMAND [ARGS]...
|
|
|
|
|
|
|
|
Laconic Stack Orchestrator
|
|
|
|
|
|
|
|
Options:
|
|
|
|
--quiet
|
|
|
|
--verbose
|
|
|
|
--dry-run
|
|
|
|
-h, --help Show this message and exit.
|
|
|
|
|
|
|
|
Commands:
|
|
|
|
build-containers build the set of containers required for a complete...
|
|
|
|
deploy-system deploy a stack
|
|
|
|
setup-repositories git clone the set of repositories required to build...
|
|
|
|
```
|
|
|
|
### CI Mode
|
|
|
|
_write-me_
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
There are three sub-commands: `setup-repositories`, `build-containers` and `deploy-system` that are generally run in order:
|
|
|
|
### Setup Repositories
|
|
|
|
Clones the set of git repositories necessary to build a system.
|
|
|
|
```
|
|
|
|
$ laconic-so --verbose setup-repositories
|
|
|
|
```
|
|
|
|
### Build Containers
|
|
|
|
Builds the set of docker container images required to run a system.
|
2022-08-22 02:26:55 +00:00
|
|
|
```
|
2022-08-24 20:31:44 +00:00
|
|
|
$ laconic-so --verbose build-containers
|
|
|
|
```
|
|
|
|
### Deploy System
|
|
|
|
Uses `docker compose` to deploy a system.
|
|
|
|
```
|
|
|
|
$ laconic-so --verbose deploy-system --include db-sharding,contract,ipld-eth-server,go-ethereum-foundry up
|
|
|
|
```
|
|
|
|
## Implementation
|
|
|
|
|
|
|
|
```
|
|
|
|
├── cluster-list.txt
|
|
|
|
├── compose
|
|
|
|
│ ├── docker-compose-contract.yml
|
|
|
|
│ ├── docker-compose-db-sharding.yml
|
|
|
|
│ ├── docker-compose-db.yml
|
|
|
|
│ ├── docker-compose-eth-statediff-fill-service.yml
|
|
|
|
│ ├── docker-compose-go-ethereum-foundry.yml
|
|
|
|
│ ├── docker-compose-ipld-eth-beacon-db.yml
|
|
|
|
│ ├── docker-compose-ipld-eth-beacon-indexer.yml
|
|
|
|
│ ├── docker-compose-ipld-eth-server.yml
|
|
|
|
│ ├── docker-compose-lighthouse.yml
|
|
|
|
│ └── docker-compose-prometheus-grafana.yml
|
|
|
|
├── config
|
|
|
|
│ └── ipld-eth-server
|
|
|
|
├── container-build
|
|
|
|
│ ├── cerc-eth-statediff-fill-service
|
|
|
|
│ ├── cerc-go-ethereum
|
|
|
|
│ ├── cerc-go-ethereum-foundry
|
|
|
|
│ ├── cerc-ipld-eth-beacon-db
|
|
|
|
│ ├── cerc-ipld-eth-beacon-indexer
|
|
|
|
│ ├── cerc-ipld-eth-db
|
|
|
|
│ ├── cerc-ipld-eth-server
|
|
|
|
│ ├── cerc-lighthouse
|
|
|
|
│ └── cerc-test-contract
|
|
|
|
├── container-image-list.txt
|
|
|
|
├── repository-list.txt
|
|
|
|
```
|
|
|
|
|
|
|
|
_write-more-of-me_
|