Uploaded image for project: 'Product Technical Learning'
  1. Product Technical Learning
  2. PTL-8618

DO280-278: Error in populating image streams *if* internet is active during the installation

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • DO280 - OSE 3.0 1 20151019
    • DO280
    • None
    • 2
    • ILT
    • en-US (English)

      URL:
      Reporter RHNID:
      Section: -
      Language: en-US (English)
      Workaround: Short-term workaround: make sure internet is off during the installation of OSE with oo-install-ose.

      For the long-term, we could add a step (or a script) to remove those from the resulting image stream configuration, but that's tedious as the tags will change in the future and it's going to be an ugly script.

      It would probably be a better thing to fix those json files to point to workstation ahead of time, but again, we have a small problem here - we have to dynamically figure out (or substitute) whichever foundation host we're running on before we start the installation, and we miss that important step which many people will use for their environments, too - changing the image origin for their infrastructure.

      Probably pointing it to workstation.pod0.example.com during the installation and then having students change that would still work?

      Description: One of the Ansible playbook's main.yml files in our modified oo-install-ose.tgz basically does this:

      oc create -n openshift -f .../image-streams-rhel7.json and
      oc create -n openshift -f .../jboss-image-streams.json
      (i'm breaking it down for readability:

      • basedir is openshift-ansible-3.0.0-8/roles/openshift_examples/
      • tasks/main.yml is the culprit,
      • files/examples/image-streams/image-streams-rhel7.json and
      • files/examples/xpaas-streams/jboss-image-streams.json are the files)

      Since there's a bunch of references to registry.access.redhat.com using tags in there, if there's internet access at the time of installation, those references are resolved into a looooong list of actual version tags (currently 107 references instead of 24).

      That is because we have references to "latest" and a concrete version in there (such as, let's say, "x.y") but these two resolve to two different additional images nowadays (let's say "latest" is "a.b.c" and "x.y" is "x.y-199" these days, when what we have on workstation is just "x.y" and an alias "latest" pointing to "x.y").

      Those references can not be changed using a simple sed substitution in the lab subsequently, because they all already have a distinct version that does not exist in workstation.podX.example.com:5000 registry, and most importantly, an image checksum, which we won't be able to fake at a later point in time...

      What we want is just the "latest" and the actual version on workstation that both point to the same file, but the process of resolving "latest" at the time of installation actually introduced new version tags with different checksums, so... it gets to become a mess.

      If there is no internet access, they just get imported as-is (that is, they all point just to "latest" and the whatever version, which gets re-resolved after we do an "oc edit -n openshift is", that time against workstation, which works).

      The problematic consequence of this is that none of the images will be available from workstation.podX.example.com:5000, as all their "latest" tags have (or will have, at some point in time) changed to come from registry.access.redhat.com, which we block in docker configuration.

      Also, just changing the host names in image stream configuration won't work, as some images do not exist on workstation, and OSE refuses to change the origin host for those tags.

            rhn-gls-rtaniguchi Ricardo Taniguchi
            gregab@p0f.net Grega Bremec
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: