dyrector-io / dyrectorio

dyrector.io is a self-hosted continuous delivery & deployment platform with version management.
https://dyrectorio.com
Apache License 2.0
1.36k stars 100 forks source link

Implement dagent resource management #589

Open polaroi8d opened 1 year ago

polaroi8d commented 1 year ago

We ignored this since it may not have a significant impact, but it would be nice to have and not too complicated to implement.

Compared to Kubernetes, resource requests don't really make sense for us because we don't need to instruct the scheduler since it doesn't exist. However, Docker does have CPU and memory limits.

Affected scope:

Please provide a test case in golang as well.

Additional information: Our platform backend is built with Node.js called crux, and the UI built with React is called crux-ui.

AmorfEvo commented 1 year ago

Hi, pls assign this issue to me ;)

polaroi8d commented 1 year ago

Assigned to you, @AmorfEvo. If you have any questions don't hesitate to ask the team 🖖🏻

AmorfEvo commented 1 year ago

Thx. I want to figure it out from zero to 1, but if I have any questions I'll ask them ^^ @polaroi8d

polaroi8d commented 1 year ago

Dear #Hacktoberfest, this task is still open 😄

chandhuDev commented 1 year ago

Hi @polaroi8d , I have a few questions related to this. Kubernetes also has a scheduler for resource limits and resource requests, why only for the docker? Is there any specific reason for that? I don't have enough hands-on experience in Kubernetes as well. It would be great if you explain about this such that I could start over from zero

PapePathe commented 11 months ago

Hello @chandhuDev are you still working on this issue ? I figured out the golang changes for the builder , dagent and proto? Would you like to pair on it ? @polaroi8d what do you think, should i continue. If yes i have some questions .

nandor-magyar commented 11 months ago

As response to @chandhuDev questions, a summary: we already have Kubernetes integration of resource management in-place, but for docker, this is less used, may be less practical and a bit hidden. The docker part is missing from our builder, that is what we seek to implement here. UI: the resource requests are currently crane (thus k8s) only, that should be moved into the common section. dagent: docker SDK exposes the necessary features to implement such functionality into our builder.

These information should be enough to start effectively working on it.

PapePathe commented 11 months ago

I implemented the docker part here.