Uploaded image for project: 'Red Hat OpenShift Dev Spaces (formerly CodeReady Workspaces) '
  1. Red Hat OpenShift Dev Spaces (formerly CodeReady Workspaces)
  2. CRW-10044

Dev Spaces local-remote (SSH) should support ubi8-based images

XMLWordPrintable

    • False
    • Hide

      None

      Show
      None
    • False
    • Release Notes
    • Hide
      = Support for UBI8-based images

      Red Hat OpenShift Dev Spaces now supports UBI8-based images for SSH local-to-remote connections. Previous versions were limited to UBI9 or UBI10 images due to compatibility issues with older versions of OpenSSL and `glibc` in UBI8. The resolution implements a two-container architecture that detects the version of `glibc` at runtime and mounts the appropriate resources to ensure environment compatibility.
      Show
      = Support for UBI8-based images Red Hat OpenShift Dev Spaces now supports UBI8-based images for SSH local-to-remote connections. Previous versions were limited to UBI9 or UBI10 images due to compatibility issues with older versions of OpenSSL and `glibc` in UBI8. The resolution implements a two-container architecture that detects the version of `glibc` at runtime and mounts the appropriate resources to ensure environment compatibility.
    • Enhancement
    • Proposed

      Following up from https://issues.redhat.com/browse/CRW-9619 & https://issues.redhat.com/browse/CRW-9572 , there is a limitation with the Dev Spaces local/remote (SSH) support. It does not currently support ubi8-based images. The reason is because to set up SSHD in the devfile (tool) container, we must place certain tools (eg. sshd) from "our" container. Our container is ubi9-based and this works fine for other ubi9/ubi10 containers but many of the binaries do not support the older version of openssl present in the ubi8-based container.

      sh-4.4$ /sshd/sshd.start
      /usr/bin/coreutils: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /sshd/libpam.so.0)
      /usr/bin/coreutils: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /sshd/libpam.so.0)
      ...
      ...
      
      sh-4.4$ rpm -q glibc
      glibc-2.28-251.el8_10.27.x86_64

      The solution is we just need start up another (total 2) separate containers. One for ubi9/10, and a new one for ubi8. Then at runtime, determine which set of resources we use depending on the devfile (or in this case, version of glibc). I think che-code has done this in the past with a similar approach (See https://github.com/che-incubator/che-code/blob/f4f2971f308a540c4cc3c597b86994778fb8a510/build/scripts/entrypoint-volume.sh#L88-L111 )

              rgrunber@redhat.com Roland Grunberg
              rgrunber@redhat.com Roland Grunberg
              Gaurav Trivedi Gaurav Trivedi
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: