Uploaded image for project: 'OpenShift GitOps'
  1. OpenShift GitOps
  2. GITOPS-8737

Deprecate Prometheus CR functionality in operator, without touching ServiceMonitor/PrometheusRule logic

XMLWordPrintable

    • Deprecate Prometheus CR functionality in operator, without touching ServiceMonitor/PrometheusRule
    • S
    • False
    • Hide

      None

      Show
      None
    • False
    • To Do
    • 0% To Do, 100% In Progress, 0% Done

      Epic Goal

      This epic/story is based on Slack thread:
      https://redhat-internal.slack.com/archives/C01RQH8KQ87/p1768510672151089?thread_ts=1768421868.796559&cid=C01RQH8KQ87

      At present `.spec.prometheus.enabled = true` will do several things:

      • A) Create a Prometheus CR
      • B) Create routes/ingress/service for Prometheus CR
      • C) Create ServiceMonitors
      • D) Create PrometheusRules

      We want to get rid of behaviours A and B, but preserve behaviours C and D.

      Thus, we are not getting rid of '.spec.prometheus.enabled' entirely, we are only removing the part of it that creates and manages a prometheus CR.

      The reasoning for this can be found on the slack thread.

      Acceptance Criteria

      • From now on, when user has specified `.spec.prometheus.enabled`, we should NOT create the Prometheus CR.
      • If the Prometheus CR exists (whether `.spec.prometheus.enabled` is true/false/undefined) we should delete it.
      • If the Prometheus Service/Route/Ingress exists, we should delete them.
      • E2E test in argocd-operator to verify deletion works as expected
      • Add comments in `ArgoCDPrometheusSpec` to Host/Ingress/Route/Size fields indicating that the field is deprecated and no longer used.
      • Remove documentation from docs/ in argocd-operator repo that refers to the A) and B) funtionality described above (for example, see insights.md)
      • Note, as above, the following functionality should continue to work when .spec.prometheus.enabled is true:
        • ServiceMonitors created by, for example, reconcileMetricsServiceMonitor/reconcileRepoServerServiceMonitor/reconcileServerMetricsServiceMonitor
        • PrometheusRules created by, for example, reconcilePrometheusRule

      SDLC Questionnaire

      S.No Questions Yes/No Sample JIRA Epic
      1 Does this Epic address a change in way the product is being used? (eg: Adding support for OpenShift GitOps to be used in ROSA cluster with HCP) No GITOPS-5223
      2 Does this  Epic require a change in  the application's runtime - Upgrade of operator-sdk, OLM, client-go, go-toolset ? No GITOPS-8104
      3 Does this Epic primarily dealing with introducing a new security related feature (eg: Introduce SSO support) No GITOPS-437, GITOPS-547
      4 Does this Epic primarily dealing with the  modification of  an existing security feature ? (Eg: Supporting of External  Authentication for SSO)  No GITOPS-8017
      5 Does this Epic require changes to any cryptographic library ( Eg: FIPS support for OpenShift GitOps) No GITOPS-6365
      6 Does this Epic require any new or change in the existing cryptographic algorithms used in the product  (Eg: Using GPG verification for manifests, Upgrading from SHA256 to SHA512) No GITOPS-3049
      7 Does this Epic require any change in existing  authentication mechanisms (eg: Argo CD Auth integration with OpenShift, Kerberos to OAuth) No GITOPS-437 GITOPS-547 GITOPS-3246 GITOPS-1330
      8 Does this Epic require any change in authorisation mechanism (Eg: Using RBAC and service accounts impersonation for App Sync) /No GITOPS-3501
      9 Does this Epic require a change in the Communication protocol ( Eg: Using TLS to encrypt data traffic to/from Redis cache) No GITOPS-720
      10 Does this Epic require a change in how External Data is parsed and validated ? ( Eg: Change from JSON to Protobuf) No  
      11 Does this Epic require a change in core libraries or runtime (Eg: go compiler upgrade, Changing Operator SDK, controller-runtime, client-go versions) No GITOPS-7295
      12 Does this Epic require exposing any internal service to internet (Eg: Allow exposing Argo CD Agent principal via Route, using ArgoCD CR) No GITOPS-7728
      13 Does this Epic require a change in any existing gRPC service APIs No  
      14 Does this Epic require a change in any new external service (Eg: Support for OCI container registry for storing manifests) No GITOPS-4432
      15 Does this Epic require a change in the tenancy model ? (Eg: Supporting Apps/Appsets in Any namespace, cluster and repo credentials in any namespace) No GITOPS-917
      GITOPS-3754
      16 Does this Epic require any addition/modification of RBAC resources (Service Account, Role, RoleBinding, ClusterRole, ClusterRoleBinding) ? Yes  
      17 Does this Epic require a feature that needs to be enabled only for cluster scoped Argo CD instances ? No  

      Definition of Done

      • Code Complete:
        • All code has been written, reviewed, and approved.
      • Tested:
        • Unit tests have been written and passed.
        • Integration tests have been completed.
        • System tests have been conducted, and all critical bugs have been fixed.
        • Tested on OpenShift either upstream or downstream on a local build.
      • Documentation:
        • User documentation or release notes have been written.
      • Build:
        • Code has been successfully built and integrated into the main repository / project.
      • Review:
        • Code has been peer-reviewed and meets coding standards.
        • All acceptance criteria defined in the user story have been met.
        • Tested by reviewer on OpenShift.
      • Deployment:
        • The feature has been deployed on OpenShift cluster for testing.
      • Acceptance:
        • Product Manager or stakeholder has reviewed and accepted the work.

              rh-ee-rnaaz Rizwana Naaz
              jgwest Jonathan West
              Scarlet
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: