Skip to content
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

[ISV-5221][ISV-5222] Add a new step into the “build-index-image” to build and push index sbom. #1513

Merged
merged 1 commit into from
Oct 31, 2024

Conversation

haripate
Copy link
Contributor

@haripate haripate commented Oct 16, 2024

This PR is related with two JIRA Issues:
https://issues.redhat.com/browse/ISV-5221
https://issues.redhat.com/browse/ISV-5222

Before you complete this pull request ...

Look for any open pull requests in the repository with the title "e2e-tests update" and
see if there are recent e2e-tests updates that will be applicable to your change.

@openshift-ci openshift-ci bot requested review from mkosiarc and tisutisu October 16, 2024 03:40
@haripate haripate marked this pull request as draft October 16, 2024 03:40
@haripate haripate changed the title [ISV-5221] Add a new step into the “build-index-image” to build and push index sbom. [ISV-5221][ISV-5222] Add a new step into the “build-index-image” to build and push index sbom. Oct 17, 2024
@haripate haripate marked this pull request as ready for review October 17, 2024 00:46
@tisutisu
Copy link
Contributor

/ok-to-test

@haripate haripate force-pushed the ISV-5221 branch 2 times, most recently from aab379f to 6e77420 Compare October 18, 2024 17:12
task/build-image-index/0.1/README.md Outdated Show resolved Hide resolved
task/build-image-index/0.1/build-image-index.yaml Outdated Show resolved Hide resolved
task/build-image-index/0.1/build-image-index.yaml Outdated Show resolved Hide resolved
task/build-image-index/0.1/build-image-index.yaml Outdated Show resolved Hide resolved
task/build-image-index/0.1/build-image-index.yaml Outdated Show resolved Hide resolved
@chmeliik
Copy link
Contributor

/ok-to-test

Copy link
Contributor

@chmeliik chmeliik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good now, tested in https://github.com/chmeliik/multi-arch-konflux-sample/pull/4/files and does what it should 👍

Could you address the failing checks?

task/build-image-index/0.1/build-image-index.yaml Outdated Show resolved Hide resolved
task/build-image-index/0.1/build-image-index.yaml Outdated Show resolved Hide resolved
@chmeliik
Copy link
Contributor

/retest

@chmeliik
Copy link
Contributor

/ok-to-test

@chmeliik
Copy link
Contributor

/ok-to-test

@chmeliik
Copy link
Contributor

/ok-to-test

@haripate
Copy link
Contributor Author

/retest

@lcarva
Copy link
Contributor

lcarva commented Oct 30, 2024

/ok-to-test

@haripate
Copy link
Contributor Author

/ok-to-test

1 similar comment
@lcarva
Copy link
Contributor

lcarva commented Oct 30, 2024

/ok-to-test

Copy link
Contributor

@chmeliik chmeliik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! 🎉

@chmeliik chmeliik added this pull request to the merge queue Oct 31, 2024
Merged via the queue into konflux-ci:main with commit 05cb676 Oct 31, 2024
14 checks passed

SBOM_RESULT_FILE="/index-build-data/sbom-results.json"
if [ ! -f "$SBOM_RESULT_FILE" ]; then
echo "The sbom_results.json file does not exists. Skipping the SBOM upload..."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need something like touch "$(results.SBOM_BLOB_URL.path)" here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah good catch. But I don't think it's actually possible to reach this line, @haripate maybe we can remove the if [ ! -f "$MANIFEST_DATA_FILE" ] and if [ ! -f "$SBOM_RESULT_FILE" ] conditions?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chmeliik, could it reach here if ALWAYS_BUILD_INDEX is true and only one Image Manifest was provided?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup, good point. I forgot this task is allowed not to create an image index

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that without the touch "$(results.SBOM_BLOB_URL.path)", the SBOM_BLOB_URL result will be missing entirely, as opposed to empty if we add the touch. Considering no other tasks reference the SBOM_BLOB_URL, that seems fine at the moment.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, seem reasonable.

We may need to revisit this in the future. If this Task does not produce an Image Index, then the SBOM_BLOB_URL should probably point to the SBOM of the Image Manifest.

TBH, I don't really understand why this Task has the ALWAYS_BUILD_INDEX parameter. If you don't want to build an Image Index, then maybe just don't include the Task? We're probably making things more difficult to use and manage with such parameters.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the idea was that we would have just one build pipeline able to handle single-arch and multi-arch builds without any customization on the user's part. I don't fully remember, @arewm was that it?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There were at least two reasons why I added this:

  • Single arch pipelines should still be able to easily generate an Image Index if it becomes a requirement. This option can provide consistency with the internal build pipeline where every image generated is behind a manifest list. It also better supports operator-based installations where images generally shouldn't be referenced by image manifest.
  • Adding the image index generation to the template improved the kustomization for the multi-arch builds (i.e. the image index and image manifest generating tasks can be next to each other).

Now that we support a matrix of size 1, we could potentially change the pipeline default to the multi-arch pipeline as these will build single-arch by default. We can then change the single-arch pipeline to not have the image index and use that only for builds requiring an Image Manifest.

@arewm
Copy link
Member

arewm commented Nov 1, 2024

FYI, the reversion of this PR is being proposed in #1565.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants