Uploaded image for project: 'OpenJDK'
  1. OpenJDK
  2. OPENJDK-1954

Maven bump from 3.6.2 to 3.8.5 in S2I java builder image can lead to regression

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Critical Critical
    • None
    • None
    • container
    • None
    • False
    • Hide

      None

      Show
      None
    • False

      registry.access.redhat.com/ubi8/openjdk-17:latest and registry.access.redhat.com/ubi8/openjdk-11:latest got updated and both are now using Maven 3.8.5, which can lead regression.

      Affected customer: Using custom HTTP maven repository in setting.xml will now (with Maven bump) fail the S2I build. Which can be regression for some customers.

      It currently affects Camel Quarkus (https://issues.redhat.com/browse/CEQ-6923) apps (also plain Quarkus apps and basically any Java apps on OCP).

      The main problem i see is that the Openjdk image is not tight to one specific major maven version range - eg. 3.6.x, but major upgrades happens there. It would be ideal to have option in S2I workflow how to specify the maven version. So it would be in more controlled fashion.

      For current state, it would be nice to document this behaviour somewhere and put best practice note how to configure SSL certificate for HTTPS maven repo with S2I builds.

       

      Reproducer:

      1. oc new-project openjdk
      2. oc create -f settings.yaml
      3. oc create -f reproducer-s2i.yaml

      See error:

      [ERROR]     Non-resolvable import POM: Could not transfer artifact com.redhat.quarkus.platform:quarkus-bom:pom:2.13.7.SP3-redhat-00003 from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [internal.s2i.maven.remote.repository (http://indy.psi.redhat.com/api/content/maven/group/builds-untested+shared-imports, default, releases)] @ line 59, column 25 -> [Help 2]
      [ERROR]     Non-resolvable import POM: Could not transfer artifact com.redhat.quarkus.platform:quarkus-camel-bom:pom:2.13.7.SP3-redhat-00003 from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [internal.s2i.maven.remote.repository (http://indy.psi.redhat.com/api/content/maven/group/builds-untested+shared-imports, default, releases)] @ line 66, column 25 -> [Help 2] 

        1. reproducer-s2i.yaml
          2 kB
          Lukas Lowinger
        2. settings.yaml
          2 kB
          Lukas Lowinger

            [OPENJDK-1954] Maven bump from 3.6.2 to 3.8.5 in S2I java builder image can lead to regression

            jdowland@redhat.com sraghupu Any update on this topic ?

            Thank you in advance.

            Lukas Lowinger added a comment - jdowland@redhat.com sraghupu Any update on this topic ? Thank you in advance.

            Hi sraghupu , whilst OPENJDK-1977 is relevant here (as it would be a workaround for the issue in this ticket), the bigger issue I think that's worth discussing is integration/joining up openjdk container documentation with more general redhat/openshift container documentation. I'm fairly sure the proper solution here (not disabling HTTPS, but instead certificate handling)  is not an openjdk-specific one, and is likely already documented by the openshift docs (or should be, we need to confirm this), but someone trying to work with the openjdk containers may not know what other product docs are pertinent.

            We could add it to the agenda our planned call this month?

            Jonathan Dowland added a comment - Hi sraghupu , whilst OPENJDK-1977 is relevant here (as it would be a workaround for the issue in this ticket), the bigger issue I think that's worth discussing is integration/joining up openjdk container documentation with more general redhat/openshift container documentation. I'm fairly sure the proper solution here (not disabling HTTPS, but instead certificate handling)  is not an openjdk-specific one, and is likely already documented by the openshift docs (or should be, we need to confirm this), but someone trying to work with the openjdk containers may not know what other product docs are pertinent. We could add it to the agenda our planned call this month?

            jdowland@redhat.com Do you mean you want us to prioritize "OPENJDK-1977 Document how to use HTTP-only Maven repositories for recent images" for documentation updates?

            Sangeeta Raghu-Punnadi added a comment - jdowland@redhat.com Do you mean you want us to prioritize " OPENJDK-1977  Document how to use HTTP-only Maven repositories for recent images" for documentation updates?

            Hi jdowland@redhat.com. Please contact sraghupu regarding all requests for doc updates.

            Kieran Hosford added a comment - Hi jdowland@redhat.com . Please contact sraghupu regarding all requests for doc updates.

            I think I might need to bring in some help on this. rhn-support-khosford , for context, llowinge@redhat.com 's comment here basically sums up a potential missing piece in container documentation, but it's an issue that  might have fallen between the cracks wrt OpenJDK docs and OpenShift docs (or more generic RHEL/container docs). Can you advise please how we might get this on the backlog for docs? TIA!

            Jonathan Dowland added a comment - I think I might need to bring in some help on this. rhn-support-khosford , for context, llowinge@redhat.com 's comment here basically sums up a potential missing piece in container documentation, but it's an issue that  might have fallen between the cracks wrt OpenJDK docs and OpenShift docs (or more generic RHEL/container docs). Can you advise please how we might get this on the backlog for docs? TIA!

            jdowland@redhat.com Thanks a lot, let us know. It would be great to have it atleast in form of KCS article. Because sometimes can be hard to combine multiple sources of documentation to achieve one goal. This is i believe a bit specific as we should mount the cacerts somewhere in the builder (which packages the maven project) pod which i don't know if is the same as mounting volumes to resulting pod container app.

            Lukas Lowinger added a comment - jdowland@redhat.com Thanks a lot, let us know. It would be great to have it atleast in form of KCS article. Because sometimes can be hard to combine multiple sources of documentation to achieve one goal. This is i believe a bit specific as we should mount the cacerts somewhere in the builder (which packages the maven project) pod which i don't know if is the same as mounting volumes to resulting pod container app.

            llowinge@redhat.com I believe this is handled (or is supposed to be) by the container runtime, volume-mounting an appropriate cacerts bundle into running containers. As such the solution is not OpenJDK or OpenJDK-container image specific, but there is (I think) some OpenShift guidance, and possibly some Podman guidance. I'll have a quick look to see if I can find it.

            Jonathan Dowland added a comment - llowinge@redhat.com I believe this is handled (or is supposed to be) by the container runtime, volume-mounting an appropriate cacerts bundle into running containers. As such the solution is not OpenJDK or OpenJDK-container image specific, but there is (I think) some OpenShift guidance, and possibly some Podman guidance. I'll have a quick look to see if I can find it.

            jdowland@redhat.com I'm still missing some issue tracking best practice of "How to" for setting up HTTPS with custom certificates in the container. This issue was all about it, because that should be the preferred way in the industry.

            Lukas Lowinger added a comment - jdowland@redhat.com I'm still missing some issue tracking best practice of "How to" for setting up HTTPS with custom certificates in the container . This issue was all about it, because that should be the preferred way in the industry.

            Hi fmongiar@redhat.com 

            Any update on this topic? The same issue could happen in future

            In the earlier conversation we'd identified four actions which are tracked in the linked JIRAs. The summarize, we identified that defining maven mirrors (using MAVEN_MIRRORS, etc.) for each of the HTTP repositories in use enables their use with the current Maven version; we clarified the description of MAVEN_REPOS to make clear that it must be specified in upper-case and that has shipped (OPENJDK-1964); We have not yet shipped a similar documentation fix for MAVEN_MIRRORS (OPENJDK-1963); nor documented MAVEN_MIRROR_OF (OPENJDK-1962, but note that the version for use in conjunction with MAVEN_MIRRORS, i.e. prefix_MAVEN_MIRROR_OF, is documented);

            The main issue, to document the risk of moving from Maven 3.6 to 3.8, is with the docs team (OPENJDK-1977) and I don't know if they have it on their roadmap or any kind of timescale for it.  It's possible that this could be address instead with a KnowledgeBase article, WDYT?

            SInce this issue we did some work upstream on automatically publishing image "API" documentation, with pages for each shipped image (tagged in the source repo) and development branches listing all the configuration variables nad their docs: https://jboss-container-images.github.io/openjdk/

            Do you think there is some other action we should take?

            Jonathan Dowland added a comment - Hi fmongiar@redhat.com   Any update on this topic? The same issue could happen in future In the earlier conversation we'd identified four actions which are tracked in the linked JIRAs. The summarize, we identified that defining maven mirrors (using MAVEN_MIRRORS, etc.) for each of the HTTP repositories in use enables their use with the current Maven version; we clarified the description of MAVEN_REPOS to make clear that it must be specified in upper-case and that has shipped ( OPENJDK-1964 ); We have not yet shipped a similar documentation fix for MAVEN_MIRRORS ( OPENJDK-1963 ); nor documented MAVEN_MIRROR_OF ( OPENJDK-1962 , but note that the version for use in conjunction with MAVEN_MIRRORS, i.e. prefix_MAVEN_MIRROR_OF, is documented); The main issue, to document the risk of moving from Maven 3.6 to 3.8, is with the docs team ( OPENJDK-1977 ) and I don't know if they have it on their roadmap or any kind of timescale for it.  It's possible that this could be address instead with a KnowledgeBase article, WDYT? SInce this issue we did some work upstream on automatically publishing image "API" documentation, with pages for each shipped image (tagged in the source repo) and development branches listing all the configuration variables nad their docs: https://jboss-container-images.github.io/openjdk/ Do you think there is some other action we should take?

            Any update on this topic? The same issue could happen in future

            Francesco Mongiardo added a comment - Any update on this topic? The same issue could happen in future

              jdowland@redhat.com Jonathan Dowland
              llowinge@redhat.com Lukas Lowinger
              Votes:
              0 Vote for this issue
              Watchers:
              13 Start watching this issue

                Created:
                Updated: