kubeflow / fairing

Python SDK for building, training, and deploying ML models
Apache License 2.0
337 stars 144 forks source link

allow caching and overriding single_snapshot for kaniko #554

Open omrishiv opened 3 years ago

omrishiv commented 3 years ago

What this PR does / why we need it: In our environment, image builds take a long time because the base layer is large and our updates are small. We have to use the in-cluster builder and this allows us to snapshot and cache the intermediate layers so subsequent builds become faster.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged): Fixes #

Special notes for your reviewer:

  1. Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

This PR should be backwards compatible with older versions.

Release note:

Enables creation of a cluster builder with the ability to cache and not use single_snapshots to enable faster incremental builds in certain situations:
        cluster_builder = ClusterBuilder(registry=constants.DEFAULT_DOCKER_REGISTRY,
                                         base_image=self._base_image_name,
                                         preprocessor=preprocessor,
                                         image_name=image_name,
                                         dockerfile_path='Dockerfile',
                                         context_source=create_minio_context_source(),
                                         cache=True,
                                         single_snapshot=False)
google-cla[bot] commented 3 years ago

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

:memo: Please visit https://cla.developers.google.com/ to sign.

Once you've signed (or fixed any issues), please reply here with @googlebot I signed it! and we'll verify it.


What to do if you already signed the CLA

Individual signers
Corporate signers

ℹ️ Googlers: Go here for more info.

google-oss-robot commented 3 years ago

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: OmriShiv To complete the pull request process, please assign jinchihe after the PR has been reviewed. You can assign the PR to them by writing /assign @jinchihe in a comment when ready.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files: - **[OWNERS](https://github.com/kubeflow/fairing/blob/master/OWNERS)** Approvers can indicate their approval by writing `/approve` in a comment Approvers can cancel approval by writing `/approve cancel` in a comment
xauthulei commented 3 years ago

@OmriShiv , please accept the CLA for the contribution firstly, Thanks

omrishiv commented 3 years ago

@xauthulei Thank you, working on it with the org