XMLWordPrintable

    • Icon: Epic Epic
    • Resolution: Done
    • Icon: Major Major
    • None
    • None
    • None

      WHY
      integreatly-operator go.mod imports/depends upon a number of different operator repo apis. Due to the fact that the api code is stored with the running operator code this has led to a siutation where dependency management has become a significant challenge, especially when we are attempting to support newer versions of kubernetes.

      The value in doing this work is that we will be able to support newer versions of kubenernetes faster reducing the engineering and qe cost.

      WHAT

      In order to improve this we discussed a few options and decided that having our depenency operators declare a seperate go module with it's own go.mod file in their api directories is the approach we'd like to promote across the operators that integreatly-oeprator depends on.

       

      HOW
      As integreatly-operator doesn't own all of the operators it depends on the approach is to investigate each of the sub dependencies to see what operators we can submit prs to or in some cases contact the teams responsible for those operators to see if they open to the option of introducing a separate go module for their apis.

       

      PRIOR ART

      Observability Operator - noting that we no longer need to address OO as we will migrate to a different observability stack.

      {}> https://github.com/laurafitzgerald/observability-operator/commit/f1e38a9832b4fef98980f06ee2a37f279205d4b6{-}
      {}> https://github.com/integr8ly/integreatly-operator/pull/3048{-}

       

      In the case of observability-operator it is in itself an uber operator so there might be some other dependencies we could look to implement/suggest as well 

       

      Prometheus Operators 

      -> https://github.com/prometheus-operator/prometheus-operator/tree/main/pkg/apis/monitoring

       

      DONE
      All imports of operator apis into integreatly-operator only include api code modules and not the root operator code module

       

      CANDIDATE IMPORTS

      https://github.com/3scale-ops/marin3r

      https://github.com/3scale/3scale-operator

      https://github.com/3scale/apicast-operator/tree/master/apis/apps

      https://github.com/grafana-operator/grafana-operator

      https://github.com/integr8ly/cloud-resource-operator

      https://github.com/integr8ly/keycloak-client

      https://github.com/operator-framework/operator-lifecycle-manager -> could be covered by https://github.com/operator-framework/api

      https://github.com/operator-framework/operator-registry -> could be covered by  https://github.com/operator-framework/api

      https://github.com/redhat-developer/observability-operator

      https://github.com/openshift/custom-domains-operator -> could be covered by https://github.com/openshift/api

       

       

       

              ckyrillo@redhat.com Carl Kyrillos
              lfitzger@redhat.com Laura Fitzgerald (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: