CNTRLPLANE-2847: bootstrap: pass rendered manifests and payload version to etcd render#10679
CNTRLPLANE-2847: bootstrap: pass rendered manifests and payload version to etcd render#10679sanchezl wants to merge 1 commit into
Conversation
Add --rendered-manifest-files and --payload-version flags to the etcd-render invocation in bootkube.sh so the cluster-etcd-operator render command can read the FeatureGate CR from pre-rendered manifests instead of parsing feature gates from the raw install-config. The api-render step already runs before etcd-render and produces the fully-resolved FeatureGate CR in /assets/manifests/, so the manifests are guaranteed to be available. This aligns etcd-render with the pattern used by kube-apiserver-render, kube-controller-manager-render, and config-render, all of which already pass these flags. Requires a coordinated cluster-etcd-operator change to accept the new flags.
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
📝 WalkthroughWalkthroughThe etcd bootstrap script now passes a rendered-manifest destination and payload version to ChangesEtcd bootstrap rendering
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 15✅ Passed checks (15 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
/cc openshift/cluster-etcd-operator#1648 must go in first before we can test and merge this change. Otherwise, |
|
/hold cancel |
|
/retitle CNTRLPLANE-2847: bootstrap: pass rendered manifests and payload version to etcd render I'm reusing the same card as openshift/cluster-etcd-operator#1648 to satisfy the labels. Please free free to adjust it. |
|
@sanchezl: This pull request references CNTRLPLANE-2847 which is a valid 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: tthvo 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 |
|
/pipeline required |
|
Scheduling required tests: Scheduling tests matching the |
|
/test e2e-agent-compact-ipv4-iso-no-registry |
|
/retest-required |
|
/payload-job periodic-ci-openshift-release-main-ci-4.21-e2e-aws-ovn |
|
@sanchezl: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/98969690-8054-11f1-924f-f29ee91e5820-0 |
|
/payload-job periodic-ci-openshift-release-main-ci-4.21-e2e-aws-upgrade-ovn-single-node |
|
@sanchezl: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/9c644060-8054-11f1-9395-1f2dcd35e2c8-0 |
|
/payload-job periodic-ci-openshift-release-main-ci-4.21-e2e-aws-ovn-upgrade-out-of-change |
|
@sanchezl: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/9f0b1d70-8054-11f1-9632-17e6e580772d-0 |
|
/test e2e-aws-ovn-single-node |
|
/payload-job periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-upgrade-out-of-change |
|
@tthvo: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/77b57300-8082-11f1-8086-fd5af3f03e12-0 |
tthvo
left a comment
There was a problem hiding this comment.
/lgtm
/label acknowledge-critical-fixes-only
|
Tests from second stage were triggered manually. Pipeline can be controlled only manually, until HEAD changes. Use command to trigger second stage. |
|
I added the I don't think this will affect k8s 1.36 rebase so we can go ahead. |
|
/verified by CI CI job results look good to me 👀 |
|
@tthvo: This PR has been marked as verified by 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. |
|
/tide refresh |
|
/test e2e-azure-nat-gateway-single-zone e2e-aws-ovn |
|
/test e2e-aws-ovn |
|
/retest ci/prow/e2e-aws-ovn |
|
/retest |
Verification: bootkube.sh etcd render changesVerified the etcd render changes from the passing Bootstrap service stage records (bootkube.json)All stages completed successfully, including the etcd-bootstrap stage:
etcd-render container lifecycle (bootkube.log)The
The container exited cleanly in ~1s. A bad flag would have caused a non-zero exit and a ConclusionThe new |
|
/test e2e-aws-ovn |
1 similar comment
|
/test e2e-aws-ovn |
|
@sanchezl: The following test 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. |
CI Failure Analysis:
|
| Category | Count | Related to PR? |
|---|---|---|
[sig-node] PLR Pod InPlace Resize (FeatureGate: InPlacePodLevelResourcesVerticalScaling) |
70 | No |
[sig-node] DRA (FeatureGate: DRAExtendedResource) |
11 | No |
[sig-node] RestartAllContainers |
5 | No |
[sig-network] NetworkSegmentation / EgressFirewall |
11 | No |
[sig-auth] ProjectWatch |
1 | No |
| Monitor invariants (scc-annotation, alerts, kubelet, networking) | 87 | No |
Zero failures mention etcd, bootstrap, render, konnectivity, or any component touched by this PR.
These are known platform-wide issues
PLR/InPlacePodVerticalScaling failures — Tracked in OCPBUGS-64847 (wrong CPU calculation), OCPNODE-4400 (deflake effort), and OCPBUGS-96515 (compact cluster failures). The Kube 1.36 rebase team (#tmp-k8s-1-36) has been tracking these failures since May and added them to the skip list for the rebase PR. The root cause is a cgroup read failure (failed to read cgroup value /sys/fs/cgroup/memory/memory.limit_in_bytes) unrelated to the installer.
DRAExtendedResource failures — Tracked in OCPBUGS-85571. The Kube 1.36 rebase team confirmed these tests require dedicated DRA infrastructure that the serial job doesn't provide — same root cause identified upstream. Upstream skips them via Feature:.* regex; OpenShift's test framework doesn't have the same skip mechanism.
Same failures on other PRs — CCCMO PR #476 hit the exact same Pod InPlace Resize failure blocking e2e-aws-ovn, confirmed unrelated. The Kube 1.36 rebase team flagged InPlacePodLevelResourcesVerticalScaling and DRAExtendedResource as the two main sources of regressions in Component Readiness.
Cross-PR comparison
PR #10688 passed e2e-aws-ovn on the same base SHA (95357a6f). That passing run had 88 monitor failures (including the same etcd/KAS scc-annotation and container-restart failures) and 10 e2e failures (all NetworkSegmentation). The difference: PR #10688's run didn't hit the PLR/DRA sig-node test flakiness that our runs hit.
Conclusion
The e2e-aws-ovn failures are caused by known, tracked, platform-wide sig-node test issues (InPlacePodVerticalScaling, DRAExtendedResource, RestartAllContainers) that affect all PRs across multiple repos. This PR's bootstrap changes executed successfully in every run. /retest posted.
|
/test e2e-aws-ovn It should be all good now. Let's give it another try and see if this PR gets merged... |
Summary
Add
--rendered-manifest-filesand--payload-versionflags to the etcd-render invocation inbootkube.shso the cluster-etcd-operator render command can read the FeatureGate CR from pre-rendered manifests.Background
The
api-renderstep already runs beforeetcd-renderand produces the fully-resolved FeatureGate CR (withfeatureSetexpanded into individual gates) in/assets/manifests/. The etcd-render step was the only operator render that didn't consume these manifests — it parsed feature gates from the raw install-config instead, which missedfeatureSetresolution.This aligns the etcd-render invocation with the pattern already used by
kube-apiserver-render,kube-controller-manager-render, andconfig-render, all of which pass--rendered-manifest-files=/assets/manifestsand--payload-version=$VERSION.Coordinated change
Requires openshift/cluster-etcd-operator#1648 to accept the new flags. Both PRs must land in the same payload.
Test plan
Summary by CodeRabbit