-
Notifications
You must be signed in to change notification settings - Fork 4
Shepherd Project Structure
This wiki helps to understand project structure, and its different modules.
- shepherd-core
- shepherd-model
- shepherd-client
- shepherd-web
- dominos-shepherd-client
This is the backbone of Shepherd backend.
- It majorly contains
- Web-Server, which serves Shepherd customer's requests.
- Node Executor
- Node Tracker
Shepherd-model contains all the contract information. For example, Models, exceptions, constants, enums. This helps to sync the contract between Shepherd-core, and Shepherd-client. This is consumed by shepherd-core and shepherd-client.
Shepherd-client is a SDK written in Java. Shepherd consumer can inject this module as dependency to request workflow execution from their application layer. Shepherd SDK communicates to Shepherd-Core through through REST protocol. It consumes shepherd-model as dependency, which helps to be in sync with Shepherd-Core regarding Contract.
Shepherd-web is a Web portal to manage all your endpoints, CI/CD pipeline through UI. Customer can also trigger workflow(Execute/Restart/Resume/Kill) from UI. This module is written in Node JS.
This is a sample module, which helps customers to write their APIs, and how to use Shepherd-SDK. Currently, we released Java SDK. Thats why, this module is in Java. It is using Jetty for its Web Server.
This module helps to setup Shepherd server on deployment boxes. It contains Ansible scripts which connects local-box with deployment boxes, and deploy Shepherd server after removing old ones.
This module helps to setup Dominos(Shepherd's Sample Customer) server on deployment boxes. It contains Ansible scripts which connects local-box with deployment boxes, and deploy Dominos server after removing old ones.