percona / everest

Percona Everest is a cloud-native database platform to deploy and manage enterprise-grade PostgreSQL, MongoDB and MySQL database clusters.
https://docs.percona.com/everest/index.html
Apache License 2.0
230 stars 11 forks source link

can i use different limits and requests in mysql cluster? #783

Open gitbarnabedikartola opened 1 week ago

gitbarnabedikartola commented 1 week ago

I have a MySQL cluster, but I would not like to allocate all the resources that could be used at some point, I would like to place a request of approximately 25% of the CPU and RAM usage limit. I know from the UI that it does not exist. Would it be possible to edit a manifest or configuration to manually set the requests? Thank you

PeterSzcz commented 6 days ago

hey @gitbarnabedikartola I am not 100% sure about this type of resource allocation but you can interact with Everets thru UI, API or directly with operator thru CRD. All those changes will then be reconciled to operator CRD and executed on your DB cluster.

recharte commented 6 days ago

Hi @gitbarnabedikartola, as you correctly identified we set the same value for the resources' limits and requests. This was a deliberate decision to ensure the stability of the DB deployments.

Currently, you can't change it. If you try to edit the manifests directly the everest operator will reconcile it and overwrite the values you set.

We could expose both values in our API but users would need to be very careful in setting these values as it could lead to random DB nodes being terminated.

gitbarnabedikartola commented 6 days ago

Hi @recharte, yes I tried changing the values ​​in many places, the operator always reconciles. As a Linux developer, I understand that this is the best choice to ensure stability for users with less knowledge, one idea would be to have an advanced field with a warning that the change may cause instability and/or crash. Is there any way to change these values ​​manually after the CRD has been created? Thanks.

recharte commented 6 days ago

Is there any way to change these values ​​manually after the CRD has been created?

Unfortunately, no. As long as the everest operator is running, it will consider any such change as a drift from the intended spec and it will reconcile everything back to the initial state (request = limits).

We can add this feature request to our roadmap (cc. @PeterSzcz). However, I think that this won't be considered a high priority feature at this moment so it can take us a few months to get it released.

gitbarnabedikartola commented 6 days ago

Thanks for the reply, could you tell me where this request = limits function is in the source code, I can try to implement it.

klaoslacerda commented 6 days ago

It would be great to know where to change this I also have this problem @recharte