2) will be ideal but given the velocity of main branch, what Mesos
ended up doing was simply having a separate repo since it will take
too long to merge back to main.

We ended up running it pre-release (or major PR merged) and not on
every PR, I will also comment on asking users to run it.

We did have conversations with Reynold about potentially have the
ability to run the CI on every [Mesos] tagged PR but we never got
there.

Tim

On Mon, Jan 8, 2018 at 10:16 PM, Anirudh Ramanathan
<fox...@google.com.invalid> wrote:
> This is with regard to the Kubernetes Scheduler Backend and scaling the
> process to accept contributions. Given we're moving past upstreaming changes
> from our fork, and into getting new patches, I wanted to start this
> discussion sooner than later. This is more of a post-2.3 question - not
> something we're looking to solve right away.
>
> While unit tests are handy, they're not nearly as good at giving us
> confidence as a successful run of our integration tests against
> single/multi-node k8s clusters. Currently, we have integration testing setup
> at https://github.com/apache-spark-on-k8s/spark-integration and it's running
> continuously against apache/spark:master in pepperdata-jenkins (on minikube)
> & k8s-testgrid (in GKE clusters). Now, the question is - how do we make
> integration-tests part of the PR author's workflow?
>
> 1. Keep the integration tests in the separate repo and require that
> contributors run them, add new tests prior to accepting their PRs as a
> policy. Given minikube is easy to setup and can run on a single-node, it
> would certainly be possible. Friction however, stems from contributors
> potentially having to modify the integration test code hosted in that
> separate repository when adding/changing functionality in the scheduler
> backend. Also, it's certainly going to lead to at least brief
> inconsistencies between the two repositories.
>
> 2. Alternatively, we check in the integration tests alongside the actual
> scheduler backend code. This would work really well and is what we did in
> our fork. It would have to be a separate package which would take certain
> parameters (like cluster endpoint) and run integration test code against a
> local or remote cluster. It would include least some code dealing with
> accessing the cluster, reading results from K8s containers, test fixtures,
> etc.
>
> I see value in adopting (2), given it's a clearer path for contributors and
> lets us keep the two pieces consistent, but it seems uncommon elsewhere. How
> do the other backends, i.e. YARN, Mesos and Standalone deal with accepting
> patches and ensuring that they do not break existing clusters? Is there
> automation employed for this thus far? Would love to get opinions on (1) v/s
> (2).
>
> Thanks,
> Anirudh
>
>

---------------------------------------------------------------------
To unsubscribe e-mail: dev-unsubscr...@spark.apache.org

Reply via email to