Which jobs are flaking:
CI Workflow / e2e test (v1.34.0)
Which test(s) are flaking:
ClusterResourceBinding test permanent id label testing
Specifically:
creates work with permanent ID label
Reason for failure:
While investigating a recent e2e failure, I noticed that this test waits for the corresponding Work objects to be created in the control plane, but it does not wait for the propagated ClusterRole to appear on the member clusters before the test completes.
The DeferCleanup block subsequently calls:
framework.WaitClusterRoleDisappearOnClusters(...)
Since propagation to member clusters is asynchronous, cleanup can begin before the ExecutionController has finished propagating the ClusterRole. In that case, the disappearance check may complete before the resource has ever existed on the member clusters.
Other propagation tests (for example in clusterpropagationpolicy_test.go) and the second It block in the same file already use WaitClusterRolePresentOnClustersFitWith(...) before cleanup, providing the synchronization barrier that is missing here.
Anything else we need to know:
A minimal fix is to add WaitClusterRolePresentOnClustersFitWith(...) before the first It block completes, aligning it with the existing synchronization pattern used elsewhere in the e2e suite.
Which jobs are flaking:
CI Workflow / e2e test (v1.34.0)
Which test(s) are flaking:
ClusterResourceBinding test permanent id label testingSpecifically:
creates work with permanent ID labelReason for failure:
While investigating a recent e2e failure, I noticed that this test waits for the corresponding
Workobjects to be created in the control plane, but it does not wait for the propagatedClusterRoleto appear on the member clusters before the test completes.The
DeferCleanupblock subsequently calls:Since propagation to member clusters is asynchronous, cleanup can begin before the
ExecutionControllerhas finished propagating theClusterRole. In that case, the disappearance check may complete before the resource has ever existed on the member clusters.Other propagation tests (for example in
clusterpropagationpolicy_test.go) and the secondItblock in the same file already useWaitClusterRolePresentOnClustersFitWith(...)before cleanup, providing the synchronization barrier that is missing here.Anything else we need to know:
A minimal fix is to add
WaitClusterRolePresentOnClustersFitWith(...)before the firstItblock completes, aligning it with the existing synchronization pattern used elsewhere in the e2e suite.