Fetch nodes data from cluster
What does this MR do?
This MR will fetch data needed for #196544 (closed) and #207031 (closed)
FE work will be done in a separate MR.
The implementation is based on adding a nodes
public method to Clusters::Cluster
. This method will use ReactiveCaching
to fetch nodes status and nodes metrics async from the Kubernetes cluster.
Discalimer: GKE provides the Kubernetes metrics api by default, but EKS doesn't. We always try to fetch the metrics regardless of provider, but if the metrics resource is not found, we'll simply not send them to the FE. On a next iteration we plan to give better feedback for the users explaining why they don't seed metrics and how could they install the metrics api manually in case it's not there by default.
Screenshots
I temporarily exposed this data on this endpoint just for testing purposes. But the data will be shown in a different endpoint:
Does this MR meet the acceptance criteria?
Conformity
-
Changelog entry -
Documentation (if required) -
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers -
Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods -
Security reports checked/validated by a reviewer from the AppSec team