Uploaded image for project: 'OpenShift Hive'
  1. OpenShift Hive
  2. HIVE-2253

MachinePools (AWS): Support edge pool / Local Zones

XMLWordPrintable

    • Icon: Epic Epic
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • None
    • MachinePools (AWS): Support edge pool / Local Zones
    • False
    • None
    • False
    • Not Selected
    • To Do
    • OCPSTRAT-851 - Add HIVE support for AWS Local Zones
    • OCPSTRAT-851Add HIVE support for AWS Local Zones
    • 0
    • 0% 0%

      From https://issues.redhat.com/browse/RFE-2782 can be found all the related upstream info (epics, enhancements, PRs, ...)

      Enhancement: https://github.com/openshift/enhancements/blob/master/enhancements/installer/aws-custom-edge-machineset-local-zones.md.

      The effect for us is for AWS's impl of GenerateMachineSets to populate Subnet fields PreferredEdgeInstanceType, Public, ZoneType and ZoneGroupName.

      For Public, we may be able to use our existing isSubnetPublic helper. This will entail a biggish refactor.

      ZoneType and ZoneGroupName can be gleaned from the Zone. Today we have fetchAvailabilityZones(), but:

      • We only use it if no zones are specified in the MachinePool. We would have to change it to always get them. (There may be an opportunity to tackle HIVE-2227 at the same time.)
      • That func currently just returns a slice of the Zones' names. We would want to change it to return a slice of the whole Zone object.

      PreferredEdgeInstanceType is going to be tricky. Installer sets it here, which comes from PreferredInstanceType(), which is an exported func we could theoretically use. However:

      • That func takes a Metadata. Today it only uses the AWS Session from it. Conceivably we could spoof that param to contain just the Session. However, today we don't keep a handle to our Session when we generate our AWS Client. With a relatively small refactor, we could do so, stuffing the Session into a new field in AWSActuator
      • That func takes a list of instance types, which installer gleans here. Another exported function we could use, but I'm not sure how we would specify the architecture. (Does hive even support ARM at all?)

      Of course, all of this use of exported functions ties us more and more thoroughly to the vendored installer code, which is bad for maintainability.

            leah_leshchinsky Leah Leshchinsky
            leah_leshchinsky Leah Leshchinsky
            Jianping Shu Jianping Shu
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated: