Skip to content

Commit

Permalink
Imporve the creation of index-image (kubevirt#2745)
Browse files Browse the repository at this point in the history
1. fix bug that when creating index image for the first time for a
   version, the script fails.
2. build the index image from scratch, instead of building it from
   an existing index image, using opm.
3. simplify the script.
4. upgrade opm to v1.35.0

Signed-off-by: Nahshon Unna-Tsameret <[email protected]>
  • Loading branch information
nunnatsa authored Jan 21, 2024
1 parent 9800040 commit 700888b
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 72 deletions.
4 changes: 1 addition & 3 deletions .github/workflows/build-push-images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }}
QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }}
REGISTRY_NAMESPACE: kubevirt
OPM_VERSION: v1.26.2
OPM_VERSION: v1.35.0
steps:
- name: Checkout the latest code
uses: actions/checkout@v4
Expand All @@ -41,7 +41,6 @@ jobs:
run: |
echo "IMAGE_TAG=${CSV_VERSION}-unstable" >> $GITHUB_ENV
echo "UNSTABLE=UNSTABLE" >> $GITHUB_ENV
echo "FBCUNSTABLE=FBCUNSTABLE" >> $GITHUB_ENV
- name: Build Applications Images
env:
Expand Down Expand Up @@ -75,4 +74,3 @@ jobs:
run: |
export OPM=$(pwd)/linux-amd64-opm
./hack/build-index-image.sh ${{ env.IMAGE_TAG }} ${{ env.UNSTABLE }}
./hack/build-index-image.sh ${{ env.IMAGE_TAG }} ${{ env.FBCUNSTABLE }}
4 changes: 3 additions & 1 deletion .github/workflows/publish-community-operators.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }}
QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }}
REGISTRY_NAMESPACE: kubevirt
OPM_VERSION: v1.26.2
OPM_VERSION: v1.35.0
steps:
- name: resolve the correct branch of the tag
run: |
Expand Down Expand Up @@ -112,6 +112,8 @@ jobs:
sed -i -E "s|(ARG INITIAL_VERSION=).*|\1${CSV_VERSION}|g;s|(ARG INITIAL_VERSION_SED=).*|\1\"${VERSION_4_SED}\"|g" deploy/index-image/Dockerfile.bundle.ci-index-image-upgrade
sed -i -E "s|(ARG VERSION=).*|\1${CSV_VERSION}|g" deploy/olm-catalog/bundle.Dockerfile
sed -i -E "s|(ARG INITIAL_VERSION=).*|\1${CSV_VERSION}|g;s|(ARG INITIAL_VERSION_SED=).*|\1\"${VERSION_4_SED}\"|g" deploy/olm-catalog/Dockerfile.bundle.ci-index-image-upgrade
sed -i -E "s|(quay.io/kubevirt/hyperconverged-cluster-bundle:).*|\1${CSV_VERSION}|g" deploy/olm-catalog/community-kubevirt-hyperconverged/index-template-release.yaml
echo " - Image: quay.io/kubevirt/hyperconverged-cluster-bundle:${CSV_VERSION}" >> deploy/olm-catalog/community-kubevirt-hyperconverged/index-template-unstable.yaml
git add ./deploy/

- uses: peter-evans/create-pull-request@v3
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3MDQgNzA3Ij4KICAgIDxkZWZzLz4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPHBhdGggZD0iTTg4LjMzIDE0MC44OWwuMzgtLjQtLjM4LjR6TTc0LjE4IDE2Ny43MmMuOTYtMy4zIDIuODctNi41OCA1Ljc0LTkuODctMi44NyAzLjMtNC43OCA2LjU4LTUuNzQgOS44N3pNMjI3LjUyIDY5MC43MWMtMi45NCAwLTYuNjIgMC05LjU2LS45OSAzLjY3IDAgNi42Mi45OSA5LjU2Ljk5eiIvPgogICAgICAgIDxwYXRoIGZpbGw9IiMwMEFBQjIiIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgICAgICAgICBkPSJNNjA2Ljg0IDEzNi45NEwzNzEuMjkgMjAuNTRsLTIuMy0xLjE4YTE4LjUgMTguNSAwIDAwLTQuOTYtMS41OGMtMS41My0uNC0zLjA2LS43OS00LjYtLjc5LTIuMjktLjM5LTQuOTYtLjM5LTcuMjYtLjM5LTQuOTcgMC05LjU2IDAtMTQuNTMuNzktMS41My40LTMuMDYuNC00Ljk3Ljc5TDk3LjEyIDEzNS4zNmEzNC45MSAzNC45MSAwIDAwLTguMDMgNS4xM2wtLjM4LjQgMTIxLjk4IDI1My4zLTkxLjc3LTE5My4zM0gyNzMuOGw2MS45NCAxMTcuOTctMjEuNDEgNDEuMDQtLjc3LjQtNjIuNy0xMTkuOTVIMTgyLjRsMTA3LjgzIDIzNS45NSAxNS4zLTMwYzQuOTYtOS40NiAxNi40NC0xMy40IDI2LTguMjhhMjAuMzMgMjAuMzMgMCAwMTguMDIgMjYuODNsLTI3LjkgNTQuMDYtMjEuNDIgNDEuMDMgNjIuNyAxMjkuODFMNDEyLjIyIDU2OWMtNi4xMiA4LjY4LTE4LjM2IDEwLjY1LTI2Ljc3IDQuMzQtNy42NS01LjUzLTkuOTQtMTYuMTgtNS43NC0yNC40N2wxMy43Ny0yOC40YzUuMzUtOS40NyAxNi44My0xMi42MyAyNi03LjEgOC4wMyA0LjczIDExLjQ3IDE0Ljk5IDguNDEgMjQuMDZsMjcuOTItNTYuODFjLTYuMTIgOC42OC0xOC4zNiAxMC42NS0yNi43NyAzLjk0YTE5LjkzIDE5LjkzIDAgMDEtNS43My0yNC40NmwyNy41My01Ni40MmM0LjU5LTkuODcgMTYuMDYtMTMuODEgMjUuNjItOC42OGExOS42NSAxOS42NSAwIDAxOC40MSAyNi40M2wtNi44OCAxMy44MSAzNS4xOC03MS44MWMtNi4xMiA5LjA4LTE3Ljk4IDExLjQ0LTI2LjM5IDUuMTNhMTkuNzggMTkuNzggMCAwMS02LjUtMjQuODZsMjcuMTUtNTYuNDJjNC41OS05Ljg2IDE2LjA2LTEzLjgxIDI1LjYyLTguNjggOS41NiA0LjczIDEzLjM4IDE2LjU3IDguNDEgMjYuNDRsLTE1LjMgMzEuOTUgNDMuNi04OC43N2MtNS4zNiA5LjQ3LTE2LjgzIDEzLjAyLTI2IDcuNWEyMC4wMyAyMC4wMyAwIDAxLTkuMTgtMTMuMDNoLTIyLjk0Yy0xMC43MSAwLTE5LjEyLTguNjgtMTkuMTItMTkuNzIgMC0xMS4wNSA4LjQxLTE5LjczIDE5LjEyLTE5LjczaDc5LjkxbC0xOS4xMiAzOS4wNiA0Ny4wNC05NS44OGE0MC44MiA0MC44MiAwIDAwLTQuNi0zLjk0IDQxLjg1IDQxLjg1IDAgMDAtOC4wMi01LjUzek00MDUuNyAzNDQuMWwtMjguNjggNTUuNjNjLTQuOTcgOS40Ny0xNi40NCAxMy40Mi0yNiA4LjI5LTkuNTYtNS4xMy0xMy0xNi45Ny04LjAzLTI2LjgzbDI4LjY3LTU1LjY0YzQuOTgtOS40NyAxNi40NS0xMy40MSAyNi04LjI4IDkuNTcgNS4xMyAxMyAxNy4zNiA4LjA0IDI2Ljgzem01OC44OC0xMTUuMjJsLTI4LjY4IDU2LjAzYy00Ljk3IDkuNDctMTYuNDQgMTMuNDItMjYgOC4yOWEyMC4zMyAyMC4zMyAwIDAxLTguMDMtMjYuODNsMzMuNjUtNjYuMjloMTIuMjRjMy4wNiAwIDYuMTIuOCA4LjggMi4zN2ExOS42MiAxOS42MiAwIDAxOC4wMiAyNi40M3oiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICAgICAgICAgZD0iTTg5LjEgMTQwLjVhOTEuMDUgOTEuMDUgMCAwMTguMDItNS4xNEwzMzIuNjcgMTguMThjMS41My0uNCAzLjA2LS44IDQuNTktLjggNC45Ny0uNzggOS45NC0uNzggMTQuOTEtLjc4IDIuMyAwIDQuOTcgMCA3LjI3LjQgMS41My4zOSAzLjQ0LjM5IDQuOTcuNzggMS41My40IDMuNDQuOCA0Ljk3IDEuNThsMi4zIDEuMTkgMjM1LjU0IDExNi40YTQxLjg1IDQxLjg1IDAgMDE4LjAzIDUuNTIgNDAuODIgNDAuODIgMCAwMTQuNTkgMy45NGw3LjI3LTE0LjZjLTMuODMtMy4xNS04LjAzLTYuMzEtMTIuNjItOC42OGgtLjc3TDM3OC4xOCA2LjM0YTU0LjMgNTQuMyAwIDAwLTI2LTUuNTJjLTcuNjUtLjQtMTUuMy40LTIyLjk1IDEuOTdsLTEuNTMuNC0xLjUzLjc4TDkwLjYyIDEyMS4xNmE2Ni45OSA2Ni45OSAwIDAwLTguNzkgNS41Mmw2Ljg4IDE0LjIuMzgtLjM5ek03MDUuNSA0MjUuMzdsLS4zOS0xLjU4LTU4Ljg5LTI2MC40MXYtMS4xOWMtMy40NC0xMS40NC0xMC4zMi0yMi4xLTE5LjUtMjkuNTlsLTcuMjYgMTQuNmM0LjIgNC4zNCA4LjAzIDkuNDcgMTAuMzIgMTVhMjIuNzQgMjIuNzQgMCAwMTEuNTMgNC43M2w1OC41IDI2MC40MWE5MiA5MiAwIDAxLjM5IDEwLjI2YzAgMy4xNS0uNzcgNS45Mi0xLjE1IDkuMDcgMCAuOC0uMzggMS41OC0uMzggMi4zN2E1Ni4yMyA1Ni4yMyAwIDAxLTcuNjUgMTYuOTdsLTcwLjM2IDg5Ljk2LTkyLjUzIDExNy45N2MtNi4xMiA4LjY4LTE1LjY4IDE0LjItMjYgMTUuNzgtMy4wNi40LTYuNS44LTkuNTYuOEgzNTIuOTRsNTguODggMTUuNzhoNzAuNzVjMjAuMjYgMCAzNy4wOS04LjI5IDQ3LjgtMjIuODlsMTYyLjg5LTIwNy45My4zOC0uNC4zOC0uNGM5LjU2LTE0LjYgMTMuNzctMzEuOTUgMTEuNDctNDkuMzF6TTIyMi45MyA2OTAuMTJjLTEuNTMgMC0zLjQ0LS40LTQuOTctLjQtMi4zLS40LTQuMi0uNzktNi41LTEuNTdsLTMuNDQtMS4xOWMtMi4zLS43OS00LjYtMS45Ny02LjUtMi43NmE2MC4wMSA2MC4wMSAwIDAxLTkuMTgtNS45MmMtMS45MS0xLjU4LTMuODMtMy4xNi01LjM2LTQuNzNsLTU0LjMtNjkuNDUtMTA4LjItMTM4Ljg4YTUzLjQyIDUzLjQyIDAgMDEtOC44LTIzLjI4Yy0uMzgtMS41OC0uMzgtMy4xNi0uMzgtNC43NCAwLTMuNTUgMC02LjcuNzYtMTAuMjVsNTguMTItMjYyYTI1LjY0IDI1LjY0IDAgMDEyLjMtNy4xYzIuNjctNi43IDYuODgtMTIuMjMgMTIuMjMtMTYuOTZsLTYuODgtMTQuMmE1Ny41MyA1Ny41MyAwIDAwLTIyLjU2IDM0LjcxbC01OC4xMiAyNjJ2Ljc5Yy0zLjA2IDE3Ljc1IDEuMTQgMzUuNSAxMS4wOSA1MC4xbC4zOC40LjM4LjRMMTc1LjUxIDY4My40bC4zOS43OS43Ni40YTY5LjgyIDY5LjgyIDAgMDA0NS41IDIxLjNoMTMwLjc4di0xNS43OEgyMjIuOTN6Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNMzUyLjk0IDY5MC4xMnYxNS43OGg1OC44OHoiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjMDA3OTdGIiBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICAgICAgICAgZD0iTTI4OS44NSA1NjEuMWwtNzkuMTYtMTY2LjVMODguMzMgMTQwLjg4YTQxLjY4IDQxLjY4IDAgMDAtMTIuMjQgMTYuOTZsLTIuMjkgNy4xLTU3Ljc0IDI2MmMtLjc2IDMuNTUtLjc2IDYuNy0uNzYgMTAuMjUgMCAxLjU4IDAgMy4xNi4zOCA1LjEzYTU3LjQzIDU3LjQzIDAgMDA4LjggMjMuMjhMMTMzLjA2IDYwNC41bDU0LjMgNjguNjVjMS41MyAxLjU4IDMuNDQgMy4xNiA1LjM1IDQuNzRhMzcuMDggMzcuMDggMCAwMDkuMTggNS45MmMyLjMgMS4xOCA0LjIgMS45NyA2LjUgMi43NmwzLjQ0IDEuMThjMS45MS43OSA0LjIgMS4xOCA2LjUgMS41OCAxLjUzLjQgMy40NC40IDQuOTcuNGgxMzAuMDFMMjkwLjk5IDU1OS45bC0xLjE0IDEuMTl6Ii8+CiAgICAgICAgPHBhdGggZD0iTTE1LjMgNDM3LjJjMC0zLjU1IDAtNi43IDEuOS0xMC4yNSIvPgogICAgICAgIDxwYXRoIGZpbGw9IiMwMDc5N0YiIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgICAgICAgICBkPSJNMTk2LjkzIDY4My40MWMtMy40Mi0zLjI5LTYuODMtNi41OC05LjU2LTkuODYgMi43MyAzLjI4IDYuMTQgNi41NyA5LjU2IDkuODZ6Ii8+CiAgICAgICAgPHBhdGggZD0iTTIwMi4yOCA2ODcuNzVhNjguNyA2OC43IDAgMDEtOS41Ni05Ljg2TTE4Ny4zNyA2NzMuMTVsLTU0LjMtNjkuMDVNMjE3IDY4OS45MmwtOC42LTIuOTYiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjMDA3OTdGIiBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICAgICAgICAgZD0iTTIxMS40NiA2OTEuMWMtMy4zOC0xLjk3LTYuNzUtNC45My05LjU2LTYuOSAyLjggMS45NyA2LjE4IDQuOTMgOS41NiA2Ljl6Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iIzNBQ0NDNSIgZmlsbC1ydWxlPSJub256ZXJvIgogICAgICAgICAgICAgIGQ9Ik01NzAuMTMgMjQ3LjQybC00My42IDg4Ljc4LTExLjg0IDI0LjQ2YTguNjggOC42OCAwIDAxLTEuMTUgMS45N2wtMzUuMTggNzEuNDItMjAuNjUgNDIuNjFjLS4zOC43OS0xLjE1IDEuOTctMS41MyAyLjc2bC0yNy45MSA1Ny4yMWMwIC40IDAgLjQtLjM5LjhsLTEzLjc2IDI4LjRjLS4zOC43OS0xLjE1IDEuOTctMS41MyAyLjc2bC01OS4yNyAxMjAuNzRoMTI5LjYzYzMuMDYgMCA2LjUtLjQgOS41Ni0uNzlhMzkuOCAzOS44IDAgMDAyNi0xNS43OGw5Mi41NC0xMTcuOTggNzAuMzUtODkuOTZhNTIuMiA1Mi4yIDAgMDA3LjY1LTE2Ljk2Yy4zOC0uOC4zOC0xLjU4LjM4LTIuMzdhMzYuOSAzNi45IDAgMDAxLjE1LTkuMDhjMC0zLjU1IDAtNi43LS4zOC0xMC4yNWwtNTguNS0yNTkuNjNjLS4zOS0xLjU3LTEuMTUtMy4xNS0xLjU0LTQuNzMtMi4yOS01LjUyLTYuMTEtMTAuNjUtMTAuMzItMTVsLTQ3LjAzIDk1LjQ5LTIuNjggNS4xM3oiLz4KICAgICAgICA8cGF0aCBkPSJNNjkyLjMgNDM3LjJjMCAzLjQzLTEuOTEgNi40NC0yLjg3IDkuODdNNjkyLjY4IDQ0OC42NWMtMS45IDMuNDUtMy44MiA2LjktNi42OSA5Ljg2TTQ5Mi4xMiA2ODkuMzNhMzkuOCAzOS44IDAgMDAyNi0xNS43OGw5Mi41NC0xMTcuOThNNjkwLjU4IDQyNi45NWMuOTYgMy41NS45NiA2LjcuOTYgMTAuMjUiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iCiAgICAgICAgICAgICAgZD0iTTM5Ny42OCAzMTcuMjZjLTkuMTgtNS4xMy0yMS4wMy0xLjU4LTI2IDguMjhMMzQzIDM4MS4xOGMtNC45NyA5LjQ3LTEuNTMgMjEuNyA4LjAzIDI2LjgzIDkuMTcgNS4xMyAyMS4wMyAxLjU3IDI2LTguMjlsMjguNjgtNTUuNjNjNC45Ny05LjQ3IDEuMTQtMjEuNy04LjAzLTI2Ljgzek00MTkuMDkgNTExLjM4YTE5LjAzIDE5LjAzIDAgMDAtMjUuNjIgOC42OGwtMTMuNzcgMjguNDFjLTQuNTggOS44Ni0uNzYgMjEuNyA4LjggMjYuNDQgOC40MSA0LjM0IDE4LjM1IDEuNTcgMjMuNy01LjkybDE1LjY4LTMxLjk2YzQuMjEtOS40Ny4zOS0yMC45MS04Ljc5LTI1LjY1ek00MjcuODggNTM3LjgyYzAtLjQgMC0uNC4zOS0uOEw0MTIuNTkgNTY5YTYuNDEgNi40MSAwIDAwMS41My0yLjc2bDEzLjc2LTI4LjQxeiIvPgogICAgICAgIDxwYXRoIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgICAgICAgICBkPSJNMzExLjY0IDUxOS4yN2wyNy45MS01NC4wNWM0Ljk4LTkuNDcgMS41My0yMS43LTguMDMtMjYuODMtOS4xNy01LjEzLTIxLjAzLTEuNTgtMjYgOC4yOGwtMTUuMyAyOS45OUwxODIuNCAyNDAuMzJoNjguNDRsNjIuNzEgMTE5Ljk0Ljc3LS40IDIxLjAzLTQwLjYzLTYxLjk1LTExOC4zN0gxMTguNTRMMjEwLjMgMzk0LjJsNzkuOTIgMTY1LjcxIDIxLjQxLTQwLjY0eiIvPgogICAgICAgIDxwYXRoIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgICAgICAgICBkPSJNMjkwLjIzIDU2MC4zMWwtNzkuNTQtMTY1LjcyIDc5LjE2IDE2Ni41MXpNNTkxLjU0IDIwMy4yM2gtNzkuOTFjLTEwLjcxIDAtMTkuMTIgOC42OC0xOS4xMiAxOS43MyAwIDExLjA0IDguNDEgMTkuNzIgMTkuMTIgMTkuNzJoMjIuOTRjMi4zIDEwLjY2IDEyLjYyIDE3LjM3IDIyLjk0IDE1YTE5LjUgMTkuNSAwIDAwMTIuNjItOS40N2wyLjY4LTUuNTMgMTguNzMtMzkuNDV6TTU3Ni44MiAyNDIuMjlsLTYuNjkgOS44Ni45Ni0uN3pNNTQxLjgzIDMwNC42M2M0Ljk4LTkuODYgMS4xNS0yMS43LTguNC0yNi40NC05LjU3LTQuNzMtMjEuMDQtMS4xOC0yNS42MyA4LjY5di4zOWwtMjcuMTUgNTYuNDJjLTQuNTkgOS44Ny0uNzYgMjEuNyA4LjggMjYuNDQgOC40MSA0LjM0IDE4LjczIDEuNTggMjQuMDktNi43MWwxMy0yNi44MyAxNS4zLTMxLjk2eiIvPgogICAgICAgIDxwYXRoIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgICAgICAgICBkPSJNNTI2LjU0IDMzNi41OWwtMTMgMjYuODNjLjM4LS43OS43Ni0xLjU4IDEuMTUtMS45N2wxMS44NS0yNC44NnpNNDg0Ljg2IDQyMS4wM2M0LjU5LTkuODcuNzYtMjEuNy04LjQxLTI2LjQ0LTkuMTgtNC43My0yMS4wMy0uNzktMjUuNjIgOC42OGwtMjcuMTUgNTYuNDJjLTQuNTkgOS44Ny0uNzcgMjEuNyA4LjggMjYuNDQgOC40IDQuMzQgMTguMzUgMS41OCAyMy43LTUuOTJsMjIuMTgtNDUuMzcgNi41LTEzLjgxeiIvPgogICAgICAgIDxwYXRoIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIKICAgICAgICAgICAgICBkPSJNNDc4LjM2IDQzNC44NGwtMjIuMTggNDUuMzdjLjc3LS43OSAxLjE1LTEuOTcgMS41My0yLjc2bDIwLjY1LTQyLjYxek00NTYuNTYgMjAyLjQ0YTE3LjM0IDE3LjM0IDAgMDAtOC44LTIuMzdoLTExLjg1bC0zMy42NCA2Ni4yOWEyMC4xNSAyMC4xNSAwIDAwNC45NyAyNy42MmM4LjggNi4zMSAyMC42NCAzLjk0IDI2Ljc2LTUuMTMuNzctMS4xOSAxLjUzLTIuMzcgMS45MS0zLjk1bDI4LjY4LTU1LjYzYzQuOTctOS44NiAxLjUzLTIxLjctOC4wMy0yNi44My4zOSAwIDAgMCAwIDB6Ii8+CiAgICA8L2c+Cjwvc3ZnPg==
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Schema: olm.semver
GenerateMajorChannels: true
GenerateMinorChannels: true
DefaultChannelTypePreference: minor
Stable:
Bundles:
- Image: quay.io/kubevirt/hyperconverged-cluster-bundle:1.11.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Schema: olm.semver
GenerateMajorChannels: true
GenerateMinorChannels: true
DefaultChannelTypePreference: minor
Candidate:
Bundles:
- Image: quay.io/kubevirt/hyperconverged-cluster-bundle:1.6.0
- Image: quay.io/kubevirt/hyperconverged-cluster-bundle:1.7.0
- Image: quay.io/kubevirt/hyperconverged-cluster-bundle:1.8.0
- Image: quay.io/kubevirt/hyperconverged-cluster-bundle:1.9.0
- Image: quay.io/kubevirt/hyperconverged-cluster-bundle:1.10.1
- Image: quay.io/kubevirt/hyperconverged-cluster-bundle:1.11.0
108 changes: 40 additions & 68 deletions hack/build-index-image.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ set -ex
##################################################################

PROJECT_ROOT="$(readlink -e "$(dirname "${BASH_SOURCE[0]}")"/../)"
DEPLOY_DIR="${PROJECT_ROOT}/deploy/olm-catalog"
ORIG_DEPLOY_DIR="${PROJECT_ROOT}/deploy/olm-catalog"
OUT_DIR="${PROJECT_ROOT}/_out"
DEPLOY_DIR="${OUT_DIR}/deploy/olm-catalog"
PACKAGE_NAME="community-kubevirt-hyperconverged"
IMAGE_REGISTRY=${IMAGE_REGISTRY:-quay.io}
REGISTRY_NAMESPACE=${REGISTRY_NAMESPACE:-kubevirt}
Expand All @@ -26,18 +27,13 @@ UNSTABLE=$2

function create_index_image() {
CURRENT_VERSION=$1
PREV_VERSION=$2
INITIAL_VERSION=${CURRENT_VERSION}
if [[ "${UNSTABLE}" == "UNSTABLE" ]] || [[ "${UNSTABLE}" == "FBCUNSTABLE" ]]; then
if [[ "${UNSTABLE}" == "UNSTABLE" ]]; then
mv ${PACKAGE_NAME}/${CURRENT_VERSION} ${PACKAGE_NAME}/${CURRENT_VERSION}-unstable
CURRENT_VERSION=${CURRENT_VERSION}-unstable
PREV_VERSION=${PREV_VERSION}-unstable
fi
BUNDLE_IMAGE_NAME="${IMAGE_REGISTRY}/${REGISTRY_NAMESPACE}/${BUNDLE_REGISTRY_IMAGE_NAME}:${CURRENT_VERSION}"
INDEX_IMAGE_NAME="${IMAGE_REGISTRY}/${REGISTRY_NAMESPACE}/${INDEX_REGISTRY_IMAGE_NAME}:${CURRENT_VERSION}"
if [[ "${UNSTABLE}" == "FBCUNSTABLE" ]]; then
INDEX_IMAGE_NAME="${IMAGE_REGISTRY}/${REGISTRY_NAMESPACE}/${INDEX_REGISTRY_IMAGE_NAME}:${INITIAL_VERSION}-fbc-unstable"
fi

podman build -t "${BUNDLE_IMAGE_NAME}" -f bundle.Dockerfile --build-arg "VERSION=${CURRENT_VERSION}" .
podman push "${BUNDLE_IMAGE_NAME}"
Expand All @@ -46,77 +42,48 @@ function create_index_image() {
# unalignment between cached index image and fetched bundle image.
BUNDLE_IMAGE_NAME=$("${PROJECT_ROOT}/tools/digester/digester" --image "${BUNDLE_IMAGE_NAME}")

if [[ "${UNSTABLE}" == "UNSTABLE" ]]; then
# Currently, ci-operator does not support index images with file-based catalogs.
# To maintain CI functionality, we'll keep using SQLite-based catalogs for the unstable tags
# until FBC handling will be implemented in openshift ci-operator.
# With FBCUNSTABLE the unstable index image will be built as FBC based and named
# -fbc-unstable to enable the transition to FBC only
# shellcheck disable=SC2086
${OPM} index add --bundles "${BUNDLE_IMAGE_NAME}" ${INDEX_IMAGE_PARAM} --tag "${INDEX_IMAGE_NAME}" -u podman --mode semver
else
mkdir -p "${OUT_DIR}"
(cd "${OUT_DIR}" && create_file_based_catalog)
fi
create_file_based_catalog "${INITIAL_VERSION}" "${BUNDLE_IMAGE_NAME}" "${UNSTABLE}"

podman push "${INDEX_IMAGE_NAME}"

if [[ "${CURRENT_VERSION}" != "${INITIAL_VERSION}" ]]; then
mv ${PACKAGE_NAME}/${CURRENT_VERSION} ${PACKAGE_NAME}/${INITIAL_VERSION}
fi
}

function create_file_based_catalog() {
INITIAL_VERSION=$1
BUNDLE_IMAGE_NAME=$2
UNSTABLE=$3

# File-Based Catalog handling
rm -rf fbc-catalog*
${OPM} migrate "${INDEX_IMAGE_NAME}" fbc-catalog || true
if [ ! -d fbc-catalog ]
then
# The index image is already in file-based format. Extracting its catalog file
# TODO: we should handle the case where we are releasing X.Y.0 and
# quay.io/kubevirt/hyperconverged-cluster-index:X.Y.0 never got pushed!
oc image extract "${INDEX_IMAGE_NAME}" --file /configs/catalog.json
else
# The migration took place
mv fbc-catalog/community-kubevirt-hyperconverged/catalog.json catalog.json
cd "${OUT_DIR}"
template_file=index-template-release.yaml
if [[ "${UNSTABLE}" == "UNSTABLE" ]]; then
template_file=index-template-unstable.yaml
fi

${OPM} render "${BUNDLE_IMAGE_NAME}" > bundle.json
CSV_NAME=$(jq -r .name bundle.json)
VERSION=${CSV_NAME##*.v}
SKIPRANGE="<"${VERSION}
CHANNEL=${CURRENT_VERSION%-*}

# Remove the existing channel schema from the catalog
jq --arg CHANNEL "$CHANNEL" 'del(. | select(.schema=="olm.channel" and .name==$CHANNEL))' \
catalog.json > updated_fbc.json

# Insert the new channel schema for the new bundle instead of the one we removed previously
jq --arg CSV_NAME "$CSV_NAME" --arg SKIPRANGE "$SKIPRANGE" --arg CHANNEL "$CHANNEL" '. |
select(.schema=="olm.channel" and .name==$CHANNEL) |
.entries[0].name=$CSV_NAME |
.entries[0].skipRange=$SKIPRANGE' \
catalog.json >> updated_fbc.json

mv updated_fbc.json updated_fbc.json.tmp
# Remove the existing bundle schema from the catalog
jq --arg CHANNEL "$CHANNEL" 'del(. |
select(.schema=="olm.bundle" and (.name | contains($CHANNEL))))' \
updated_fbc.json.tmp > updated_fbc.json

mkdir -p fbc-catalog
cat bundle.json >> updated_fbc.json
sed -i '/null/d' updated_fbc.json
mv updated_fbc.json fbc-catalog/catalog.json
cp "deploy/olm-catalog/community-kubevirt-hyperconverged/${template_file}" ./index-template.yaml

if [[ "quay.io/kubevirt/hyperconverged-cluster-bundle:${INITIAL_VERSION}" != "${BUNDLE_IMAGE_NAME}" ]]; then
sed -i -E "s|quay.io/kubevirt/hyperconverged-cluster-bundle:${INITIAL_VERSION}|${BUNDLE_IMAGE_NAME}|g" index-template.yaml
fi

while IFS= read -r line; do
image=$(echo "${line}" | sed -E 's|.*(quay.io/kubevirt/hyperconverged-cluster-bundle:.*)|\1|g')
digest=$("${PROJECT_ROOT}/tools/digester/digester" --image "${image}")
sed -i "s|${image}|${digest}|g" index-template.yaml
done < <(grep 'quay.io/kubevirt/hyperconverged-cluster-bundle:' index-template.yaml)

rm -rf fbc-catalog
mkdir fbc-catalog
${OPM} alpha render-template semver index-template.yaml > fbc-catalog/catalog.json
${OPM} validate fbc-catalog
rm -f fbc-catalog.Dockerfile
${OPM} generate dockerfile fbc-catalog
podman build -t "${INDEX_IMAGE_NAME}" -f fbc-catalog.Dockerfile
}

function create_all_versions() {
PREV_VERSION=
for version in $(ls -d ${PACKAGE_NAME}/*/ | sort -V | cut -d '/' -f 2); do
create_index_image "${version}" "${PREV_VERSION}"
create_index_image "${version}"
PREV_VERSION=${version}
done
}
Expand All @@ -128,20 +95,22 @@ function create_latest_version() {
PREV_VERSION=${CURRENT_VERSION}
CURRENT_VERSION=${version}
done
create_index_image "${CURRENT_VERSION}" "${PREV_VERSION}"
create_index_image "${CURRENT_VERSION}"
}

function build_specific_version() {
CURRENT_VERSION=
PREV_VERSION=
for version in $(ls -d ${PACKAGE_NAME}/*/ | sort -V | cut -d '/' -f 2); do
PREV_VERSION=${CURRENT_VERSION}
CURRENT_VERSION=${version}
if [[ "$1" == "${CURRENT_VERSION}" ]]; then
if [[ "$1" == "${version}" ]]; then
CURRENT_VERSION="${version}"
break
fi
done
create_index_image "${CURRENT_VERSION}" "${PREV_VERSION}"
if [[ -z ${CURRENT_VERSION} ]]; then
echo "can't find version $1"
exit 1
fi
create_index_image "${CURRENT_VERSION}"
}

function help() {
Expand All @@ -153,6 +122,9 @@ if [[ $# -gt 2 ]] || [[ $# -lt 1 ]]; then
exit 1
fi

rm -rf "${DEPLOY_DIR}"
mkdir -p "${DEPLOY_DIR}"
cp -r ${ORIG_DEPLOY_DIR}/* "${DEPLOY_DIR}/"
cd "${DEPLOY_DIR}"

case "$1" in
Expand Down

0 comments on commit 700888b

Please sign in to comment.