-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
TRT-1895: External binary caching and code clean-up #29300
Conversation
Skipping CI for Draft Pull Request. |
See how much I broke /test e2e-aws-ovn |
2f3270f
to
5cbffd7
Compare
/test e2e-aws-ovn |
|
||
// Use a fixed cache or tmp directory for storing binaries | ||
tmpDir := "" | ||
binDir := pullSpecToDirName(releaseImage) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Depending on how far you want to take this, it would be more efficient to create a cache directory based on the sha256 digest of the image the binary is coming from instead of considering the payload. This would allow you to safely share the binary extracted from payload A with payload B if the component image hasn't changed between them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had thought of that but I wasn't sure if we always guarantee a release payload uses the image digest, instead of a tag pullspec. Is that true? I can always assume it'll be @sha256:<hash>
, like the below?
{
"name": "vsphere-csi-driver-syncer",
"annotations": {
"io.openshift.build.commit.id": "03b7e8ebf2c6347b40a340d892e1a66d47806300",
"io.openshift.build.commit.ref": "",
"io.openshift.build.source-location": "https://github.com/openshift/vmware-vsphere-csi-driver"
},
"from": {
"kind": "DockerImage",
"name": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d9c0515f4069cc18ce58fe200fb5eee73b703fba611c2b3892929e8f2754121d"
},
"generation": null,
"importPolicy": {},
"referencePolicy": {
"type": ""
}
},
holding in case there is interest in the cache dir alternative. |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: jupierce, stbenjam The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/payload 4.18 nightly blocking |
@stbenjam: trigger 14 job(s) of type blocking for the nightly release of OCP 4.18
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/1502db70-a6cd-11ef-9171-b582f25d8074-0 |
/hold cancel |
@stbenjam: This pull request references TRT-1895 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.19.0" version, but no target version was set. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
/label acknowledge-critical-fixes-only |
/hold Going to give it a couple of days post-branching |
/hold cancel |
@stbenjam: The following tests failed, say
Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Job Failure Risk Analysis for sha: 6a12774
|
cef11fd
into
openshift:master
[ART PR BUILD NOTIFIER] Distgit: openshift-enterprise-tests |
Adds a caching layer for external binary extraction so it's easier to re-run openshift-tests locally. There's a README with additional info in
pkg/test/externalbinary/README.md
.This also reduces the complexity of cmd_runsuite, and encapsulates all image extraction code, so it can be used elsewhere more easily.
It does not yet move to the new interface with openshift-tests-extension, but makes it easier to do that later. This PR was already large enough by itself.