• k8s-merge-robot's avatar
    Merge pull request #23771 from jayunit100/ClusterVerificationFramework · 15ed9dbd
    k8s-merge-robot authored
    Automatic merge from submit-queue
    
    Cluster Verification Framework
    
    I've spent the last few days looking at the general patterns of verification we have that we tend to reuse in the e2es.  Basically, we need 
     
    - label filters
    - forEach and WaitFor (where forEach doesn't necessarily waitFor anything).
    - timeouts
    - multiple phases (reusable definition of state)
    - an extensible way to define cluster state that can evolve over time in a data object rather than as a set of parameters that have magic semantics
    
    This PR 
    - implements the abstract above functionality declaratively, and w/o hidden semantics.
    - addresses the sprawling duplicate methods in #23540, so that we can phase out the wrapper methods and replace them with well defined, extensible semantics for cluster state.
    - fixes the recently discovered #23730 issue (where kubectl.go is relying on examples.go, which is obviously wacky) by using the new framework to implement forEachPod in just a couple of lines and migrating the wrapper function into framework.go.
    
    There is some cleanup to do here, but this is seemingly working for a couple of use cases that are important (spark,cassandra,...,kubectl) tests. - i played with a few different ideas and this wound up seeming to be the most natural implementation from a usability standpoint... 
    
    in any case, just thought id push this up as a first iteration, open to feedback.
    
    @kubernetes/sig-testing @timothysc 
    15ed9dbd
examples.go 19.6 KB