-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider splitting OpenShift Client module (GraalVM performance) #5592
Comments
There was also an older issue about making the openshift support similar to other extensions - however I couldn't quite get there because there was too much usage of internal logic by the openshift module. |
I'm going to try and provide a fix (exclusively) for Quarkus in the scope of this issue. We can further discuss more suitable and generic approaches if the one for Quarkus works. |
This issue has been automatically marked as stale because it has not had any activity since 90 days. It will be closed if no further activity occurs within 7 days. Thank you for your contributions! |
After the fixes in Quarkus and Fabric8:
This might not be needed anymore. The final binary size is now reasonable enough. The added complexity to provide multiple clients for OpenShift-specific models might not be cost-effective. |
This issue has been automatically marked as stale because it has not had any activity since 90 days. It will be closed if no further activity occurs within 7 days. Thank you for your contributions! |
Description
When creating a native image for a Java application that has a dependency to the
io.fabric8:openshift-client
module, it's likely that the GraalVM process runs into anjava.lang.OutOfMemoryError
(OOME).The
openshift-client
module brings transitive dependencies to everyopenshift-model-*
module. In addition, it provides DSL entrypoint methods in the OpenShiftClient interface, inevitably linking the classes from those modules.We've got a couple of huge model modules. The most concerning one is
io.fabric8:openshift-model-operator
. When processing this model types, GraalVM runs out of memory unless we provide higher limits. This is problematic for memory-constrained environments such as continuous integration (CI) systems.Adding manual exclusions to the model modules is not possible, since the DSL accessors prevents this modules from being optional.
Possible solutions
openshift-model-operator
from OpenShiftClient (module will be optional)openshift-client
(module will be opt-in and only accessible withclient.resource
methods)Relates to
/cc @jamesnetherton
The text was updated successfully, but these errors were encountered: