- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 6
feat: custom product versions #1166
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
          
     Closed
      
      
    
                
     Closed
            
            
          Conversation
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
    | datasource | package | from | to | | ---------- | ----------------- | ------ | ------ | | docker | docker/dockerfile | 1.10.0 | 1.15.1 |
* remove 3.7.1 and 3.8.0 * add 4.0.0 * update changelog * bump to java 23 for kafka 4.0.0 * fix kcat image name
* chore: stop building kcat image * fix: adjust kafka / kafka-testing-tools watched paths
…into feat/include-sourcecode
…into feat/include-sourcecode
…into feat/custom-product-versions
…into feat/custom-product-versions
…into feat/custom-product-versions
…into feat/custom-product-versions
| This PR is too large. I will try to split it up. | 
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
      
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Description
Implemented solution for https://github.com/stackabletech/decisions/issues/44
Fixes #1068
This PR enables custom versions (with a suffix like
-stackable0.0.0-dev) for all components we apply custom patches to. It also makes the following products use our patched Hadoop libraries:And these components use our patched HBase libraries now:
In the SBOMs, the custom version is replaced by the original one (using
sed), so vulnerabilities filed directly against e.g. Hadoop 3.3.6 are still found when scanning the SBOMs (which we do in our vulnerability management pipeline). Otherwise vulnerabilities against Hadoop 3.3.6 might be missed, because the version would be something like 3.3.6-stackable25.7.0 and vulnerability databases don't contain entries for that particular version.The patched libraries are used by overriding for instance the Hadoop version when running Maven (like-Dhadoop.compile.version=3.3.6-stackable0.0.0-dev). Since they are not found in our Nexus Maven repo, we copy them to the local Maven repo from the Hadoop builder:We can't
COPYdirectly into/stackable/.m2/repositorysince that directory is usually cached and the copied libraries would be overridden by the cache.Further changes:
hbase/hbase/Dockerfile) to differentiate the final HBase image (hbase/Dockerfile) from HBase the application. This was needed, because for example Phoenix depends on our patched HBase version now, but the HBase image depends on Phoenix, which would be a circular dependency if the HBase container image and application were actually the same image. Now all components of the HBase image (excepthadoop-s3-builder) are built in separate Dockerfiles instead of inline.trino/trino/Dockerfileis the application now, sincestorage-connectoruses our patched Trino version now, while the Trino image includes thestorage-connector5.2.1-stackable25.7.0), in our case Phoenix can be built against HBase 2.6.1 or HBase 2.6.2, which also both introduce a different version of Hadoop. We don't want e.g. the HBase 2.6.2 image include a static Phoenix 5.2.1 version that was built with HBase 2.6.1 and Hadoop 3.3.6. So when we include Phoenix in the HBase image, we need to specify which variant of 5.2.1 we want to include. Same for hbase-operator-tools.I successfully built these products and tested them with the smoke tests:
I also built omid 1.1.3 successfully, we don't have a smoke test for it as far as I know.
Definition of Done Checklist
Note
Not all of these items are applicable to all PRs, the author should update this template to only leave the boxes in that are relevant.
Please make sure all these things are done and tick the boxes
TIP: Running integration tests with a new product image
The image can be built and uploaded to the kind cluster with the following commands:
See the output of
baketo retrieve the image tag for<image-tagged-with-the-major-version>.