-
Notifications
You must be signed in to change notification settings - Fork 24
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
Sync pullspec to latest only when rpm for assembly is present in latest #1129
base: main
Are you sure you want to change the base?
Sync pullspec to latest only when rpm for assembly is present in latest #1129
Conversation
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@thegreyd: The following test 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. |
@@ -188,7 +188,8 @@ async def _trigger_microshift_sync(self): | |||
major, minor = self._ocp_version | |||
version = f'{major}.{minor}' | |||
try: | |||
jenkins.start_microshift_sync(version=version, assembly=self.assembly, dry_run=self.runtime.dry_run) | |||
jenkins.start_microshift_sync(version=version, assembly=self.assembly, | |||
dry_run=self.runtime.dry_run, block_until_complete=True) |
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.
what dose the block_until_complete
used for?
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.
It blocks the parent job until this child job is complete
@@ -81,6 +82,10 @@ async def run(self): | |||
data_path=self._doozer_env_vars["DOOZER_DATA_PATH"] | |||
) | |||
self.assembly_type = get_assembly_type(self.releases_config, self.assembly) | |||
|
|||
microshift_nvrs = await get_microshift_builds(self.group, self.assembly, env=self._elliott_env_vars) |
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.
for a named assembly, isn't the microshift nvr already pined in the assembly definition? why need to find builds again
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.
Yes, this func calls elliott which does the lookup from the assembly definition. It also validates it via brew.
This is the standard way of fetching it, like in build-microshift job
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 suggest we can directly load the nvr from assembly, the get_microshift_builds() is gong to invoke find-builds and the end result is the same as pined rpm.
# make sure that the latest path has the same microshift build as the given release assembly | ||
# only then sync the pullspec to the latest path | ||
latest_packages_path = f"{latest_path}/os/Packages/" | ||
if await self.is_microshift_for_release_in_latest(latest_packages_path): |
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.
Will the microshift_bootc job triggered by microshift job? if its triggered by microshift job can this be a parameter of the job to update latest?
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.
Yes the build-microshift-bootc
job is triggered by the build-microshift
job.
So you're proposing that build-microshift job determine if latest needs update or not? And then sets the flag
Or are you proposing that someone set that flag by hand?
The enhancement here is to remove the manual part, i.e. we can do this basic check and only
update latest when rpms are sync'd first
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 kind of get the propose you block microshift-sync job above the wait it populates the path?
yeah, I think set a --latest
arg will be simpler
Test runs:
Do not sync to latest when check fails:
https://art-jenkins.apps.prod-stable-spoke1-dc-iad2.itup.redhat.com/job/aos-cd-builds/job/build%252Fbuild-microshift-bootc/15/console
Sync to latest when check succeeds:
https://art-jenkins.apps.prod-stable-spoke1-dc-iad2.itup.redhat.com/job/aos-cd-builds/job/build%252Fbuild-microshift-bootc/16/console