This repository contains the new infrastructure architecture as described in the document prepared by Animeshon and approved by the owners of the project.
This repository contains the PoC for Open Data Hub's new architecture.
The PoC is designed and developed to run in two different environments:
- Locally for development purposes
- In this configuration, the architecture is orchestrated with
docker-compose
- All
camel routes
are powered by Java Quarkus applications - The
notifier
is powered by a Node.js application RabbitMQ
is powered by the docker container rabbitmq:3-management which provides the Admin Pannel out of the box
- In this configuration, the architecture is orchestrated with
- In the cloud as Staging environment
- In this configuration, the architecture is orchestrated with
kubernetes
- All
camel routes
are powered by Camel K applications - The
notifier
is a dockerized Node.js application RabbitMQ
is deployed using RabbitMQ Cluster Operator for Kubernetes
- In this configuration, the architecture is orchestrated with
├── infrastructure │ ├── inbound │ │ └── src/main/java/opendatahub │ │ ├── writer/WriterRoute.java │ ├── notifier │ │ └── src │ │ ├── changeStream.js │ │ └── main.js │ ├── router │ │ └── src/main/java/opendatahub/outbound │ │ ├── fastline/FastlineRoute.java │ │ ├── update/UpdateRoute.java │ │ └── router/RouterRoute.java │ ├── transformer │ │ └── src/main/java/opendatahub/transformer │ │ ├── ConsumerImpl.java │ │ ├── Main.java │ │ └── Poller.java
We provide a docker-compose
file to start the architecture locally.
To run the cluster just
docker compose up
in the main folder. It will build and spin up all components.
Service | Address |
---|---|
RabbitMQ Panel | localhost:15672 |
RabbitMQ AMPQ 0-9-1 port | localhost:5672 |
MongoDB | localhost:27017 |
To connect to the MongoDB deployment we suggest using Compass. Be aware that being the deployment a Replica Set
, the URI string must be properly configured (Doc) and you have to check Direct Connection in the Advanced Connection Options of Compass.
To use the Change Stream feature, the MongoDB deployment MUST be deployed as ReplicaSet
The following section is dedicated to the troubleshooting of known or common issues.
There are a number of common issues related to docker-compose that might prevent the correct setup of the local environment. Verify the following configurations to be appropriate depending on your local runtime environment and operating system:
- The
docker
anddocker-compose
versions are up-to-date - The
docker
caches are not interfering with a newer configuration (rundocker system prune --all
to delete all volumes, images, and containers) - The branch is up-to-date (run
git pull
) - The permissions assigned to the mounted volumes (folders) on your host are valid (MongoDB is especially known to generate issues with the permissions)
- Windows line endings are not interfering with bash scripts and tools configurations (run
git rm --cached -r . && git reset --hard
to force line endings normalization) - this issue usually affects only builds on Windows systems, please read visit the official Git documentation to learn more about gitattributes and line endings normalization.