Run and monitor a workflow
Go to file
2025-06-24 15:31:45 +02:00
conf add resource use 2025-06-18 07:09:58 +02:00
demo_nginx oclib 2024-11-07 13:36:28 +01:00
docs updated README 2025-05-15 17:29:33 +02:00
logger cleaned some logging 2025-05-27 15:57:04 +02:00
models add resource use 2025-06-18 07:09:58 +02:00
tools cleaned some logging 2025-05-27 15:57:04 +02:00
utils new logging in GetExecution() 2025-05-06 17:27:38 +02:00
workflow_builder test 2025-06-24 15:31:45 +02:00
.gitignore conf 2024-08-06 11:42:59 +02:00
docker_schedulerd.json Merge branch 'feature/namespace' into main 2025-02-18 08:24:22 +01:00
Dockerfile added entrypoint 2025-04-14 18:22:31 +02:00
env.env test 2025-04-28 14:01:57 +02:00
exemple.yml oclib 2024-11-07 13:36:28 +01:00
go.mod test 2025-06-24 15:31:45 +02:00
go.sum test 2025-06-24 15:31:45 +02:00
LICENSE.md Téléverser les fichiers vers "/" 2024-10-03 10:53:51 +02:00
main.go add resource use 2025-06-18 07:09:58 +02:00
Makefile Refactor + Multi admiralty test 2025-06-12 14:01:16 +02:00
oc-monitord adjustment 2025-03-28 08:45:57 +01:00
README.md updated README 2025-05-15 17:29:33 +02:00
test-logs-workflow.json oclib 2024-11-07 13:36:28 +01:00

oc-monitor

DO : make build

Summary

oc-monitord is a daemon which can be run :

  • as a binary
  • as a container

It is used to perform several actions regarding the execution of an Open Cloud workflow :

  • generating a YAML file that can be interpreted by Argo Workflow to create and execute pods in a kubernetes environment
  • setting up the different resources needed to execute a workflow over several peers/kubernetes nodes with Admiralty : token, secrets, targets and sources
  • creating the workflow and logging the output from
    • Argo watch, which gives informations about the workflow in general (phase, number of steps executed, status...)
    • Pods : which are the logs generated by the pods

To execute, the daemon needs several options :

  • -u :
  • -m :
  • -d :
  • -e :

Notes features/admiralty-docker

  • When executing monitord as a container we need to change any url with "localhost" to the container's host IP.

    We can :

    • declare a new parameter 'HOST_IP'
    • decide that no peer can have "http://localhost" as its url and use an attribute from the peer object or isMyself() from oc-lib if a peer is the current host.

TODO

  • Allow the front to known on which IP the service are reachable

    • currently doing it by using kubectl get nodes -o wide
  • Implement writing and reading from S3 bucket/MinIO when a data resource is linked to a compute resource.

Adding ingress handling to support reverse proxing

  • Test wether ingress-nginx is running or not
    • Do something if not found : stop running and send error log OR start installation