-
Notifications
You must be signed in to change notification settings - Fork 66
feat: add controller for clusterobservability #784
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
Conversation
Skipping CI for Draft Pull Request. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: pavolloffay The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
c456486
to
fe833c8
Compare
f8413ee
to
e1177ba
Compare
Thanks and apologies for the latency in reviewing this. Since iiuc the original design doc is a bit outdated I'll leave some stuff here for now, but perhaps its worth it updating the original doc or setup a new one. I think we can discuss three facets of this for a bit of structure: sane default configurations for operators, an API that covers multiple signals and the (perhaps optional) installation of additional operators via Subscriptions.
|
OpenTelemetry string `json:"opentelemetry,omitempty"` | ||
// Tempo defines the status of the Tempo capability. | ||
// +optional | ||
Tempo string `json:"tempo,omitempty"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just out of curiosity. What would be the value of these strings?
Is the idea here (in the ClusterObservabilityStatus
) to somehow aggregate the status of all the capabilities/components involved? I think it can be quite complicated and with an unclear outcome.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The value is namespace/instance-name (version)
. I am happy to change it. Do you have any suggestions?
// +optional | ||
// +kubebuilder:validation:Optional | ||
Install bool `json:"install,omitempty"` | ||
Install *bool `json:"install,omitempty"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is related to Jan's comment and I am not sure I understand it (and yes I probably missed that in the previous PR so apologies). I thought when a capability is enabled then everything required is installed. It's not the case?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct, when a capability is enabled, the operator installs the required operators.
@jan--f I think we should sync on a meeting, since It seems there are some diverged requirements
I didn't have this goal in mind, nor was it listed in the original document https://docs.google.com/document/d/1VpcxsbGAohBNLa0gaHod_S0mhjGozXOR_I9Ov9DPSyk/edit?tab=t.0. I would prefer to handle non OLM installations separately with defined requirements.
The
The use-case for disabled capability with enabled operators install (
The goal of this proposal is to simplify the installation, essentially it duplicates everything that a user can create right now with underlying CRs (subscriptions, tempostack, lokistack, uiplugins...).
Could you please describe the use-case? Do we have a requirement for this? I spent some time thinking about this, and I see it as an edge case (https://github.com/rhobs/observability-operator/blob/main/docs/clusterobservability.md#deploy-capability-but-dont-deploy-the-operators). The main goal of this project is to simplify the installation so users don't have to understand which operators have to be installed and which versions are compatible. Therefore if we don't have requirements I thought we would not (at least initially) support the use-case where users install the operators explicitly, they can do it right now by provisioning everything. |
f5178ce
to
824413b
Compare
Signed-off-by: Pavol Loffay <[email protected]>
824413b
to
702a826
Compare
@pavolloffay: The following test failed, say
Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Superseded by #793 |
Updates #757
This PR adds controller for the
ClusterObservability
CR. The controller is enabled only on Openshift - when--openshift.enabled=true
.This PR does not add
ClusterObservability
CR to the bundle so even when the--openshift.enabled=true
the implementation is not usable. This is on purpose, the feature will be enabled later on once all items from #757 are resolved.To deploy the operator with this feature set
--openshift.enabled=true
and enable the CRobservability-operator/deploy/crds/common/kustomization.yaml
Line 7 in c456486