Skip to content
This repository has been archived by the owner on Jan 9, 2020. It is now read-only.

Submission client redesign to use a step-based builder pattern #365

Merged
merged 20 commits into from
Jul 14, 2017

Commits on Jul 5, 2017

  1. Submission client redesign to use a step-based builder pattern.

    This change overhauls the underlying architecture of the submission
    client, but it is intended to entirely preserve existing behavior of
    Spark applications. Therefore users will find this to be an invisible
    change.
    
    The philosophy behind this design is to reconsider the breakdown of the
    submission process. It operates off the abstraction of "submission
    steps", which are transformation functions that take the previous state
    of the driver and return the new state of the driver. The driver's state
    includes its Spark configurations and the Kubernetes resources that will
    be used to deploy it.
    
    Such a refactor moves away from a features-first API design, which
    considers different containers to serve a set of features. The previous
    design, for example, had a container files resolver API object that
    returned different resolutions of the dependencies added by the user.
    However, it was up to the main Client to know how to intelligently
    invoke all of those APIs. Therefore the API surface area of the file
    resolver became untenably large and it was not intuitive of how it was
    to be used or extended.
    
    This design changes the encapsulation layout; every module is now
    responsible for changing the driver specification directly. An
    orchestrator builds the correct chain of steps and hands it to the
    client, which then calls it verbatim. The main client then makes any
    final modifications that put the different pieces of the driver
    together, particularly to attach the driver container itself to the pod
    and to apply the Spark configuration as command-line arguments.
    mccheah committed Jul 5, 2017
    Configuration menu
    Copy the full SHA
    9ff8c69 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c23bb4c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f8d28b8 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2017

  1. Configuration menu
    Copy the full SHA
    90f77fb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    01b8d18 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    db1f0c2 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    20d9a90 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    1fb49a0 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    11c95e9 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    80a186d View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    1f58411 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    31985a6 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2017

  1. Configuration menu
    Copy the full SHA
    9e002aa View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    61a7561 View commit details
    Browse the repository at this point in the history
  3. style in Unit tests

    ifilonenko committed Jul 7, 2017
    Configuration menu
    Copy the full SHA
    fa78aad View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c477a0c View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2017

  1. Address comments.

    mccheah committed Jul 14, 2017
    Configuration menu
    Copy the full SHA
    5a76328 View commit details
    Browse the repository at this point in the history
  2. Merge branch 'submission-steps-refactor' of github.com:apache-spark-o…

    …n-k8s/spark into submission-steps-refactor
    mccheah committed Jul 14, 2017
    Configuration menu
    Copy the full SHA
    16adf71 View commit details
    Browse the repository at this point in the history
  3. Rename class for consistency.

    mccheah committed Jul 14, 2017
    Configuration menu
    Copy the full SHA
    ed52eee View commit details
    Browse the repository at this point in the history
  4. Attempt to make spacing consistent.

    Multi-line methods should have four-space indentation for arguments that
    aren't on the same line as the method call itself... but this is
    difficult to do consistently given how IDEs handle Scala multi-line indentation
    in most cases.
    mccheah committed Jul 14, 2017
    Configuration menu
    Copy the full SHA
    397312c View commit details
    Browse the repository at this point in the history