Details

    • Admin & Maintenance Task
    • Status: Done
    • Medium
    • Resolution: Done
    • None
    • 2.34.0
    • DBaaS controller
    • None
    • 2
    • Yes
    • Yes
    • No
    • Server Integrations
    • Hide
      • Register a cluster.
      • Operators should be installed.

      It will be necessary to wait since OLM is slower than the previous implementation.

      Show
      Register a cluster. Operators should be installed. It will be necessary to wait since OLM is slower than the previous implementation.

    Description

      What should be done:

      Replace operator management (install/delete/update) with OLM.

       
      Benefit:

      Standard and compliant method for operators lifecycle management.

      Interface to install and manage any current and future operators and different versions of those (currently hardcoded and needs a lot of maintenance)

      Suggested implementation:

       

      Details:

      Currently, the dbaas-controller manages the installation/updating of psmdb/pxc operators by itself.  We can try to use OLM and it'll handle the installation/updating of operators.

      https://confluence.percona.com/display/PMM/OLM

       

      Acceptance criteria:

      User/QA doesn't notice the difference in using PMM before and after OLM.

      API stays the same.

       

      Out of scope:

      1. Building/managing catalog

       


      How to test

      Register a kubernetes cluster and you shouldn't see any change. Take into consideration that OLM is slower so the part of User/QA doesn't notice the difference in using PMM before and after OLM. cannot be fulfilled 100%. The behavior will be the same with the exception of the speed. You will need to wait and refresh the page to see that the operators were installed.

      When using OLM there are new commands available so, this is how to check the operators were installed using OLM instead of the old method:

      1. Check package manifests: (list all available operators in OLM catalog)

      kubectl get packagemanifest 
      

      or just check for some specific operator using filters:

      kubectl get packagemanifest --field-selector metadata.name=percona-server-mongodb-operator
      

      2. Check running pods. There should be an OLM namespace and all the component pods will be there:

      kubectl get pods -A
      NAMESPACE     NAME                                READY   STATUS    RESTARTS        AGE
      kube-system   coredns-64897985d-p2m7g             1/1     Running   0               5m8s
      kube-system   etcd-minikube                       1/1     Running   0               5m21s
      kube-system   kube-apiserver-minikube             1/1     Running   0               5m21s
      kube-system   kube-controller-manager-minikube    1/1     Running   0               5m21s
      kube-system   kube-proxy-59wls                    1/1     Running   0               5m8s
      kube-system   kube-scheduler-minikube             1/1     Running   0               5m23s
      kube-system   storage-provisioner                 1/1     Running   1 (4m38s ago)   5m20s
      olm           catalog-operator-67bcbb4f5d-8qzkr   1/1     Running   0               2m17s
      olm           olm-operator-d9f76fdc9-2wzjr        1/1     Running   0               2m17s
      olm           operatorhubio-catalog-nq72d         1/1     Running   0               2m1s
      olm           packageserver-6d9799d6c8-kxw2v      1/1     Running   0               2m2s
      olm           packageserver-6d9799d6c8-wbbzf      1/1     Running   0               2m2s
      

      3. Operators are being installed by creating subscriptions so, list the subscriptions to check which operators were installed by OLM:

      kubectl get subscriptions -A
      NAMESPACE                            NAME                                 PACKAGE                           SOURCE                  CHANNEL
      my-percona-server-mongodb-operator   my-percona-server-mongodb-operator   percona-server-mongodb-operator   operatorhubio-catalog   stable
      

      Attachments

        Issue Links

          Activity

            People

              carlos.salguero Carlos Salguero (Inactive)
              andrew.minkin Andrew Minkin
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Smart Checklist