Both, Keycloak and Postgresql container require quite a bit of a memory. The Operator should define Requests to ensure that the minimum amount of both CPU and Memory for Keycloak and Postgresql are met.
The task requires measuring the minimum amount of memory and CPU allocated by Keycloak and Postgresql and adding it as a Resources to the Deployment/StatefulSet objects.
The implementation should not override Limits set by a user.
In order to get the best QoS in Kubernetes, we should define both Resources and Limits (see the manual). However, specifying Limits is not a trivial tasks as we don't how large installations our customers will be running. The best option for now is to skip setting Limits (but not overriding them in the Operator code).
1 for 1 person.