Change:
master-blocking: ci-node-e2e Recent failures: No response /sig node
This issue is currently awaiting triage. If a SIG or subproject determines this is a relevant issue, they will accept it by applying the label and provide further guidance. The label can be by org members by writing in a comment. <detailsInstructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
is also similar. The fix for that was bumping the delay time.
Hi Vyom - would this be a good first issue because there is a previous similar solution?
I hit the same failure in my . This seems caused because expects the regular container to start before the postStart: I posted a PR() to add to the postStart. However, there are other approaches such as: Introduce as mentioned . Remove from this test case because this check does not look the primary purpose of this testcase.
The test mentioned by is similar to this flake and doesn't use . I can just remove it. I'm also going to add a comment on RunTogether to indicate it expects ordering to be enforced. That being said, shouldn't PostStart be enforced to run after the container is started? /assign
Hey PRs are more than welcome :)
I've submitted the PR, let me know if I didn't follow any best practices or anything else is required, thanks!
Skipped after was merged. Last CI run passed. /close
Closing this issue. <detailsIn response to : Skipped after was merged. Last CI run passed. </details
/reopen close the wrong one: is closed for swap test skip. this is for another flake. Sorry.
Reopened this issue. <detailsIn response to : /reopen close the wrong one: is closed for swap test skip. this is for another flake. Sorry. Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details

Discussion:
return b.String() } <del> // RunTogether returns an error the lhs and rhs run together </del> <ins> // RunTogether returns an error if containers don't run together </ins> func (o containerOutputList) RunTogether(lhs, rhs string) error { <ins> if err := o.RunTogetherLhsFirst(lhs, rhs); err != nil { if err := o.RunTogetherLhsFirst(rhs, lhs); err != nil { return err } } return nil } // RunTogetherLhsFirst returns an error if containers don't run together or if rhs starts before lhs func (o containerOutputList) RunTogetherLhsFirst(lhs, rhs string) error { </ins> lhsStart := o.findIndex(lhs, "Started", 0) if lhsStart == -1 { return fmt.Errorf("couldn't find that %s ever started, gotn%v", lhs, o)

ginkgo.By("Analyzing results") // readiness probes are called during pod termination <del> framework.ExpectNoError(results.RunTogether(prefixedName(PreStopPrefix, regular1), prefixedName(ReadinessPrefix, regular1))) </del> <ins> framework.ExpectNoError(results.RunTogetherLhsFirst(prefixedName(PreStopPrefix, regular1), prefixedName(ReadinessPrefix, regular1))) </ins> // liveness probes are not called during pod termination <del> err = results.RunTogether(prefixedName(PreStopPrefix, regular1), prefixedName(LivenessPrefix, regular1)) </del> <ins> err = results.RunTogetherLhsFirst(prefixedName(PreStopPrefix, regular1), prefixedName(LivenessPrefix, regular1)) </ins> gomega.Expect(err).To(gomega.HaveOccurred()) })

ginkgo.By("Analyzing results") // FIXME ExpectNoError: this will be implemented in KEP 4438 // liveness probes are called for restartable init containers during pod termination <del> err = results.RunTogether(prefixedName(PreStopPrefix, regular1), prefixedName(LivenessPrefix, restartableInit1)) </del> <ins> err = results.RunTogetherLhsFirst(prefixedName(PreStopPrefix, regular1), prefixedName(LivenessPrefix, restartableInit1)) </ins> gomega.Expect(err).To(gomega.HaveOccurred()) // FIXME ExpectNoError: this will be implemented in KEP 4438 // restartable init containers are restarted during pod termination <del> err = results.RunTogether(prefixedName(PreStopPrefix, regular1), restartableInit1) </del> <ins> err = results.RunTogetherLhsFirst(prefixedName(PreStopPrefix, regular1), restartableInit1) </ins> gomega.Expect(err).To(gomega.HaveOccurred()) }) })

framework.ExpectNoError(results.ExitsBefore(init1, restartableInit1)) }) <del> ginkgo.It("should start first restartable init container before starting second init container", func() { framework.ExpectNoError(results.StartsBefore(restartableInit1, init2)) }) </del> ginkgo.It("should run first init container and first restartable init container together", func() { <del> framework.ExpectNoError(results.RunTogether(restartableInit1, init2)) </del> <ins> framework.ExpectNoError(results.RunTogetherLhsFirst(restartableInit1, init2)) </ins> }) ginkgo.It("should run second init container to completion before starting second restartable init container", func() {