Uploaded image for project: 'OpenShift Pod Autoscaling'
  1. OpenShift Pod Autoscaling
  2. PODAUTO-89

Upgrade VPA Operator to use modern operator-sdk layout and generators

XMLWordPrintable

    • Icon: Story Story
    • Resolution: Done
    • Icon: Normal Normal
    • None
    • None
    • None
    • Proactive Architecture
    • 8
    • False
    • Hide

      None

      Show
      None
    • False
    • PODAUTO - Sprint 258

      When we were doing PODAUTO-62, we noticed that the VPA operator was generated by operator-sdk a long time ago (the pre-1.0.0 days) and some pieces of that (namely the crd generators) were no longer working.

      We kind of hacked around it by updating only the generators, but it's a one-off hack, and someone who was used to maintaining modern operator-sdk projects wouldn't immediately know what to do with it.

      The proper way to address this is to:

      • go through the migration guide and update the project so that it works with modern (post 1.0.0) versions (this looks like it will be a lot of change, the directory layout is different, etc).
      • then go through the sdk upgrade guides and make sure we've migrated to the most recent if we can

      And then hopefully we can stay close enough to "up to date" that we don't have to bite off such a huge chunk of migration ever again

      Additional Complications:

      So the VPA has some "extra stuff" that a normal operator-sdk operator wouldn't have, namely:

      • we're syncing in manifests from the kubernetes autoscaler (where the VPA lives), and adjusts them with our openshift-specific changes
      • those "adjsuted" manifests get included in our operator/bundle builds and
      • there is a hack script that makes sure there isn't skew
      • the Makefile targets get used in our CI tests, so that might need to be adjusted too
      • the Makefile is...kinda gnarly and looks like it's from the imagebuilder days, although I don't think anyone is using imagebuilder to build it now, but ART ships the VPA, so we shouldn't have to worry about any CPaasS/distgit stuff here.

      Acceptance Criteria:

      • VPA Operator can be used with at least operator sdk v1.31
      • required makefile targets (e.g. manifest-diff) still work
      • builds still work
      • built product/images are sane
      • tests still pass

       

            rh-ee-macao Max Cao
            jkyros@redhat.com John Kyros
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: