Skip to content

fleetshift-ui repo: split up x86 and multiarch image builds to prioritize x86 builds and improve failure rate#79361

Open
mshort55 wants to merge 1 commit into
openshift:mainfrom
mshort55:fleetshift-ui-image-mirror-fix
Open

fleetshift-ui repo: split up x86 and multiarch image builds to prioritize x86 builds and improve failure rate#79361
mshort55 wants to merge 1 commit into
openshift:mainfrom
mshort55:fleetshift-ui-image-mirror-fix

Conversation

@mshort55
Copy link
Copy Markdown
Contributor

@mshort55 mshort55 commented May 15, 2026

fleetshift-ui repo: split up x86 and multiarch image builds to prioritize x86 builds and improve overall failure rat

Summary

This PR restructures the CI image build pipeline for the fleetshift user-interface repository by separating x86 and multiarch (arm64) builds into independent configurations.

Changes

Main configuration (fleetshift-fleetshift-user-interface-main.yaml): Removed arm64 support by deleting the additional_architectures: [arm64] declaration from the image definition and removing arm64 capability constraints from three CI image-mirror pipeline steps (pr-image-mirror, pr-merge-image-mirror-latest, and pr-merge-image-mirror-sha). This configuration now handles x86 builds exclusively.

New multiarch configuration (fleetshift-fleetshift-user-interface-main__multiarch.yaml): Introduced a separate pipeline variant dedicated to arm64 builds. This new configuration defines the build root, image target with arm64 architecture, resource requests, and three corresponding ARM64-specific CI pipeline steps for image mirroring.

Impact

By splitting the build pipelines, x86 builds are prioritized in the main pipeline while arm64 builds run independently, reducing contention and improving overall build failure rates. The fleetshift user-interface repository now benefits from separate, architecture-specific build workflows managed through ci-operator configuration.

…tize x86 builds and improve overall failure rate
@mshort55 mshort55 changed the title fleetshift ui image mirror fix fleetshift-ui repo: split up x86 and multiarch image builds to prioritize x86 builds and improve failure rate May 15, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 15, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: mshort55

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 15, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 15, 2026

Walkthrough

The pull request refactors the fleetshift user interface CI pipeline by separating arm64 multi-architecture support from the main configuration file into a dedicated multiarch variant file. The main configuration is simplified by removing all arm64 references, while a new dedicated multiarch YAML provides the complete arm64 build setup.

Changes

CI Configuration Multiarch Refactor

Layer / File(s) Summary
Remove arm64 from main configuration
ci-operator/config/fleetshift/fleetshift-user-interface/fleetshift-fleetshift-user-interface-main.yaml
The images.items configuration removes additional_architectures: [arm64], and three CI steps (pr-image-mirror, pr-merge-image-mirror-latest, pr-merge-image-mirror-sha) remove their capabilities: [arm64] blocks.
Create dedicated multiarch configuration
ci-operator/config/fleetshift/fleetshift-user-interface/fleetshift-fleetshift-user-interface-main__multiarch.yaml
A new multiarch YAML defines arm64 image builds using nodejs20-linux builder, configures fleetshift-web with arm64 architecture, sets default compute resources (100m CPU, 200Mi memory), and wires PR and postsubmit image-mirroring workflows for arm64.

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 12
✅ Passed checks (12 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately reflects the main change: splitting x86 and multiarch image builds for the fleetshift-ui repository, with the objectives of prioritizing x86 builds and improving failure rates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed This PR contains only YAML CI/CD configuration files. The custom check targets Ginkgo test files, which are not present or modified in this PR. The check is not applicable.
Test Structure And Quality ✅ Passed Check is not applicable. PR contains only YAML CI configuration files, no Ginkgo test code. Custom check requires reviewing Ginkgo test structure and patterns.
Microshift Test Compatibility ✅ Passed No Ginkgo e2e tests were added in this PR. The changes are exclusively to CI configuration YAML files for build orchestration, not test code. The MicroShift compatibility check is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No Ginkgo e2e tests are added or modified in this PR. All changes are CI configuration files for image build pipelines. SNO test compatibility check is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies only CI operator configuration files (build configs, not runtime manifests). No scheduling constraints present. Not applicable to deployment manifests or operator code check.
Ote Binary Stdout Contract ✅ Passed The OTE Binary Stdout Contract check applies to Go test binary code only. This PR modifies only YAML CI/CD configuration files with no Go source code changes, making the check not applicable.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo e2e tests added. PR only modifies CI/CD configuration YAML files for image build pipelines, not test code. Custom check is not applicable.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@mshort55: the pj-rehearse plugin accommodates running rehearsal tests for the changes in this PR. Expand 'Interacting with pj-rehearse' for usage details. The following rehearsable tests have been affected by this change:

Test name Repo Type Reason
pull-ci-fleetshift-fleetshift-user-interface-main-multiarch-images fleetshift/fleetshift-user-interface presubmit Presubmit changed
pull-ci-fleetshift-fleetshift-user-interface-main-multiarch-pr-image-mirror fleetshift/fleetshift-user-interface presubmit Presubmit changed
pull-ci-fleetshift-fleetshift-user-interface-main-images fleetshift/fleetshift-user-interface presubmit Ci-operator config changed
pull-ci-fleetshift-fleetshift-user-interface-main-pr-image-mirror fleetshift/fleetshift-user-interface presubmit Ci-operator config changed

Prior to this PR being merged, you will need to either run and acknowledge or opt to skip these rehearsals.

Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse list to get an up-to-date list of affected jobs
Comment: /pj-rehearse abort to abort all active rehearsals
Comment: /pj-rehearse network-access-allowed to allow rehearsals of tests that have the restrict_network_access field set to false. This must be executed by an openshift org member who is not the PR author

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

@mshort55
Copy link
Copy Markdown
Contributor Author

/cc @alechenninger @Hyperkid123
Could one of you add /lgtm label on this pr if you are OK with changes? I did something similar to the fleetshift-poc repo and it improved build times for the x86 images, which is all that our demo env needs. I add multiarch just so we can test images locally on our macs, but I notice that the prow arm servers have more issues and make overall image builds a lot slower than x86 by itself.

@mshort55
Copy link
Copy Markdown
Contributor Author

/pj-rehearse

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

@mshort55: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 15, 2026

@mshort55: all tests passed!

Full PR test history. Your PR dashboard.

Details

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant