Work in Progress (WIP)
This repository hosts the Artefact Manager, a service currently under active development. The Artefact Manager is responsible for managing artefacts, supporting operations such as retrieval and transfer.
The high-level architecture of the Artefact Manager is illustrated below:
You can run the Artefact Manager either locally or in a container-fashion with Docker or Kubernetes.
Ensure skopeo is installed on your system.
Then start the service with:
uvicorn src.api.api:app --reloadThis will launch the FastAPI server with hot-reloading on code changes.
docker build -f deploy/Dockerfile -t artefact-manager:<TAG> .docker run -p 8000:8000 \
-v $(pwd)/src:/app/src \
-v $(pwd)/requirements.txt:/app/requirements.txt \
-e PYTHONPATH=/app \
artefact-manager:<TAG> \
uvicorn src.api.api:app --host 0.0.0.0 --port 8000 --reloaddocker run -d -p 8000:8000 \
-e PYTHONPATH=/app \
--name artefact-manager \
artefact-manager:<TAG>You can also deploy the Artefact Manager in a Kubernetes cluster using the provided manifests.
kubectl create namespace artefact-managerkubectl create -f deploy/k8s-manifests.yamlThis will create a Deployment and expose the service via a NodePort on port 30080. You can access it using:
http://<NODE_IP>:30080
We welcome contributions! Please follow these steps:
- Read the contribution guidelines.
- Create a new branch using the appropriate naming convention.
- Implement your feature or fix inside the correct directory.
- Ensure all tests pass locally before submitting.
- Open a Merge Request (MR) against the
mainbranch.
