Components¶
Overview¶
The 20+ services that make up the CEDAR ecosystem are grouped in three categories:
| Group | cedarcli group name |
|---|---|
| Infrastructure | nfrastructure |
| Microservices | microservices |
| Frontend | frontend |
We have docker-compose files for each of these groups.
The services can be started one-by-one, but we suggest starting them in groups.
Starting a given group the first time will build the all the Docker images, and will start the corresponding docker-compose file.
This can take around 5-10 minutes with an everyday internet connection.
Starting a given group the second time will use the preexisting Docker images and containers, leading to a faster startup.
Build & run¶
You should start each group in their own shell window, to be able to monitor the output separately:
cedarcli docker start <GROUPNAME>
Wait & debug¶
The system components have interdependencies. This means that after all the docker images are built, all the docker containers are started, some of them will wait for others before starting their internal components.
For instance Keycloak will wait for MySql to start first.
This also applies to microservices, which have a start order.
Important
Please allow the script to run until the output stabilizes.
You will see some red text in the output. Please note that some of this red text is normal. Even some warnings are expected.
However, if the console does not stabilize after a while, please scroll back, and try to analyze the error messages.
Stop a service group¶
You can press a single Ctrl + C to stop a docker-compose group gracefully.
Or you can, from a different shell, stop the group with the stop command:
cedarcli docker stop <GROUPNAME>
Infrastructure services¶
The infrastructure group provides the backend for CEDAR.
Start infra services¶
cedarcli docker start infrastructure
Check infra services¶
cedarcli status
You should see all the services in the Infrastructure (2nd) block in Running status.
If this is not the case, stop the infrastructure services using one of these ways:
- with the
cedarcli docker stop infrastructurecommand from another console - with a single Ctrl + C form the active console.
Then please try running them again. If this does not help, please analyze the output for indications of what went wrong.
Stop infra services¶
cedarcli docker stop infrastructure
Microservices¶
The microservices group provides the REST endpoints for CEDAR.
Start microservices¶
cedarcli docker start microservices
Check microservices¶
cedarcli status
You should see all the services in the Microservices (1st) block in Running status.
If this is not the case, please stop the microservices using one of these ways:
- with the
cedarcli docker stop microservicescommand from another console - with a single Ctrl + C form the active console.
Then please try running them again. If this does not help, please analyze the output for indications of what went wrong.
Stop microservices¶
cedarcli docker stop microservices
Frontends¶
The frontends group provides the four frontends for CEDAR (main CEDAR, OpenView, Monitoring and Bridging).
Start frontends¶
cedarcli docker start frontends
Check frontend¶
cedarcli status
You should see all the services in the Front End (4th) block in Running status.
If this is not the case, please stop the frontend using one of these ways:
- with the
cedarcli docker stop frontendscommand from another console - with a single Ctrl + C form the active console.
Then please try running them again. If this does not help, please analyze the output for indications of what went wrong.
Stop frontend¶
cedarcli docker stop frontends
Docker commands¶
While starting, stopping and evaluating CEDAR Docker, you could meet issues with the Docker images and containers.
Sometimes you could need to delete Docker resources (volumes, images, containers) in order to create/build them again.
To do so, we have a set of utility scripts that can help you:
Docker Containers¶
List the containers using:
docker ps -a
Remove the CEDAR-related containers using:
cedarcli docker remove containers
Docker Volumes¶
List the volumes using:
docker volume list
Remove the CEDAR-related volumes using:
cedarcli docker remove volumes
Or remove them one-by-one:
docker volume rm <volume_name>
Docker Images¶
List the images using:
docker images
Remove the CEDAR-related images using:
cedarcli docker remove images
Docker Networks¶
List the networks using:
docker network list
Remove the CEDAR network using:
cedarcli docker remove network
Remove all CEDAR-related Docker artifacts¶
Remove all CEDAR from Docker using:
cedarcli docker remove all