Repository navigation
Conversation
|
Pipeline controller notification This PR uses the pipeline controller for second-stage tests. Selection and triggering follow the repository configuration. Use |
|
@agullon: This pull request explicitly references no jira issue. DetailsIn 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. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: agullon The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
While running the 5.0.0-rc.7 release tests, the x86_64 lrel jobs showed
performance degradation (memory-pressure page-cache thrash) that the arm jobs
did not. A large part of it traced to the x86_64-only microshift-ai-model-serving
(kserve) RPM being installed into the shared rhel{98,102}-bootc-brew-lrel-optional
base image. That image is the FROM base for ~39 non-AI lrel scenarios, so on x86
every one of them loaded kserve's CRDs/OpenAPI into the MicroShift apiserver,
inflating resident heap by ~940 MB (measured) for scenarios that never exercise
AI model serving and squeezing available memory on the memory-constrained x86
metal hosts.
Scope the AI RPM to the single scenario that actually tests it:
- Remove the MICROSHIFT_X86_64_RPMS block from both -brew-lrel-optional images.
- Install the AI RPM (x86_64-gated) in the lrel FIPS image, which is consumed
exclusively by the *@ai-model-serving-online-fips scenario.
- Rename the FIPS containerfiles -brew-lrel-fips -> -brew-lrel-fips-ai (el9 +
el10) to reflect that they now carry the AI RPM, and repoint start_image in
both ai-model-serving-online-fips scenarios accordingly.
suites/optional/ has no kserve references, so the optional scenario is unaffected.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
pre-commit.check-secrets: ENABLED
f412d25 to
d79350d
Compare
|
/auto |
|
/pipeline required |
|
/test e2e-aws-tests-release |
|
/pipeline required |
|
Scheduling tests matching the |
1 similar comment
|
Scheduling tests matching the |
|
/retest |
|
/test e2e-aws-tests-cache |
|
@agullon: This pull request references USHIFT-7587 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 task to target the "5.1.0" version, but no target version was set. DetailsIn 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. |
|
@agullon: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions 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. |
The RPM/ostree twin of the bootc change. rhel98-brew-lrel-optional (and the image-installer ISO built from it) still installed the x86_64-only kserve RPM, and it is the start image for 19 non-AI release scenarios. No RPM/ostree scenario runs suites/ai-model-serving. On every cold start (cleanup --all, fresh database) kserve's webhook has no endpoints for several minutes. MicroShift applies manifests.d paths sequentially, retrying each for up to 10m, so 010-kserve and 050-runtimes block every later path: - 080-metrics-server lands after the 5m waitForNamespace deadline, the metrics certs are never provisioned and the 600s healthcheck fails (osconfig "Verify Cluster ID Change For New Database", lvms-standard "Log Scan", "Verify Local Host Name Resolution"). - Test manifests.d dirs are applied ~14m after restart, past the kustomize suite's 200s wait, and the retries plus sos collection exhaust the 60m robot budget (iso-standard). The bootc iso-standard twin, whose image no longer carries kserve, passed 52/52 in the same CI run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> pre-commit.check-secrets: ENABLED
…tests
Deploy Web Server ran `oc create` and immediately `oc wait pod --selector`.
When the ReplicaSet had not created the pod yet, `oc wait` exits at once with
"no matching resources found" instead of waiting, failing the test setup.
Seen in el98-lrel@router-routes ("Edge And Passthrough Routes"): oc wait gave
up 160ms before the pod was bound.
Wait on the Deployment with `oc rollout status`, which blocks until the
replicas are available even if no pod exists yet. Both web-server manifests
name the Deployment web-server-deploy. Deploy Web Server Signed had the same
pattern, usually hidden by the preceding secret poll.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pre-commit.check-secrets: ENABLED
Summary
While running the 5.0.0-rc.7 release tests, the x86_64 lrel jobs showed performance degradation (memory-pressure page-cache thrash) that the arm jobs did not. Investigation traced a large part of it to the x86_64-only
microshift-ai-model-serving(kserve) RPM being installed into the sharedrhel{98,102}-bootc-brew-lrel-optionalbase image. That image is theFROMbase for ~39 non-AI lrel scenarios, so on x86 every one of them loaded kserve's CRDs/OpenAPI into the MicroShift apiserver — inflating resident heap by ~940 MB (measured) for scenarios that never exercise AI model serving, and squeezing available memory on the already memory-constrained x86 metal hosts.This PR scopes the AI RPM to the single scenario that actually tests it, so the non-AI scenarios stay lean and the x86-only pressure is removed.
Changes
MICROSHIFT_X86_64_RPMS(AI model serving) block from the sharedrhel102-bootc-brew-lrel-optionalandrhel98-bootc-brew-lrel-optionalimages.x86_64-gated AI RPM install (re-copying the microshift repos, then cleaning up) to the lrel FIPS image, which is consumed exclusively by the*@ai-model-serving-online-fipsscenario.…-brew-lrel-fips→…-brew-lrel-fips-ai(el9 + el10) to reflect that they now carry the AI RPM.start_imageinel98-lrel@ai-model-serving-online-fips.shandel102-lrel@ai-model-serving-online-fips.shto the renamed image.RPM/ostree image (second commit)
The RPM/ostree twin
test/image-blueprints/layer4-release/group3/rhel98-brew-lrel-optional.toml(and the.image-installerISO built from it) also installed the kserve RPM on x86_64. It is the start image for 19 non-AI release scenarios; no RPM/ostree scenario runssuites/ai-model-serving.On every cold start (
cleanup --all, fresh database) the kserve webhook has no endpoints for several minutes. MicroShift appliesmanifests.dpaths sequentially with a 10m retry per path, so010-kserve/050-runtimesblock everything after them. This is the root cause of the chronice2e-aws-tests-releaseflakes onrelease-5.0:080-metrics-serverlands after the 5mwaitForNamespacedeadline, the metrics certs are never provisioned and the 600s healthcheck fails:el98-lrel@osconfig"Verify Cluster ID Change For New Database",el98-yminus1@el98-lrel@lvms-standard"Log Scan", "Verify Local Host Name Resolution".manifests.ddirs get applied ~14m after restart, past the kustomize suite wait, and the retries exhaust the 60m robot budget:el98-lrel@iso-standard.Every failing run has
Failed to provision metrics-server certs: waiting for namespace openshift-monitoring: context deadline exceededat the failure time. The bootcel98-lrel@iso-standardtwin, whose image no longer has kserve, passed 52/52 in the same CI run.Router test race (third commit)
Unrelated to kserve, but small and found in the same CI analysis.
Deploy Web Server/Deploy Web Server Signedintest/resources/router.resourceranoc createand immediatelyoc wait pod --selector, which exits with "no matching resources found" if the pod is not created yet (el98-lrel@router-routes"Edge And Passthrough Routes" failed this way, 160ms before the pod was bound). Now they wait withNamed Deployment Rollout Should Be Complete(oc rollout status). Verified with robocop androbot --dryrun suites/router/(31/31).Testing
…-brew-lrel-fipsimage names.suites/optional/has no kserve references, so theoptionalscenario is unaffected by dropping the RPM from its base image.optional(group1) builds beforefips-ai(group2), which re-copies the same RPM repos it needs.e2e-aws-tests-bootc-release-el10,-el9, and arm variants) and confirm the x86 non-AI scenarios no longer thrash whileai-model-serving-online-fipsstill passes.🤖 Generated with Claude Code