-
Notifications
You must be signed in to change notification settings - Fork 46
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
Enable health status propagation for managed CRs #707
Comments
@gyliu513 Interested in your comments here. |
@taylormgeorge91 what do you mean @horis233 ^^ |
@gyliu513 I mean that there are various The owners/controllers of those downstream Presently, ODLM will not inspect or propagate this health status upward into the Since the |
As such, the |
I can feel the value of this feature, but service health status/monitoring is out of the scope of ODLM. I believe what ODLM can focus on is how to check the status of CRs when they are created or updated. Since ODLM has no idea which sign means the service is ready, users need to input the health check proof when they create OperandConfig, for example - name: ibm-mongodb-operator
spec:
MongoDB: {}
operandRequest: {}
readyProbe:
- kind: MongoDB
probe: status.phase.running
status: Running Then ODLM can check if the |
@horis233 I think your proposal also make sense, one question here is can we set the @taylormgeorge91 comments? |
@gyliu513 @horis233 Correct, what I am asking in the issue body is for health status information from the managed CRs through ODLM operandrequest. Note that we can make operandRequest outside of the OperandConfig spec so we would need to consider that. Also, can there be default known probes that ODLM tries if we have agreed on them through Cloud Pak Platform? That way, if present, it will be represented and the client doesn't have to define probes, potentially multiple, for each? The probe spec could allow for more custom approach and for legacy or community components too that may not have the defaults. |
See the |
I am not requesting for ODLM to perform service health monitoring, but instead to assist in surfacing information that would be available in a CR managed by ODLM as you explain on checking status. That is what is meant by propagation of the managed CRs status up through the OperandRequest(s). If ODLM is already watching the managed CRs, it can have a predicate for if the appropriate status properties have changed and make an update if needed, ignoring the irrelevant status updates. |
ODLM doesn't watch CRs, it can't watch unstructured objects.
We need to consider compatibility. ODLM can provide a default probe, but only if users enable it (probably by operandrequest), it will take effect. If we don't have a default probe, then ODLM can just check if the probe in the OperandConfig decides to enable or disable it. Thus, in my personal perspective, I prefer not to set the default probe. Then we can leave the logic for CR to the OperandConfig (If users use OperandRequest to create CR, we can pick the same field in it). Also, I don't think the status.condition is a good default probe because ODLM could never know what is the meaning of |
/kind feature
Describe the solution you'd like
[A clear and concise description of what you want to happen.]
As an adopter of ODLM, I would like to see the health status of the operands (CustomResources) that are managed for me by ODLM.
Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]
Presently, our use of ODLM includes the OperandRequest resource which is used in conjunction with OperandConfig and OperandRegistry resources to manage the lifecylce of our operators and related CRs. In utilizing this API, we cannot obtain the necessary health information about the requested workloads. For example, are the workloads running, are the workloads available, and are the workloads degraded.
In order to overcome this issue, our controller would have to do one of the following:
It would seem that option
2
would best fit as a common feature for users of ODLM if a given set of supported status structures are utilized by the operand.Reference
See comments here: #622 (comment)
The text was updated successfully, but these errors were encountered: