Discover Kube targets by Endpoints, not Services #304
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #282
This basically duplicates the existing
OpenShiftPlatformClient
implementation for reuse as theKubeApiPlatformClient
. These use two different client libraries for the internal API clients, which also means different library implementations for the various Kubernetes types (Endpoints, Subsets, Ports, etc.). So although these types model the same Kubernetes datatypes, the types themselves are distinct hierarchies, and so the final concretePlatformClient
implementations are also distinct and do not inherit from each other (unfortunately).This can be tested by setting the
CONTAINER_JFR_PLATFORM
env var to force theKubeApiPlatformClient
into use and then running as usual in CRC. This should result in essentially no noticeable difference from running with the standardOpenShiftPlatformClient
. Compared to the previousKubeApiPlatformClient
implementation, only ports namedjfr-jmx
or numbered9091
should causeServiceRef
s to be listed in the targets list. If a singleService
has more than one such port, or if there are multiplePod
s (each distinguished by cluster-internal IP address) behind theService
, then there should be near-duplicateServiceRef
s for each of these, differentiated by port number or by IP address.