This cloud computing base operator that consists of many different components designed with a microservices architecture, can be deployed in an Openshift cluster in order to run different kinds of calculations that require a total consumption of the resources of specific worker nodes.
Currently, it is being used to calculate a model that gives us a synthetic spectrum of uniformly rotating stars that is a far better representation of the observed data than a synthetic spectrum of non-rotating stars. This result will be compared to the data acquired by the ESA Hipparcos and ESA Gaia space missions, as well as those carried out by ground-based observatories.
A non-detailed design looks like:
The operator consists of different components, each responsible for trivial but specific tasks.
- Dispatcher
- Worker
- Result-collector
- Janitor
The dispatcher is responsible for creating the calculations and assign them to workers. A calculation can be created either from adding a value in the database (Redis is currently used) or by creating a new one from the dashboard.
This component is a deamonset that will choose a specific labeled node to run, with the purpose of executing the given commands. Currently each execution will run the atlas12 and synspec commands.
This component is responsible for gathering the results of each completed calculation and organize them in an NFS storage.
Because of the big amount of calculations that can be created in the cluster, this component is responsible for deleting any of the calculations that passed the retention time.
This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.
- Openshift 4.x cluster
- Network file server (NFS)
- Clone the repo and go to the folder
git clone https://github.com/vega-project/ccb-operator.git
cd ccb-operator
- Start the deployment using your nfs IP
make deploy NFS_SERVER_IP=0.0.0.0
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the GNU General Public License v3.0. See LICENSE
for more information.
Nikolaos Moraitis - @droslean - nmoraiti@redhat.com
Vega Project Link: https://github.com/vega-project/