feat: update to Kubeflow Pipelines 2.1.0 #122
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
closes: #115
related: #65
This PR updates to Kubeflow Pipelines 2.1.0. We have made a small fork of Kubeflow Pipelines, with the only difference from upstream being that ours will work with external S3/MinIO object stores, see https://github.com/deployKF/kubeflow-pipelines for more information about our fork. Hopefully, once kubeflow/pipelines#10625 makes its way into a release, we won't need our fork anymore.
First, please note that this implementation of Kubeflow Pipelines 2.0 is backward-compatible with runs compiled by the KFP V1 SDK (in both v1 and v2-compatible modes).
Second, I would like to highlight that our custom images are still ONLY built for
linux/amd64
, and are not able to run on ARM yet, see the upstream issue for more information kubeflow/pipelines#10309.Finally, here are a bunch of technical details about how I got Kubeflow Pipelines 2.0 to work:
The
kubeflow_tools.pipelines.kfpV2.minioFix
value has been removed:The default
kubeflow_tools.pipelines.kfpV2.defaultPipelineRoot
is now{scheme}://{bucket_name}/v2/artifacts/{profile_name}?region={bucket_region}&endpoint={endpoint}&disableSSL={not_use_ssl}&s3ForcePathStyle=true
:gcloud.dev
Go package to access object stores during runs?endpoint=
and reading auth fromAWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
(which we inject with a Kyverno ClusterPolicy).you should ignore most changes under
./generator/templates/manifests/kubeflow-tools/pipelines/upstream
because it's mostly because we have moved to consuming the manifests directly fromkubeflow/pipelines
, rather thankubeflow/manifests
and they structure their folders differently. Furthermore, we use a lot of patches/removals, so most of those manifests don't actually make it to the final render