Uploaded image for project: 'Cluster Observability Operator'
  1. Cluster Observability Operator
  2. COO-1197

[Upstream] Perses operator fails to reconcile due to CRD validation error on spec.config.frontend.time_range.disable_zoom field

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Undefined Undefined
    • None
    • None
    • perses, tracing-uiplugin
    • None
    • Quality / Stability / Reliability
    • False
    • Hide

      None

      Show
      None
    • 1
    • None
    • None
    • None
    • Sprint 278
    • None
    • None
    • None

      Problem Summary

      The Perses operator is unable to reconcile Perses custom resources due to a validation error claiming that spec.config.frontend.time_range.disable_zoom is a "Required value", even when the field is correctly present and set to a valid boolean value. Thus even with the dashboards and datasource created the OCP web console doesn't show any dashboard in Observe > Dashboards Perses.

      Environment

        - OpenShift Cluster: 4.19.0-0.nightly-2025-09-16-062434

        - Namespace: openshift-cluster-observability-operator

        - Perses Operator Image: quay.io/openshift-observability-ui/perses-operator:v0.2-go-1.23

        - Perses Image: quay.io/openshift-observability-ui/perses:v0.51.1-go-1.23

        - CRD Version: perses.perses.dev/v1alpha1

        - Bundle image: quay.io/rhn_support_ikanse/observability-operator-bundle:1.2.4

      Error Details

      Primary Error:

        Failed to update custom resource to add finalizer: Perses.perses.dev "perses" is invalid:

        spec.config.frontend.time{}range.disable{}zoom: Required value

      Secondary Error (consequence of primary):

        dial tcp: lookup perses.openshift-cluster-observability-operator.svc.cluster.local on 172.30.0.10:53: no such host

      Complete logs attached to the ticket.

      Reproduction Steps

      1. Set openshift.enabled flag to true in cmd/operator/main.go

      2. Build the operator image and bundle from the upstream. I built the images from the PR https://github.com/rhobs/observability-operator/pull/837 which I was testing. This is the image. quay.io/rhn_support_ikanse/observability-operator-bundle:1.2.4 .This image is built off the main branch. quay.io/rhn_support_ikanse/observability-operator-bundle:1.2.5

      3. Install the operator bundle.

      oc create namespace openshift-cluster-observability-operator
      oc label namespace openshift-cluster-observability-operator  openshift.io/cluster-monitoring="true"
      oc project openshift-cluster-observability-operator
      % operator-sdk run bundle quay.io/rhn_support_ikanse/observability-operator-bundle:1.2.4 --install-mode AllNamespaces
      

      4. Create monitoring plugin instance with Perses enabled. 

      % cat monitoring-with-perses.yaml

      apiVersion: observability.openshift.io/v1alpha1
      kind: UIPlugin
      metadata:
        name: monitoring
      spec:
        type: Monitoring
        monitoring:
          perses:
            enabled: true
      

      5. Check the Perses operator pod logs for errors.

      Root Cause Analysis

      This appears to be a bug in the CRD validation logic or a version compatibility issue between the operator (v0.2-go-1.23) and the CRD schema. The validation error occurs even when the required fields are correctly present and formatted.

      Expected Behavior

      The operator should successfully add finalizers and reconcile the Perses resource when all required fields are present and valid.

              agerstma@redhat.com Andreas Gerstmayr
              rhn-support-ikanse Ishwar Kanse
              None
              None
              None
              None
              None
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: