* switch to git-cliff instead of changelog
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* test for kfp-server-api codegen in ci
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
---------
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
initial draft of k8s native api test plan
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
adding few more tests
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
adding more tests and expected results
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
adding question to K8s storage with custom role binding section
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
adding few more test cases
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
adding a new test case and some section details
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
adding expected result to the test cases
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
adding expected results and fixing a test description
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
fixing section titles
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
resolving pr comments
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
removing odh/rhoai only tests
reducing the Without migration script test scope
removing 2 sections as per pr comment - consolidated it with other sections
Signed-off-by: Nelesh Singla <117123879+nsingla@users.noreply.github.com>
Also disable kfp-pipeline-spec source install,
but keep the utility code to install it again
for kfp sample tests.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
# Conflicts:
# sdk/python/kfp/local/pipeline_orchestrator_test.py
# sdk/python/kfp/local/task_dispatcher_test.py
# sdk/python/test_data/pipelines/component_with_pip_index_urls.py
Summary of the various changes are below:
--
Update backend protobuf runtime dependencies:
This change comes with a large changeset to accommodate the api breaking
changes introduced with protoc-gen-openapiv2 (grpc-gateway v2+) and other associated (protoc-gen-go, protobuf, etc.).
Some noteworthy changes:
* Newer protoc-gen-go-grpc requires UnimplementedXxxServer struct to help
with forward compatibility and optional method implementations.
Because of this, we can no longer used shared servers for both v1 and v2
APIs. To keep the diff low this change adds a wrapper server to split
them up, whilst keeping shared code co-located.
* use custrom marshaler for grpc-gateway to retain proto field names as json field names
* client go code is updated to accommodate other breaking changes
* presubmit and associated scripts are removed as they are no longer used
by CI.
--
Update testing and CI code to accommodate protobuf upgrades:
This change makes various updates to CI and testing code to achieve
this.
GitHub workflows:
Protobuf dependency installation and management are moved to a separate
action. This allows us to manage versions in one location and remove
redundant code.
Similarly, installation of KFP-Kubernetes, and transitively KFP sdk are
also moved to a separate action.
Presubmit tests now support optional dep installation, allowing us to
instead opt to install dependencies from the CI env instead. This is
to prevent the script from overwriting the python packages we install
via our new re-usable GitHub action.
kfp-k8s and kfp-sdk execution tests have been updated to leverage
kfp-pipeline-spec from the source for runtime tests.
kfp-readiness requirements are moved to their own file, since the
dependency requirement for this script is much smaller than sdk, it makes
more sense to scope this to a smaller, more targeted requirements file.
--
Bump protobuf to 6.x for kfp-kubernetes-platform
The change also includes the re-generated python and go code.
There is also an update to setup.py, where dependencies are split into
separate requirements.txt to supplement dep management via third party
tools.
There are two noteworthy changes to the Makefile:
* Support for installing dependent packages sourced locally, via:
USE_FIND_LINKS, FIND_LINKS_PATH. See inline comments for details.
* Support for fetching dependent protos. Here we re-use the make target
already available from pipeline_spec.
--
Bump protobuf to 6.x for kfp sdk
This change will bump KFP sdk to leverage protobuf 6.x. It also bumps
kfp-pipeline-spec to 0.8.0 which too requires protobuf 6.x.
Note that the version of KFP is also bumped to 2.4.0. This is required
because CI will fail otherwise when it attempts to retrieve KFP 2.3.0
due to a mismatch between kfp sdk 2.13 protobuf requirements (>=4.x,<5),
and kfp sdk 2.14 requirements (>=6.x, <7).
In order to accompany CI, we need to also ensure any CI that tries to
re-compile KFP from source must also install kfp-pipeline-spec from source,
otherwise it will try to download 0.8.0 before it is released. In order to
support this case, there is an env var introduced:
"KFP_PIPELINE_SPEC_PACKAGE_PATH", this var when set will have the executing
pipeline install pipeline-spec from the designated store instead of pypi
(transitively through KFP).
This change is also utilized in some of the kfp.local tests that will
compile and run tests locally via subprocess.
--
Bump protobuf to 6.x for pipeline spec
This change bumps support for kfp-pipeline-spec to 6.x. This is a
significant bump by two major versions. We specifically opt not to support
a range (e.g. >=5.x,<=6.x) because we are bumping protoc to 30.x+ and this
compiler is only compatible with 6.x+.
Accompanying this change is a change to the makefile command. Previously,
the developer was required to hunt down and manually download the protos
originating from the protobuf libraries in git. The makefile will now
download these proto dependencies for the user.
--
Update release and generator dockerfile
Update proto & swagger generator libraries for generator dockerfile.
--
Proto tests for backwards compatibility
The generated files in the proto-test folder were generated using
(generated) protofiles pre-proto upgrades.
The proto-test folder verifies that the newly generated proto files
will result in same json objects, as well as unmarshal
correctly into the same proto go structs.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
- Update URL from /overview/pipeline-root/ to /concepts/pipeline-root/
- Resolves 404 error when users click the documentation link
- Located in frontend/src/components/NewRunParametersV2.tsx line 245
Signed-off-by: Mohamed Hasan <93756682+mustachemo@users.noreply.github.com>
This PR fixes several minor typos in backend/src/apiserver/resource/resource_manager.go:
Changes "gabarage-collected" to "garbage-collected"
Changes "successfull" to "successful"
Fixes "successfully workflows runs" and "failed workflows runs" to "successful workflow runs" and "failed workflow runs"
Corrects "reties" to "retries"
These changes improve code clarity and documentation quality. No functional code changes were made.
Signed-off-by: milosjava <milosjava@gmail.com>
After making name and display_name separate fields in the API, the
pipeline sample upload code needed to accomodate that, otherwise it
would try to upload the pipeline without a display name, which is a
required field. The backwards compatibility was handled at the API
server level but this code bypassed the API server endpoints and used
the resource manager directly.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Add the name field for pipelines and pipeline versions
The API only accepted display_name, which accepted arbitrary characters
but this does not work well in Kubernetes native API mode (Kubernetes
pipeline store) since object names must be a valid DNS subdomain.
This commit adds the name field which is required, but for backwards
compatibility, the API will accept just name or display_name and
duplicate the set value to the unset field. For existing users, they
will only see that there is an extra field of "name" on pipelines and
pipeline versions that is the same value as "display_name".
The database migration logic adds a new DisplayName column and sets the
values to what was in the Name column. Confusingly, the API field
"display_name" used to map the a database column of "Name".
The UI now handles both name and display name but for a simpler user
experience, the display name form fields when uploading a pipeline are
hidden when not in Kubernetes native API mode (Kubernetes pipeline
store) since there is no need to have a display name since there is no
naming restrictions on the name.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Add a better API error when a Kubernetes object name is invalid
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
---------
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* chore: Adding Devin's DeepWiki to README
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
using Devin's badge instead
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Adding badge and section:
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
* adding warning and moved below documentation
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
---------
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
* Minimize the Kubernetes version range in the CI
This reduces the matrix to only include the low and high versions.
See the KFP community call notes for more context:
https://docs.google.com/document/d/1cHAdK1FoGEbuQ-Rl6adBDL5W2YpDiUbnMLIwmoXBoAU/edit?tab=t.0#heading=h.fovolzywu84d
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Reduce the testing matrix for Python versions
This reduces the Python versions being tested to the low and high
versions to reduce GitHub CI consumption.
See the KFP community call discussion for more context:
https://docs.google.com/document/d/1cHAdK1FoGEbuQ-Rl6adBDL5W2YpDiUbnMLIwmoXBoAU/edit?tab=t.0#heading=h.fovolzywu84d
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Add an option to run integration tests locally
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Stop using whalesay in the tests
The container image is over 10 years old and is in a format that is
deprecated on newer Kubernetes versions.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
---------
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
Updates V2_DRIVER_COMMAND argument and adds runtime arguments for starting a remote debug session in GoLand.
Signed-off-by: agoins <alyssacgoins@gmail.com>
* chore: Updating KFP docs
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
* remove html reference
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
* updating python version
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
* Update index.rst
Co-authored-by: Matt Prahl <mprahl@users.noreply.github.com>
Signed-off-by: Francisco Arceo <farceo@redhat.com>
* Update quickstart.rst
Co-authored-by: Matt Prahl <mprahl@users.noreply.github.com>
Signed-off-by: Francisco Arceo <farceo@redhat.com>
* Update quickstart.rst
Co-authored-by: Matt Prahl <mprahl@users.noreply.github.com>
Signed-off-by: Francisco Arceo <farceo@redhat.com>
* rebasing
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
* removed overview file
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
* updated to make things look better
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
* Update docs/source/overview.rst
Co-authored-by: Matt Prahl <mprahl@users.noreply.github.com>
Signed-off-by: Francisco Arceo <farceo@redhat.com>
* Update docs/source/overview.rst
Co-authored-by: Matt Prahl <mprahl@users.noreply.github.com>
Signed-off-by: Francisco Arceo <farceo@redhat.com>
* Update docs/source/installation.rst
Co-authored-by: Matt Prahl <mprahl@users.noreply.github.com>
Signed-off-by: Francisco Arceo <farceo@redhat.com>
* updating conf.py
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
---------
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: Francisco Arceo <farceo@redhat.com>
Co-authored-by: Matt Prahl <mprahl@users.noreply.github.com>
Adjusted the timeout from 3 to 4 minutes and polling interval from 10 to 5 seconds in the cache integration test. This ensures more robust testing by allowing sufficient time for operations to complete while increasing polling frequency.
Signed-off-by: Helber Belmiro <helber.belmiro@gmail.com>
Prior to this commit, there was a workflow template added for every unique
retryStrategy setting. This is now consolidates to a single retryStrategy
template.
Signed-off-by: agoins <alyssacgoins@gmail.com>
* feat(backend/sdk): enable dsl.Collected for params & artifacts
Signed-off-by: zazulam <m.zazula@gmail.com>
* feat(backend): collect through loops & dags
Signed-off-by: zazulam <m.zazula@gmail.com>
To enable users to use loops similar to subdags, the initial collecting
implementation went only 1 layer deep of loops/subdags. This
implementation serves to handle multifacted approaches of pipelines that
users can generate.
---------
Signed-off-by: zazulam <m.zazula@gmail.com>
This allows the launcher command to be overridden with
the V2_LAUNCHER_COMMAND environment variable. This is useful if you need
to override the command to launch Delve for debugging or you have a
situation that requires using a different binary in the container image
based on the environment.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
Various owners' files reviewers/approvers are no longer involved with
the community. Additionaly, we have various other folks that are
involved and have shown an active interest in reviewing various portions
of the code base. This change updates all owners files to reflect this
current state of the community.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
Prior to this change, if a user requested a pipeline version that no
longer exists, it'd cause a whole stack trace to be displayed in the
logs. For benign errors, this now is a single info log.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
It is checked that not both are passed in as parameters, however in the
case of passing in the `pipeline_name` the `pipeline_id` is fetched via
the client and then both values are passed to `upload_pipeline_version`
defeating the initial check and raising an error.
Simply removing the `pipeline_name` argument from the call to
`upload_pipeline_version` fixes this as the `pipeline_id` is always set.
Signed-off-by: Christian Junker <chjdev@users.noreply.github.com>
* Add the Kubernetes native pipeline store
This also improves cache update race conditions in the webhooks.
Co-authored-by: Matt Prahl <mprahl@users.noreply.github.com>
Signed-off-by: Ricardo M. Oliveira <rmartine@redhat.com>
* Use controller-runtime for the non-caching client
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Put the Kubernetes native CI manifests under the Argo manifests
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Fix the flaky Kubernetes pipeline store tests
Some tests set the viper configuration of POD_NAMESPACE while others
didn't and so the order of the tests mattered. This now sets and resets
the viper configuration for each test.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Modify the suggested pipeline version name to be a valid K8s name
This is more important for the Kubernetes pipeline store.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Fix the ml-pipeline Service ports in K8s native mode
The KFP UI automatically uses the first port listed in the ml-pipeline
Service to communicate with the KFP API. Using a JSON patch to add the
webhook port ensures it doesn't change the order.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
---------
Signed-off-by: Ricardo M. Oliveira <rmartine@redhat.com>
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
Co-authored-by: Ricardo M. Oliveira <rmartine@redhat.com>
* chore(release): bumped version to 2.5.0
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* remove unneeded ci files
these are added from the release script, until the scripts are updated,
these are manually removed.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* revert incorrect changelog changes for 2.5
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* correct 2.5.x change log (#11878)
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
---------
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* use packaged pipeline spec in k8s platform pkg
kfp-kubernetes expects pipeline spec to be present in global namespace
this change updates generate proto code to replace this import to
correctly reference the spec in the kfp.pipeline_spec namespace.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* update to protoc 3.20
upgrading to 3.20 resolves issues where some of the proto python
generated code attempts to directly create descriptors. This issue is
encountered when trying to use kfp-kubernetes packages with kfp sdk,
forcing the user to downgrade protobuf to 3.20 or lower despite the
kfp sdk and kfp-kubernetes supporting >=4.0. This change resolves
this issue.
updating protoc also requires regeneration of all go and python proto code, as well us updates to the api generate and release images.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
---------
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
For context, the commit 70aaf8a9a4 removed
support for the old fields (without a resource_ prefix). This was
added back in commit 6ebf4aae03 but done in a way
that broke any usage of pipeline input parameters but was to support the
current KFP backend which did not yet support the new fields. In commit
7c931ae201, the old fields were removed
again but added support for the new field in KFP backend.
This commit addresses the case where a user is using a new SDK but with
a KFP backend prior to 2.4.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
fix(components): Upgrade default Tensorflow version when setting test set and retrieving training artifacts to random uuid when uploading plots in Starry Net pipeline
fix(components): Bump Starry Net dataprep, trainer and predictor image versions.
Signed-off-by: Googler <nobody@google.com>
PiperOrigin-RevId: 747428987
If the run is associated with a ScheduledWorkflow and the
OwnerReferencesPermissionEnforcement admission controller is on, it
requires the update verb on scheduledworkflows/finalizers to set the
proper owner reference.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* fix(tests): free up space in some test runners
Signed-off-by: droctothorpe <mythicalsunlight@gmail.com>
* Add comments and logs
Signed-off-by: droctothorpe <mythicalsunlight@gmail.com>
---------
Signed-off-by: droctothorpe <mythicalsunlight@gmail.com>
This change relies on manifest yamls to specify the launcher & driver
that is pinned to a specific KFP version. The goal is to decouple having
to build launcher/driver at separate stages compared to api server.
This is accomplished by setting the hardcoded default to point to
"latest" and during release, api server is built with this hardcoding,
and the images for driver/launcher are patched into manifests post build
along with the other images.
The apiserver deployment manifest is reformatted using yq so the next
time the release.sh is ran, the user is not surprised by the entire file
reformatting unexpectedly.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
# Conflicts:
# manifests/kustomize/base/pipeline/ml-pipeline-apiserver-deployment.yaml
# Conflicts:
# .github/resources/manifests/tekton/kustomization.yaml
As per community discussion, the tekton backend is being removed due to
lack of maintainers.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
If the pipeline run is submitted without specifying an optional
parameter and there is no default, it was not handled by the driver.
The approach taken is explicitly set null for these values and let the
driver handle if the component parameter has a default that can be
used in the launcher.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
AFAIU no remote schema is currently supported for Local. This patch
consolidates all possible values under an Enum and then checks the
supplied url against all possible prefixes.
Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
* Add a mutating webhook for the PipelineVersion kind
This mutating webhook adds labels to query pipeline versions by their
pipeline ID and pipeline name, and adds an owner's reference to the
pipeline it's a part of.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Delete the Argo Workflow object after successful SDK execution test
This will hopefully free up resources on the cluster and reduce the CI
flakes.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
---------
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
Replaced the previous workaround for checking if the DB is empty with
mlmd_store.get_context_types(), as the upstream issue (#28) is now resolved.
Signed-off-by: Abhinav Sai D <abhinavsai491@tutanota.com>
* Create a validating webhook for the PipelineVersion kind
Signed-off-by: VaniHaripriya <vmudadla@redhat.com>
* Fix the manifests for the validating webhook
This fixes deployment and local development for the Kubernetes native
API manifests.
This also addresses other feedback.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
---------
Signed-off-by: VaniHaripriya <vmudadla@redhat.com>
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
Co-authored-by: VaniHaripriya <vmudadla@redhat.com>
* add backend support for k8s platform inputs
This change adds driver support for input parameter support for the
kubernetes platform spec. Input resolution change is extracted and made
more generic so it may be re-used when building out the container spec
for the k8s config.
Also add unit tests for constant & runtime input parameters.
TaskOutput parameter support are omitted due to a lack of appropriate
mlmd mock framework.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* add sdk implementation for k8s params inputs
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* add tests for k8s input params
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* add setup/teardown of prereqs and secret tests
and update/re-enable secret env tests
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* have kfp sample tests use local python pkgs
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* use a better configmap k8s name input...
Add support for multiple input types for pull secrets.
Clarify toleration docstring
Remove unnecessary resolve function
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
---------
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* Fix code execution on untrusted user input
Signed-off-by: VS <vspachyn@gmail.com>
* Remove redundant env variable
Signed-off-by: VS <vspachyn@gmail.com>
---------
Signed-off-by: VS <vspachyn@gmail.com>
* make component names in dag more unique
Signed-off-by: Stijn Tratsaert <stijn.tratsaert.it@gmail.com>
* tweak ordering so that renaming is handled in LIFO fashion
Signed-off-by: Stijn Tratsaert <stijn.tratsaert.it@gmail.com>
* add test that reuses a pipeline multiple times
Signed-off-by: Stijn Tratsaert <stijn.tratsaert.it@gmail.com>
---------
Signed-off-by: Stijn Tratsaert <stijn.tratsaert.it@gmail.com>
* fix the PPC image
Signed-off-by: juliusvonkohout <45896133+juliusvonkohout@users.noreply.github.com>
* Update deployment.yaml
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
---------
Signed-off-by: juliusvonkohout <45896133+juliusvonkohout@users.noreply.github.com>
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
* Update mysql-deployment.yaml
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
* Update mysql-deployment.yaml
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
* Update mysql-deployment.yaml
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
---------
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
This change adds the necessary proto changes to accomodate parameterized
input for various k8s platform fields: secrets, configmaps, node
selectors, tolerations, and image pull secrets.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
In 9afe23e7 we introduced blackend dropping of unknown fields for
unmarshalling, but going forward we want to handle this more on a case
by case basis. In the case for driver we should drop them because by
this point the api server has declare the pipeline spec is acceptable,
so the driver should not fail here. As such we keep driver changes, but
revert those utilized by the api server.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* Fix format string in get_kfp_package_path
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Use the in repo SDK for "k8s execution tests"
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
---------
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
The KFP SDK execution tests weren't using the SDK from the pull request.
Additionally, this commit adds support for choosing the right SDK in
forks.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
Often times, pods could not be scheduled because of insufficient CPU
and the worker would run out of disk space.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
This allows dsl.import to leverage Modelcar container images in an OCI
repository. This works by having an init container prepull the image and
then adding a sidecar container when the launcher container is running.
The Modelcar container adds a symlink to its /models directory in an
emptyDir volume that is accessible by the launcher container. Once the
launcher is done running the user code, it stops the Modelcar
containers.
This approach has the benefit of leveraging image pull secrets
configured on the Kubernetes cluster rather than require separate
credentials for importing the artifact. Additionally, no data is copied
to the emptyDir volume, so the storage cost is just pulling the Modelcar
container image on the Kubernetes worker node.
Note that once Kubernetes supports OCI images as volume mounts for
several releases, consider replacing the init container with that
approach.
This also adds a new environment variable of PIPELINE_RUN_AS_USER to
set the runAsUser on all Pods created by Argo Workflows.
Resolves:
https://github.com/kubeflow/pipelines/issues/11584
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
fix:
add log upload functionality
changes
test
update permission
update permission
fail test
remove exit
update permission
update
update
add condition
test
test
Remove exit
test
fix pod name
Remove exit
refactor
test
remove exit
Signed-off-by: chahatsagarmain <chahatsagar2003@gmail.com>
This adds support for the following placeholders in the KFP backend:
- dsl.PIPELINE_JOB_NAME_PLACEHOLDER
- dsl.PIPELINE_JOB_RESOURCE_NAME_PLACEHOLDER
- dsl.PIPELINE_JOB_ID_PLACEHOLDER
- dsl.PIPELINE_TASK_NAME_PLACEHOLDER
- dsl.PIPELINE_TASK_ID_PLACEHOLDER
Resolves:
https://github.com/kubeflow/pipelines/issues/10453
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* updated backend tests
Signed-off-by: Daniel Dowler <12484302+dandawg@users.noreply.github.com>
* backend switched from ioutil to os and io
Signed-off-by: Daniel Dowler <12484302+dandawg@users.noreply.github.com>
---------
Signed-off-by: Daniel Dowler <12484302+dandawg@users.noreply.github.com>
* Allow recurring runs to always use the latest pipeline version
This makes the pipeline_version_id optional and makes the
Scheduled Workflow controller levarege the REST API to launch the run
rather than rely on compiled Argo Workflows stored in the
ScheduledWorkflow object.
The previous behavior is preserved if the user is using the v1 API or
specifies a pipeline version ID or pipeline spec manifest.
Resolves:
https://github.com/kubeflow/pipelines/issues/11542
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Add instructions to debug the SWF controller
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
---------
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Use the correct image registry for replacements in integration tests
The image registry was changed to GitHub Container Registry in the 2.4
release.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Print the pod logs when the pods fail to start in integration tests
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Fix the sample compilation in the API server container build
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Show the output when building the container images in CI
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
---------
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
This change adds additional sampleconfig options that provide support
for uploading new Pipelines and PipelineVersion samples. To accommodate
this and backwards compatibility the structure of the samples config has
been changed. Configs following the old format will continue to be
supported.
Sample config code is also moved to its own file so as not to bloat
main.go
In order to handle conflicts, and detecting pipeline/pipelineVersion
existence, additional db queries are made per pipeline and pipeline
version at apiserver startup.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* bump requests-toolbelt to 1.0.0
Signed-off-by: Simon De Ridder <simon.deridder+gitlab@silverfin.com>
* remove changes in test/kfp-functional-test
Signed-off-by: Simon De Ridder <simon.deridder+gitlab@silverfin.com>
---------
Signed-off-by: Simon De Ridder <simon.deridder+gitlab@silverfin.com>
We have elected to adopt KEPs instead of ADRs to track
important decisions and proposals for the KFP project.
This brings us into better alignment with the wider Kubeflow project.
More context can be found at https://cloud-native.slack.com/archives/C073N7BMLB1/p1734476179079839
Signed-off-by: Anish Asthana <anishasthana1@gmail.com>
* chore(release): bumped version to 2.4.0
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* remove unneeed auto generated files
these files are created via the release.sh and don't seem like they are
needed any more, a follow up change to fix the automation here will also
be needed
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
---------
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
Also update the go version in api generator image to 1.23
The previous version used 1.20.5, in this version the go generate
command would fail on the current go mod (using 1.22), because it
expects the go version to be in the format "x.y" insted of "x.y.z", in
1.23 this is no longer an issue.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
This change switches majority of the images coming from gcr repository
to the ghcr repository. For this various manifests were updated, as well
as the hardcoded launcher/driver images. All images that are regularly
updated during the release process have been switched over to ghcr.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
The SDK execution tests were not run on the PR CI that fixed the
pipeline run state to be failed even when an exit handler is run after a
failed component.
This also makes the SDK execution tests run whenever the backend
compiler code is modified to help prevent a similar issue.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
As described in #10917, exit handlers were implemented as dependent
tasks that always ran within an Argo Workflow. The issue is that this
caused the pipeline to have a succeeded status regardless of if the
tasks within the exit handlers all succeeded.
This commit changes exit handlers to be exit lifecycle hooks on an
Argo Workflow so that the overall pipeline status is not impacted.
Resolves:
https://github.com/kubeflow/pipelines/issues/11405
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
This makes the driver command configurable so that Delve can be used to
execute the driver binary and adds Make targets to build the Driver
image for debugging.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
The API introduced new fields prefixed with Resource (e.g.
ResourceCpuLimit) to replace the old fields without the prefix. The
Driver hadn't been updated to honor those fields but the SDK started
using them which led to unexpected behavior.
The Driver now honors both fields but prioritizes the new fields. The
SDK now only sets the new fields.
The outcome is that resource limits/requests can now use input
parameters.
Note that pipeline_spec_builder.py was doing some validation on the
limits/requests being set, but that's already handled in the user facing
method (e.g. set_cpu_limit).
Resolves:
https://github.com/kubeflow/pipelines/issues/11500
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
This updates k8s.io/client-go to v0.30.1 and
sigs.k8s.io/controller-runtime to v0.18.6. Updating any higher requires
updating github.com/argoproj/argo-workflows/v3 which requires updating
to Go 1.23 which isn't widely available in base container images yet.
Some other dependencies were updated for dependency resolution to
succeed.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Add instructions to develop the API server locally with kind
This provides instructions to provision a kind cluster with all
components deployed except for the API server. The API server can then
be run locally through VSCode for debugging and faster development.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
* Add missing k8s_version input to the kfp-cluster GH action
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
---------
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
This makes it so that the API server will first try the in-cluster
configuration and fallback to a kubeconfig. This is helpful when the API
server is running outside of the cluster (e.g. locally) so you don't
need to create token files.
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
The template and first ADR draws inspiration from similar docs produced by Greg Sheremeta and Edson Tirell in the Open Data Hub organization.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
This change allows component base images to be parameterized using runtime pipeline parameters. The container images can be specified within an @pipeline decorated function, and takes precedence over the @component(base_image=..) argument.
This change also adds logic to resolve these runtime parameters in the argo driver logic. It also includes resolution steps for resolving the accelerator type which functions the same way but was missing the resolution logic. The resolution logic is a generic workaround solution for any run time pod spec input parameters that cannot be resolved because they cannot be added dynamically in the argo pod spec container template.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* feat(backend): Add Parallelism Limit to ParallelFor tasks
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* feat(backend): Add intermediate Template for iterator Tasks in ArgoCompiler
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* test: Add argoCompiler test case to validate individual parallel-limited tasks
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* test: Update tests for ParallelFor loop update
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* fix(backend): Fix broken dependantTasks in ParallelFor
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* fix(backend): pass correct ParentDagID to iterator DAG
- Passthrough ParentDagID rather than DriverExecutionID to iterator such
that iteration item correctly detects dependentTasks.
- Remove depends from iterator DAG as it is already handled by
root-level task
- Update Iterator template names/nomenclature for clarity
- Update tests accordingly
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* fix(backend): Remove DAG Driver from Iterator abstraction template
- Removes the Driver pod from the Iterator abstraction-layer template
as it confuses MLMD and is purley an Argo implementation
- Drivers still used on the Component and Iteration-item templates
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
---------
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
`outputDefinitions` has not been used since
`collectOutPutParametersFromCache()` was removed in
0be57c3880.
Signed-off-by: Sébastien Han <seb@redhat.com>
* Created Snowflake data unload component
Signed-off-by: Jun Sheng <jscheng@google.com>
* chore: rename subfolder
Signed-off-by: Jun Sheng <jscheng@google.com>
---------
Signed-off-by: Jun Sheng <jscheng@google.com>
* Catch exceptions in case of client side timeouts of k8s_watch.stream, adjust timeouts according to the recommendations of the Kubernetes client authors.
Signed-off-by: Evgeniy Mamchenko <evgeniy@deevio.ai>
* Remove catch-all except so that unexpected errors are not hidden from users.
Signed-off-by: Evgeniy Mamchenko <evgeniy@deevio.ai>
* Add pass statement below server-side timeout comment for clarity.
Signed-off-by: Evgeniy Mamchenko <evgeniy@deevio.ai>
* Improve the comment about the server-side timeout.
Signed-off-by: Evgeniy Mamchenko <evgeniy@deevio.ai>
* Replace pass with continue in the handler of ReadTimeoutError.
Signed-off-by: Evgeniy Mamchenko <evgeniy@deevio.ai>
---------
Signed-off-by: Evgeniy Mamchenko <evgeniy@deevio.ai>
* chore(sdk): support Python 3.13
Signed-off-by: Chen Sun <chensun@users.noreply.github.com>
* chore: remove python_requires upperbound for kfp-kubernetes
Signed-off-by: Chen Sun <chensun@users.noreply.github.com>
---------
Signed-off-by: Chen Sun <chensun@users.noreply.github.com>
An api breaking change was introduced in 2.10 that removed deprecate
fields in the compilation step for the accelerator fields. This has
resulted in the driver being unable to fetch the old fields. This change
re-introduces the deprecated fields to allow for a proper timespan for
allowing driver to adjust to the new values.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* chore(sdk): remove kfp.deprecated and legacy samples and tests
Signed-off-by: Chen Sun <chensun@users.noreply.github.com>
* chore: clean up unused imports
Signed-off-by: Chen Sun <chensun@users.noreply.github.com>
---------
Signed-off-by: Chen Sun <chensun@users.noreply.github.com>
* chore(sdk): release KFP SDK 2.10.0
Signed-off-by: Chen Sun <chensun@users.noreply.github.com>
* fix: version check regex in test
Signed-off-by: Chen Sun <chensun@users.noreply.github.com>
---------
Signed-off-by: Chen Sun <chensun@users.noreply.github.com>
* feat(sdk)!: stop auto-populating metrics as dag output
Signed-off-by: Chen Sun <chensun@users.noreply.github.com>
* add release note
Signed-off-by: Chen Sun <chensun@users.noreply.github.com>
---------
Signed-off-by: Chen Sun <chensun@users.noreply.github.com>
KFP v1 supported setting pipeline-level configuration via a
`PipelineConf` class. This class was deprecated and no replacement
was added to KFP v2.
add new PipelineConfig class to support setting pipeline-level
configuration in KFP v2.
Signed-off-by: Greg Sheremeta <gshereme@redhat.com>
This commit introduces the ability to run the component inside a virtual
environment, which is particularly useful when the Python system site package
directory is read-only, causing pip to fail during the installation of kfp and
other dependencies.
To bypass this issue, a writable temporary directory is selected to create a
virtual environment that inherits the global system site packages. The entire
workflow is then executed from within this virtual environment.
Furthermore, a new field, `use_venv`, has been added to the component
decorator, with a default value of `False`.
Signed-off-by: Sébastien Han <seb@redhat.com>
KFP v1 supported setting pipeline-level configuration via a
`PipelineConf` class. This class was deprecated and no replacement
was added to KFP v2.
add new PipelineConfig message in the api to support setting
pipeline-level configuration in KFP v2.
Signed-off-by: Greg Sheremeta <gshereme@redhat.com>
Moving components that as no maintenance activities in the past two
years to contrib folder.
Signed-off-by: Chen Sun <chensun@users.noreply.github.com>
* feat(backend): Remove PipelineSpec Template storage from ObjStore responsibilies. Fixes#10509
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* chore: Remove BadObjStore unit tests (no longer applicable)
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* test: Update backend unit tests to not retrieve PipelineSpec from mock ObjStore
- Add PipelineSpec to mock PVs as they are no longer retrieved from
ObjStore
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
---------
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* feat(sdk): Allow setting a default of execution caching disabled via a compiler CLI flag and env var
Co-authored-by: Greg Sheremeta <gshereme@redhat.com>
Signed-off-by: ddalvi <ddalvi@redhat.com>
* Add tests for disabling default caching var and flag
Signed-off-by: ddalvi <ddalvi@redhat.com>
---------
Signed-off-by: ddalvi <ddalvi@redhat.com>
Co-authored-by: Greg Sheremeta <gshereme@redhat.com>
This commit adds a github workflow that will build v2 images and push
them to GHCR. It uses the GITHUB_TOKEN to authenticate and uses docker
provisioned github actions to streamline the flow. The workflow also
creates attestations for the packages which can be used to verify
provenance and integrity. The workflow can be triggered manually or via
another workflow call. The latter is to supplement future automation
flows.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* remove driver logs from executor
These logs congest the executor runtime logs making it difficult for the
user to differentiate between logs. The driver logs are unnecessary here
and can be removed to reduce this clutter.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* remove duplicate emissary call in executor
As per the initial inline dev comment, argo podspecpatch did not add the
emissary call, and had to be manualy added. This was fixed a couple of
argo versions back. However, as a result executor pod makes double calls
to the executor, which as a consequence also results in superflous logs.
This change removes the additional call to emissary to resolve this.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
---------
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
This change allows KFP UI to fallback to UI host namespace when no
namespaces are provided when referencing the artifact object store
provider secret, in default kubeflow deployments this namespace is
simply "kubeflow", however the user can customize this behavior by
providing the environment variable "SERVER_NAMESPACE" to the KFP UI
deployment.
Further more, this change addresses a bug that caused URL
parse to fail when parsing endpoints without a protocol, this will
support such endpoint types as <ip>:<port> for object store endpoints,
as is the case in the default kfp deployment manifests.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
Update kfp backend and kubernetes sdk to support mounting EmptyDir
volumes to task pods.
Inspired by #10427Fixes: #10656
Signed-off-by: Greg Sheremeta <gshereme@redhat.com>
* test: Add script and GitHub Action for kfp-kubernetes-library
Signed-off-by: Diego Lovison <diegolovison@gmail.com>
* Rename
Signed-off-by: Diego Lovison <diegolovison@gmail.com>
* Update bash to have sudo
Signed-off-by: Diego Lovison <diegolovison@gmail.com>
---------
Signed-off-by: Diego Lovison <diegolovison@gmail.com>
* Created a new GitHub action to reuse the creation of a KFP cluster
Signed-off-by: hbelmiro <helber.belmiro@gmail.com>
* Created a new GHA for deploying a pure KFP cluster
Signed-off-by: hbelmiro <helber.belmiro@gmail.com>
---------
Signed-off-by: hbelmiro <helber.belmiro@gmail.com>
* Add ability to mount self-signed certs to kfp
This update allows CA bundles to be mounted to the launcher/executor pods since those make external connections to object store, which can be behind self signed certs.
Detailed Changes:
- Added `REQUESTS_CA_BUNDLE` to the environment variables. This is necessary
because many Python-based libraries (e.g., requests) utilize this environment
variable for SSL/TLS certificate verification. Notably, even though Boto3
is documented to use `AWS_CA_BUNDLE`, tests have shown that it only respects
`REQUESTS_CA_BUNDLE`. Reference:
https://requests.readthedocs.io/en/latest/user/advanced/#ssl-cert-verification
and https://github.com/aws/aws-cli/issues/3425.
- Configured `AWS_CA_BUNDLE` for AWS CLI and related utilities to ensure AWS
services utilize our custom CA bundle for SSL/TLS.
- Set up `SSL_CERT_FILE` environment variable for OpenSSL's default certificate
file. This setting is important as the `SSL_CERT_DIR` path adjustments had
inconsistent results across different environments, as discussed in OpenSSL
documentation: https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_default_verify_paths.html
Signed-off-by: ddalvi <ddalvi@redhat.com>
Co-authored-by: Vani Haripriya <vmudadla@redhat.com>
Co-authored-by: Humair Khan <HumairAK@users.noreply.github.com>
Signed-off-by: ddalvi <ddalvi@redhat.com>
* Add unit test to check the certificate mounting
Signed-off-by: ddalvi <ddalvi@redhat.com>
---------
Signed-off-by: ddalvi <ddalvi@redhat.com>
Co-authored-by: Vani Haripriya <vmudadla@redhat.com>
Co-authored-by: Humair Khan <HumairAK@users.noreply.github.com>
* feat: add store session info to artifact property
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* chore: fix tests for api, artifact load, & runlist
Note that for runlist, the mock error response only returns one valid
run list with error set, the other is undefined, so to support multiple
runIds the mock error response will need to be adjusted.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* chore: support protocols in aws s3 endpoint config
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* feat(ui): allow ui server to parse provider info
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* feat(ui): parse artifact provider info in ui
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* chore: add tests for provider info
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* chore: update ec2 tests
..and clean up imports.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* chore: prettier fixes
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
---------
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
Fix GitHub test error:
```
> with open(file_path, 'r') as component_stream:
E FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/lib/python3.8/site-packages/google_cloud_pipeline_components/_implementation/starry_net/evaluation/evaluation.yaml'
/usr/local/lib/python3.8/site-packages/kfp/components/load_yaml_utilities.py:53: FileNotFoundError
```
PiperOrigin-RevId: 645623029
Signed-off-by: Googler <nobody@google.com>
Co-authored-by: Googler <nobody@google.com>
On Fedora, which runs SELinux, mounting the container to the local
filesystem results in permission issues because the labels mismatch:
`make: stat: Makefile: Permission denied`
To fix this, change the directory mount to use the `-v` syntax and
add the `:z` option at the end. Ref:
https://docs.docker.com/storage/bind-mounts/#configure-the-selinux-label
Signed-off-by: Greg Sheremeta <gshereme@redhat.com>
Launcher writes input artifacts to root paths /gcs, /minio, and /s3.
These paths are not accessible by non-root users by default, which is
problematic in locked-down Kubernetes installations and/or OpenShift.
/gcs is currently a contract for KFP v2 python component wrappers, so
the path cannot be changed.
Mount an EmptyDir scratch volume to these paths to work around this.
Additionally, /.local and /.cache are written to by pip, so add
EmptyDir mounts for those too.
Fixes: #5673Fixes: #7345
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
Co-authored-by: Greg Sheremeta <gshereme@redhat.com>
This is a noop for most people as they use legacy sorting in kustomize.
If however, people use fifo sorting via sortOptions in the root
kustomization.yaml, the order of resources becomes important so that
the CompositeController CRDs are deployed before the CRs.
Signed-off-by: Alexander Block <ablock84@gmail.com>
The scopes are defined in registry context file. Additional scopes must
be comma separated.
Fixes#8878. Previous PR #8895 was approved, but tests failed and
became stale.
I fixed the tests, and confirmed it worked for my case. Using a GCP
Service Account with RegistryClient no longer needs me to explicitly
provide the required scopes.
Signed-off-by: Pedro Chambino <pchambino@gmail.com>
When building images via `make`:
- Allow users to specify an alternate Container Engine rather than docker
- Allow users to specify image names/tags rather than a hardcoded image
name and `latest` tag for backend images
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* chore(components): Drop GCPC Python 3.7
PiperOrigin-RevId: 627500444
**Description of your changes:**
**Checklist:**
- [ ] The title for your pull request (PR) should follow our title convention. [Learn more about the pull request title convention used in this repository](https://github.com/kubeflow/pipelines/blob/master/CONTRIBUTING.md#pull-request-title-convention).
<!--
PR titles examples:
* `fix(frontend): fixes empty page. Fixes #1234`
Use `fix` to indicate that this PR fixes a bug.
* `feat(backend): configurable service account. Fixes#1234, fixes #1235`
Use `feat` to indicate that this PR adds a new feature.
* `chore: set up changelog generation tools`
Use `chore` to indicate that this PR makes some changes that users don't need to know.
* `test: fix CI failure. Part of #1234`
Use `part of` to indicate that a PR is working on an issue, but shouldn't close the issue when merged.
-->
* drop support python3.7
* fix test
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* fix test
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* fix test
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* fix test
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* fix tes
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* fix test
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* fix test
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* remove kfp related
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* remove kfp related
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* just kfp change
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* only change in kubernetes_platform/python/setup.py
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* only change in init.py
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* change
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* change
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* Update release
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* Update base image
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* change test python 3.7 to python 3.8
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* update golden snapshot
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* update yaml to python3.8 under kubernetes_platform/python/test/snapshot/data/toleration.yaml
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* update yaml python 3.8 for sdk/python/test_data/pipelines/parallelfor_fan_in
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* update yaml to fix tests
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* Update Readme
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* Update kubernetes_setup python version
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* Update readme
Signed-off-by: rickyxie0929 <rickyxie@google.com>
---------
Signed-off-by: rickyxie0929 <rickyxie@google.com>
* add bucket session info to pipeline context
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* allow driver to read bucket session info
Instead of only reading the kfp-launcher when a custom pipeline root is specified, the root dag will now always read the kfp-launcher config to search for a matching bucket if such a configuration is provided in kfp-launcher
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* add support for bucket prefix matching
Provides a structured configuration for bucket providers, whereby user can specify credentials for different providers and path prefixes. A new interface for providing sessions is introduced, which should be implemented for any new provider configuration support.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* allow object store to handle different providers
Utilizes blob provider specific constructors to open s3, minio, gcs accordingly. If a sessioninfo is provided (via kfp-launcher config) then the associated secret is fetched for each case to gain credentials. If fromEnv is provided, then the standard url opener is used. Also separates out config fields and operations to a separate file.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* utilize session info in launcher & importer
retrieves the session info (if provided via kfp-launcher) and utilizes it for opening the provider's associated bucket
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* skip config for default aws s3 endpoint
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* chore: refactor/clarify store session info naming
also added some additional code comments clarifying store cred variable usage
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* chore: handle query parameters as s3
as well as update validation logic for provider config, and fix tests
accordingly.
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
---------
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
* pull argo v3.4.16 upstream
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* upgrade to Argo v3.4.16
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* Update ValidateWorkflow calls
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* Add NodeStatus pod name retrieval function
- Argo 3.4.16 upgrade introduces a breaking change with inconsistent node.ID vs
node.Name
- introduce a function in workflow.go to conditionally handle this
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* Remove PNS Executor manifests and containerRuntimeExecutor ConfigMap Key
- PNS Executor was removed in Argo v3.4, so manifests no longer valid
- WorkflowController will fail to start if `containerRuntimeExecutor`
provided as input parameter, so remove from WC ConfigMap and CM
patches
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* fix(frontend): Fix Sidebar tabs to work with argo pod name-id mismatch
- Stemming from upgrade to argo 3.4, Pod Name is no longer always the
same as NodeID, which breaks a few tabs (PodInfo, PodEvents and
PodLogs). Add function to address this
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* test: update frontend CI to accommodate pod id/name changes
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
---------
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
these samples currently only work on the Google Cloud distribution
because of hardcoded secret name that only pre-exists there.
1 extract the hardcoded secret name to a const to make it a little
easier to change
2 add a note about it.
Signed-off-by: Greg Sheremeta <gshereme@redhat.com>
* fix(Backend + SDK): Add missing optional field to SecretAsVolume and ConfigMapAsVolume.
Signed-off-by: Revital Sur <eres@il.ibm.com>
* Update after rebase.
Signed-off-by: Revital Sur <eres@il.ibm.com>
* Update after rebase.
Signed-off-by: Revital Sur <eres@il.ibm.com>
* Update after merge.
Signed-off-by: Revital Sur <eres@il.ibm.com>
* Updates after merge with master branch.
Signed-off-by: Revital Sur <eres@il.ibm.com>
---------
Signed-off-by: Revital Sur <eres@il.ibm.com>
* fix(backend): Refactor backend common code to use updated API Service Params
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* fix(backend): Fix Backend int tests to use updated API Service Params
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* WIP: fix(backend): Manually correct the proto schemes to include https
- **NOTE**: this was manually updated, tested, and verified locally
uploading for CI check
- It appears when regenerating the backend API, something in the
generation libraries changed and now default the scheme to just
http, not http+https, which appears to break tests.
- Need to figure out what options to provide api generators to revert
DefaultScheme to include https again automatically
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* chore: Update small syntax change in SWF expected test result check
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* chore: Update backend .proto files to include http and https scheme
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
---------
Signed-off-by: Giulio Frasca <gfrasca@redhat.com>
* feat(kubernetes_platform): Update kubernetes_platform go package to include nodeaffinities and pod (anti)affinities
Signed-off-by: Cornelis Boon <cjidboon94@gmail.com>
* rename affinity objects and fields to match k8s spec semantics
Signed-off-by: Cornelis Boon <cjidboon94@gmail.com>
* rename *AffinityRule -> *AffinityTerm and add missing affinity data
Signed-off-by: Cornelis Boon <cjidboon94@gmail.com>
---------
Signed-off-by: Cornelis Boon <cjidboon94@gmail.com>
* fix(kubernetes_platform): Add optional field to SecretAsVolume and ConfigMapAsVolume.
Signed-off-by: Revital Sur <eres@il.ibm.com>
* Update comment.
Signed-off-by: Revital Sur <eres@il.ibm.com>
---------
Signed-off-by: Revital Sur <eres@il.ibm.com>
daysUntilClose is set to 90 days. This is too much for an issue to keep opened as there is daysUntilStale set to 90 days.
That would keep an issue opened for 6 months, and now there are +600 issues opened in the repository.
We need to start working on keeping the repository healthy.
Signed-off-by: Ricardo M. Oliveira <rmartine@redhat.com>
Validate the error code of pipeline creation in order to return
the status conflict when the error represents AlreadyExists.
Signed-off-by: champon1020 <nagatelu1020@gmail.com>
* upgrade go version to 1.21
Signed-off-by: Tommy Li <Tommy.chaoping.li@ibm.com>
* upgrade integration test to go 1.21
Signed-off-by: Tommy Li <Tommy.chaoping.li@ibm.com>
* refresh go mod tidy
Signed-off-by: Tommy Li <Tommy.chaoping.li@ibm.com>
* fix license
Signed-off-by: Tommy Li <Tommy.chaoping.li@ibm.com>
* update go-sqlite3 to v1.14.19 to support go 1.21 on cache server
Signed-off-by: Tommy Li <Tommy.chaoping.li@ibm.com>
* downgrade go version to 1.20 and revert dockerfile upgrade
Signed-off-by: Tommy Li <Tommy.chaoping.li@ibm.com>
---------
Signed-off-by: Tommy Li <Tommy.chaoping.li@ibm.com>
* Updated output_a_directory.py to V2
* Update output_a_directory_test.py to V2
* Update parallel_join.py to V2
* Update multiple_outputs.ipynb to V2
* Update multiple_outputs_test.py to V2
* Updated kfp_env_validation to V2
* Updated loop_parallelism to V2
* Add backend and sdk support for pod spec timeout
Signed-off-by: Tommy Li <Tommy.chaoping.li@ibm.com>
* fix conflicts
Signed-off-by: Tommy Li <Tommy.chaoping.li@ibm.com>
---------
Signed-off-by: Tommy Li <Tommy.chaoping.li@ibm.com>
* Updated legal info due to migration from CLA to DCO
Signed-off-by: hbelmiro <helber.belmiro@gmail.com>
* Updated DCO link
Signed-off-by: hbelmiro <helber.belmiro@gmail.com>
---------
Signed-off-by: hbelmiro <helber.belmiro@gmail.com>
* fix(sdk): Prevents dsl.ParallelFor over single paramter from compiling.
* fix(sdk): Prevents dsl.ParallelFor over single paramter from compiling.
* update PR number in release notes
* formatting
* Add compiler_test.py test for single param compile failure
* Update some docstrings and add todo
* formatting
* Update sdk/python/kfp/compiler/compiler_test.py
Co-authored-by: Connor McCarthy <mccarthy.connor.james@gmail.com>
* Update sdk/python/kfp/compiler/compiler_test.py
Co-authored-by: Connor McCarthy <mccarthy.connor.james@gmail.com>
* Update sdk/python/kfp/dsl/for_loop.py
Co-authored-by: Connor McCarthy <mccarthy.connor.james@gmail.com>
* Use print_and_return and other small changes
* typo
* typo
---------
Co-authored-by: Connor McCarthy <mccarthy.connor.james@gmail.com>
- [ ] You have [signed off your commits](https://www.kubeflow.org/docs/about/contributing/#sign-off-your-commits)
- [ ] The title for your pull request (PR) should follow our title convention. [Learn more about the pull request title convention used in this repository](https://github.com/kubeflow/pipelines/blob/master/CONTRIBUTING.md#pull-request-title-convention).
# Use only 'java' to analyze code written in Java, Kotlin or both
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name:Checkout repository
uses:actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name:Initialize CodeQL
uses:github/codeql-action/init@v2
with:
languages:${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name:Autobuild
uses:github/codeql-action/autobuild@v2
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
docker tag gcr.io/ml-pipeline/minio:RELEASE.2019-08-14T20-37-41Z-license-compliance gcr.io/ml-pipeline/google/pipelines/minio:$(cat /workspace/mm.ver)
docker tag gcr.io/ml-pipeline/minio:RELEASE.2019-08-14T20-37-41Z-license-compliance gcr.io/ml-pipeline/google/pipelines-test/minio:$(cat /workspace/mm.ver)
docker tag gcr.io/ml-pipeline/workflow-controller:v3.3.10-license-compliance gcr.io/ml-pipeline/google/pipelines/argoworkflowcontroller:$(cat /workspace/mm.ver)
docker tag gcr.io/ml-pipeline/workflow-controller:v3.3.10-license-compliance gcr.io/ml-pipeline/google/pipelines-test/argoworkflowcontroller:$(cat /workspace/mm.ver)
| [IBM Research Foundation Model Data Engineering Team](https://www.research.ibm.com/) | [@yuanchi2807](https://github.com/yuanchi2807), [@roytman](https://github.com/roytman) | Foundation Model Data Engineering |
* **backend:** Add CLI flags to support Kubernetes native API implementation ([\#11907](https://github.com/kubeflow/pipelines/issues/11907)) ([c368ac6](https://github.com/kubeflow/pipelines/commit/c368ac6881b75331a3b7aa31e3adb36eacf858a1))
* **backend:** Add migration script to create Pipeline and PipelineVersion objects from the database to Kubernetes API ([\#11884](https://github.com/kubeflow/pipelines/issues/11884)) ([988477a](https://github.com/kubeflow/pipelines/commit/988477a7de1c9376abb51618c4b926226afe587f))
* **backend:** Add support for platform specs on K8s native API ([\#12016](https://github.com/kubeflow/pipelines/issues/12016)) ([04407fb](https://github.com/kubeflow/pipelines/commit/04407fbe9397def09fd1e12df34190ba95f5d8a2))
* **backend:** Add the Kubernetes native pipeline store ([\#11881](https://github.com/kubeflow/pipelines/issues/11881)) ([c03127d](https://github.com/kubeflow/pipelines/commit/c03127d9671ed2ac29350840b4a56c5cf0c227eb))
* **backend:** add the option to enable/disable cache globally ([\#11831](https://github.com/kubeflow/pipelines/issues/11831)) ([9aebb62](https://github.com/kubeflow/pipelines/commit/9aebb62be1a9412d960fc681787468e1e3ab2001))
* **backend:** Allow the launcher command to be configurable ([\#11888](https://github.com/kubeflow/pipelines/issues/11888)) ([70d2888](https://github.com/kubeflow/pipelines/commit/70d28885f27bff40397f9c9ea790e5985deb91e1))
* **backend:** parameterize retryStrategy input in Argo workflow ([\#11861](https://github.com/kubeflow/pipelines/issues/11861)) ([9245739](https://github.com/kubeflow/pipelines/commit/9245739f6fdd76769cd477f8952706cfe0eabc34))
* **backend:** support for optional input parameters in nested pipelines ([\#11980](https://github.com/kubeflow/pipelines/issues/11980)) ([ecfe94e](https://github.com/kubeflow/pipelines/commit/ecfe94ebc3adc0dd41da9a944056ce4170ce9064))
* **backend:** Support more than one label & annotations setting per component ([\#12049](https://github.com/kubeflow/pipelines/issues/12049)) ([a870b1a](https://github.com/kubeflow/pipelines/commit/a870b1a325dae0c82c8b6f57941468ee1aea960b))
* **backend:** Use native k8s probes for api-server and visualization ([\#11960](https://github.com/kubeflow/pipelines/issues/11960)) ([cc78308](https://github.com/kubeflow/pipelines/commit/cc7830812ae3ced24962238dcbf5f113f28c4772))
* **backend/frontend:** Add the name field for pipelines and pipeline versions ([\#11952](https://github.com/kubeflow/pipelines/issues/11952)) ([ea20731](https://github.com/kubeflow/pipelines/commit/ea207310601ffaf807b148a79a9ddcb8d4812886))
* **backend/sdk:** enable dsl.Collected for parameters & artifacts ([\#11725](https://github.com/kubeflow/pipelines/issues/11725)) ([ed828b5](https://github.com/kubeflow/pipelines/commit/ed828b513aef4826f1f05e47168cf7b08a3c74ab))
* **backend/sdk:** support PipelineTaskFinalStatus input ([\#11953](https://github.com/kubeflow/pipelines/issues/11953)) ([0d857b6](https://github.com/kubeflow/pipelines/commit/0d857b6f8a1261477bb05bc65aa474d992b57084))
* **docs:** erdiagram of kfp-db ([\#12009](https://github.com/kubeflow/pipelines/issues/12009)) ([99326e1](https://github.com/kubeflow/pipelines/commit/99326e1bd13e6223c1cfb657524c9e5926d95ce5))
* **docs:** Guide to report security vulnerabilities ([\#12044](https://github.com/kubeflow/pipelines/issues/12044)) ([9aa3dfb](https://github.com/kubeflow/pipelines/commit/9aa3dfb0d9810e3d3940b728e2e39dad1e956587))
* **frontend:** Add "Always Use Latest Version" option for recurring runs (fixes [\#11581](https://github.com/kubeflow/pipelines/issues/11581)) ([\#11755](https://github.com/kubeflow/pipelines/issues/11755)) ([0e7e806](https://github.com/kubeflow/pipelines/commit/0e7e806b4cd52c20397220d6e0e8db79cae35894))
* **proto:** Add WorkspaceConfig and KubernetesWorkspaceConfig message types to pipeline_spec proto ([\#11921](https://github.com/kubeflow/pipelines/issues/11921)) ([67f9b7d](https://github.com/kubeflow/pipelines/commit/67f9b7d73c895fd0fd027488ba20c255918d735e))
* **sdk:** Add support for compiling pipelines to Kubernetes native format in SDK ([\#12012](https://github.com/kubeflow/pipelines/issues/12012)) ([dc398f6](https://github.com/kubeflow/pipelines/commit/dc398f689eb0b19e86fdbb554b33d9f6cb1095e3))
* **sdk:** Add Support for Docker Container Run Arguments ([\#12006](https://github.com/kubeflow/pipelines/issues/12006)) ([268e089](https://github.com/kubeflow/pipelines/commit/268e0898ecdd3f9447988b6e675676eb21c584f0))
* **sdk:** update PipelineConfig to reflect new workspace Protobuf changes ([\#11934](https://github.com/kubeflow/pipelines/issues/11934)) ([dda6033](https://github.com/kubeflow/pipelines/commit/dda6033a03a8f69e51c6672d964169521744357b))
* add openshift env to manifests ([\#11932](https://github.com/kubeflow/pipelines/issues/11932)) ([8329e64](https://github.com/kubeflow/pipelines/commit/8329e64716dab0e3485381f712aeadc80beb05f3))
### Bug Fixes
* **backend:** omit unknown fields in json marshaling ([\#12101](https://github.com/kubeflow/pipelines/issues/12101)) ([000a111](https://github.com/kubeflow/pipelines/commit/000a111396213847a437296afb511564ccc0c60d))
* **deps:** revert metadata_writer k8s version ([\#12099](https://github.com/kubeflow/pipelines/issues/12099)) ([c64feac](https://github.com/kubeflow/pipelines/commit/c64feac20edf6129523fd5d8241d1f7140107fdd))
* **sdk,backend:** Make the workspace size required ([\#12094](https://github.com/kubeflow/pipelines/issues/12094)) ([4bd3d4b](https://github.com/kubeflow/pipelines/commit/4bd3d4b4e99b5af38380ddad9693a2a0bbe4e968))
* backwards compatibility for pipeline spec task_name ([\#12061](https://github.com/kubeflow/pipelines/issues/12061)) ([bcb9ee4](https://github.com/kubeflow/pipelines/commit/bcb9ee4324c4606f34ac000315b8b2f60df8c31e))
* **apiserver:** fix typos in resource_manager.go: ([\#11998](https://github.com/kubeflow/pipelines/issues/11998)) ([3154ef9](https://github.com/kubeflow/pipelines/commit/3154ef9258c1dfb179fdb5d036989b126b2412fe))
* **backend:** Fix boolean flag syntax for `--cache_disabled` and update test to cover pipelines with outputs ([\#12001](https://github.com/kubeflow/pipelines/issues/12001)) ([f240685](https://github.com/kubeflow/pipelines/commit/f240685bf3169251ca343fc985bbb5607be3f727))
* **backend:** Fix the pipeline samples ([\#11967](https://github.com/kubeflow/pipelines/issues/11967)) ([b477269](https://github.com/kubeflow/pipelines/commit/b4772693ae0f7d90425f604ebdafbda1a1c4a5f3))
* **backend:** increase max_metadata_size for ml-metadata grpc server ([\#12062](https://github.com/kubeflow/pipelines/issues/12062)) ([09ced38](https://github.com/kubeflow/pipelines/commit/09ced38500725c5e8542ce4885eee8d3cee58f02))
* **backend:** Stop logging the strack trace on benign user errors ([\#11883](https://github.com/kubeflow/pipelines/issues/11883)) ([56da004](https://github.com/kubeflow/pipelines/commit/56da004d91d8db9b46b57544d1ad6699ddb4de4c))
* **backend/sdk:** update proto packages ([\#12067](https://github.com/kubeflow/pipelines/issues/12067)) ([cc35187](https://github.com/kubeflow/pipelines/commit/cc35187dff270008c6bef505c828f442773ec97d))
* **sdk:** Fixes for Identifying Untagged Images for Running ([\#11984](https://github.com/kubeflow/pipelines/issues/11984)) ([e8e23f0](https://github.com/kubeflow/pipelines/commit/e8e23f0d7a0a583b93e11e5690504306f4e0091e))
* **sdk:** Move version info to version.py for editable installs. ([\#11997](https://github.com/kubeflow/pipelines/issues/11997)) ([ada935a](https://github.com/kubeflow/pipelines/commit/ada935a0ad86d02329e3cb6b9a36a399d9fd4a79))
* **sdk:** Support partial replace of placeholders in dict/list objects ([\#12039](https://github.com/kubeflow/pipelines/issues/12039)) ([ce84873](https://github.com/kubeflow/pipelines/commit/ce848730b8f4bf8a2d07f3b53691d9801b0e60f5))
* Delete the pipeline along with its all versions. Fixes [\#11665](https://github.com/kubeflow/pipelines/issues/11665) ([\#12019](https://github.com/kubeflow/pipelines/issues/12019)) ([ad2730c](https://github.com/kubeflow/pipelines/commit/ad2730cf19febf2d8a0a7d42ac8eafe1bb458a14))
* input resolution with set_display_name ([\#11938](https://github.com/kubeflow/pipelines/issues/11938)) ([7f60100](https://github.com/kubeflow/pipelines/commit/7f60100602deefa3ed6ffbef22a948b7790c360f))
* **sdk:** fix pip install for dev ([\#11891](https://github.com/kubeflow/pipelines/issues/11891)) ([4503eae](https://github.com/kubeflow/pipelines/commit/4503eae10d19518bc35310c57d2ef957b31f959c))
* **sdk:** resolve issue when creating pipeline version from pipeline name using the cli. Fixes [\#11810](https://github.com/kubeflow/pipelines/issues/11810) ([\#11866](https://github.com/kubeflow/pipelines/issues/11866)) ([c68640d](https://github.com/kubeflow/pipelines/commit/c68640d95038f1b577caa44a2ff0bd966d059b94))
* **sdk:** Resolves issue when using ParallelFor with param and depending tasks ([\#11903](https://github.com/kubeflow/pipelines/issues/11903)) ([ef94ccd](https://github.com/kubeflow/pipelines/commit/ef94ccd734957bdee3bbb98ea043738bb5795dc7))
* **test:** Fix the frontend sample test ([\#11968](https://github.com/kubeflow/pipelines/issues/11968)) ([5447563](https://github.com/kubeflow/pipelines/commit/54475637a241f55957149a32b80cb8c44d8f6458))
* **tests:** free up space in kfp samples test workflow ([\#11942](https://github.com/kubeflow/pipelines/issues/11942)) ([8fe090d](https://github.com/kubeflow/pipelines/commit/8fe090d461d7c2e1226c2fc46a80479790bcd2e5))
* test generating backend proto go code ([\#12108](https://github.com/kubeflow/pipelines/issues/12108)) ([5685e88](https://github.com/kubeflow/pipelines/commit/5685e884f459da6d1f63c46a3185a7a24b22dfca))
* update python packages to 2.14 ([3ffde88](https://github.com/kubeflow/pipelines/commit/3ffde88e5f306268e00ccbe0e450dd76e7baf1bf))
* add versioning policy for KFP ([\#12105](https://github.com/kubeflow/pipelines/issues/12105)) ([9f5abab](https://github.com/kubeflow/pipelines/commit/9f5abab7d2d995b5a5f197c7e697fb30bc8c9ab7))
* feat(sdk) Add Input Parameter support for node affinity ([\#12028](https://github.com/kubeflow/pipelines/issues/12028)) ([ecf488b](https://github.com/kubeflow/pipelines/commit/ecf488b65fed923595ed048a2d0e9ba3d932f409))
* Fix broken Pipeline Root documentation link ([\#12051](https://github.com/kubeflow/pipelines/issues/12051)) ([f20cec5](https://github.com/kubeflow/pipelines/commit/f20cec5b7097a628f18765d6160dd2316f41dec4))
* add new KFP maintainers ([\#12059](https://github.com/kubeflow/pipelines/issues/12059)) ([69a1846](https://github.com/kubeflow/pipelines/commit/69a184637a97458037d65f6a9b938013d9e2f579))
* user master for dev manifests ([\#11977](https://github.com/kubeflow/pipelines/issues/11977)) ([5181358](https://github.com/kubeflow/pipelines/commit/5181358d6a4ca4d0923ac90733cf83470763cdd2))
* feat(frontend) Use native k8s probes for pipeline-ui ([\#11955](https://github.com/kubeflow/pipelines/issues/11955)) ([48468ae](https://github.com/kubeflow/pipelines/commit/48468ae1fa126f8668e275817f77023a585175f9))
* feat(backend) implement retryStrategy for nested pipelines ([\#11908](https://github.com/kubeflow/pipelines/issues/11908)) ([beae62f](https://github.com/kubeflow/pipelines/commit/beae62fb528fc9044af54bf2c46771727d5d22b2))
* - fix(launcher): missing executorInput parameter values caused by {{$}} evaluation order ([\#11925](https://github.com/kubeflow/pipelines/issues/11925)) ([3337b5e](https://github.com/kubeflow/pipelines/commit/3337b5e32377653968f477b05e5cbd5d6a081bdf))
* add maintainer to kfp ([\#11900](https://github.com/kubeflow/pipelines/issues/11900)) ([e276474](https://github.com/kubeflow/pipelines/commit/e276474f970a1a92db7cf8c01d5ef716acc3ee4b))
* No public description ([d90e4e8](https://github.com/kubeflow/pipelines/commit/d90e4e8a54fdd08a73ca9b0ebb404e7cb6035f7c))
* **backend:** Add a mutating webhook for the PipelineVersion kind ([\#11782](https://github.com/kubeflow/pipelines/issues/11782)) ([c9be64d](https://github.com/kubeflow/pipelines/commit/c9be64dca362a33dcfad186fe579066a646a6df1))
* **backend:** Add the ability to set a proxy for accessing external resources ([\#11771](https://github.com/kubeflow/pipelines/issues/11771)) ([6e3548f](https://github.com/kubeflow/pipelines/commit/6e3548f33e226ba374e4d43a175ae8ac9018e268))
* **backend:** Add types for KFP Kubernete Native API ([\#11672](https://github.com/kubeflow/pipelines/issues/11672)) ([0d9a7b0](https://github.com/kubeflow/pipelines/commit/0d9a7b00e926130b07058ea71148fbb9cab69d2b))
* **backend:** Create a validating webhook for the PipelineVersion kind ([\#11774](https://github.com/kubeflow/pipelines/issues/11774)) ([2efcde5](https://github.com/kubeflow/pipelines/commit/2efcde5efd3952b91ea79a5ee6dbf064282f719a))
* **backend:** implement logs as artifacts ([\#11762](https://github.com/kubeflow/pipelines/issues/11762)) ([cd3e747](https://github.com/kubeflow/pipelines/commit/cd3e747b5de3d7e1e338e309cc57311dd4a91258))
* **backend:** implement logs as artifacts + CI updates ([\#11809](https://github.com/kubeflow/pipelines/issues/11809)) ([464ca39](https://github.com/kubeflow/pipelines/commit/464ca3974fbbc46e022f863e49c4fbaabd1a8265))
* **backend/sdk:** Add input parameterization for various k8s resources ([\#11770](https://github.com/kubeflow/pipelines/issues/11770)) ([fd1b48b](https://github.com/kubeflow/pipelines/commit/fd1b48b4712038afe8a78e37843672d4773dc080))
* **proto:** Add TTL fields to KFP IR yaml proto ([\#11758](https://github.com/kubeflow/pipelines/issues/11758)) ([c5aba41](https://github.com/kubeflow/pipelines/commit/c5aba41bcaf3c214d984db4571c1ecae4a0d551d))
* **sdk:** add upload pipeline and upload pipeline version from pipeline function ([\#11804](https://github.com/kubeflow/pipelines/issues/11804)) ([1ad4f60](https://github.com/kubeflow/pipelines/commit/1ad4f608a0b9dea2362cf89f9cf7abdebf20e080))
### Bug Fixes
* **backend:** Fix run submissions with OwnerReferencesPermissionEnforcement on ([\#11821](https://github.com/kubeflow/pipelines/issues/11821)) ([69ba50b](https://github.com/kubeflow/pipelines/commit/69ba50b3fb03bd8441f833950a6c77835a2d47a1))
* **backend:** Include missing go.mod for cacheserver/viewercontroller images ([\#11776](https://github.com/kubeflow/pipelines/issues/11776)) ([715ed40](https://github.com/kubeflow/pipelines/commit/715ed40b92f9bca521f94e0df5201425d9d30866))
* **components:** Set tensorboard_experiment_name to random uuid when uploading plots in Starry Net pipeline ([cc56d04](https://github.com/kubeflow/pipelines/commit/cc56d04c46d01666a8e091b124473c2654e1b6d3))
* **deployment:** Update kustomize manifests to use new label and patch syntax ([\#11733](https://github.com/kubeflow/pipelines/issues/11733)) ([230c1b8](https://github.com/kubeflow/pipelines/commit/230c1b8f1332ffab575b2e69b65d9a6958167195))
* **deps:** widen urllib3 upper bound to <3.0.0([\#11819](https://github.com/kubeflow/pipelines/issues/11819))([866ff35](https://github.com/kubeflow/pipelines/commit/866ff3556a4454ccb52f1594bbca4167a04c0d3e))
* **docs:** Remove Podman as backend README pre-req ([\#11824](https://github.com/kubeflow/pipelines/issues/11824)) ([88cff55](https://github.com/kubeflow/pipelines/commit/88cff559142e5a985cf31620f07b71244645cb4a))
* **docs:** Use the latest driver and launcher images in the dev environment ([\#11820](https://github.com/kubeflow/pipelines/issues/11820)) ([92e4921](https://github.com/kubeflow/pipelines/commit/92e4921c4cce8155093bf7e332abfbf03bd6eaef))
* **local:** warn about oci:// not supported too ([\#11794](https://github.com/kubeflow/pipelines/issues/11794)) ([564522c](https://github.com/kubeflow/pipelines/commit/564522c42de9136dec67f1bf29590bdd64bf2333))
* **metadata-writer:** use mlmd_store.get_context_types() instead of workaround ([\#11753](https://github.com/kubeflow/pipelines/issues/11753)) ([35041ef](https://github.com/kubeflow/pipelines/commit/35041ef2bd4d9b3261f1250f5803786ed9e453fe))
* **sdk:** Add SDK support for setting resource limits on older KFP versions ([\#11839](https://github.com/kubeflow/pipelines/issues/11839)) ([f9d487c](https://github.com/kubeflow/pipelines/commit/f9d487cb605727f357f58783db298d96898b24d1))
* **sdk:** avoid conflicting component names in DAG when reusing pipelines ([\#11071](https://github.com/kubeflow/pipelines/issues/11071)) ([d1b15ef](https://github.com/kubeflow/pipelines/commit/d1b15ef4da33cbeafa491564318c7e2a68dc431f))
* **tests:** free up space in some test runners ([\#11818](https://github.com/kubeflow/pipelines/issues/11818)) ([478ca08](https://github.com/kubeflow/pipelines/commit/478ca089012e64edd371feff4ece9d0d156d4710))
* minio fsgroup for popular clusters ([\#11734](https://github.com/kubeflow/pipelines/issues/11734)) ([8d0ae53](https://github.com/kubeflow/pipelines/commit/8d0ae5381e8366905c90009c56fd0e4807e94f0f))
* Handle optional pipeline inputs in the driver ([\#11788](https://github.com/kubeflow/pipelines/issues/11788)) ([bb7a108](https://github.com/kubeflow/pipelines/commit/bb7a1082c4c5a3fb308aac2bf37bab476c3c4df6))
* Fix recurring run output when always using latest ([\#11790](https://github.com/kubeflow/pipelines/issues/11790)) ([048f283](https://github.com/kubeflow/pipelines/commit/048f28332b6a0b6684632e76dcb284de2f81d829))
* increase stale action timers ([\#11792](https://github.com/kubeflow/pipelines/issues/11792)) ([ade8a2d](https://github.com/kubeflow/pipelines/commit/ade8a2d072efa9897a5a0173316836236d629238))
* fix(CI) Github action is vulnerable to code execution via `comment body` ([\#11772](https://github.com/kubeflow/pipelines/issues/11772)) ([95c3f2c](https://github.com/kubeflow/pipelines/commit/95c3f2c04d8f19b8b656ddbda046ed9f2c81130a))
* Fix Istio sidecar injection by moving from annotations to labels ([\#11750](https://github.com/kubeflow/pipelines/issues/11750)) ([df4e9c2](https://github.com/kubeflow/pipelines/commit/df4e9c2bf5b645f4a3fa831b073846eae5eaceb7))
* **api:** add PipelineConfig to api to re-implement pipeline-level config ([\#11333](https://github.com/kubeflow/pipelines/issues/11333)) ([c2f5649](https://github.com/kubeflow/pipelines/commit/c2f56495b9b1e9eda1b44b6106e12d5290a89ed7))
* **api:** Add SemaphoreKey and MutexName fields to proto ([\#11384](https://github.com/kubeflow/pipelines/issues/11384)) ([915cc55](https://github.com/kubeflow/pipelines/commit/915cc552f56359454b91870df0e5eea1ecda2218))
* **backend:** Add a mutating webhook for the PipelineVersion kind ([\#11782](https://github.com/kubeflow/pipelines/issues/11782)) ([c9be64d](https://github.com/kubeflow/pipelines/commit/c9be64dca362a33dcfad186fe579066a646a6df1))
* **backend:** add configurable S3 path style support ([\#11246](https://github.com/kubeflow/pipelines/issues/11246)) ([85fdd73](https://github.com/kubeflow/pipelines/commit/85fdd73ae0bb1c2ce01da6311807b37cfc589710))
* **backend:** Add support for importing models stored in the Modelcar format (sidecar) ([\#11606](https://github.com/kubeflow/pipelines/issues/11606)) ([cc1c435](https://github.com/kubeflow/pipelines/commit/cc1c435f1e06aad3e9b83e57768512a63460b15b))
* **backend:** Add support for job and task placeholders in the KFP backend ([\#11599](https://github.com/kubeflow/pipelines/issues/11599)) ([6a13f4b](https://github.com/kubeflow/pipelines/commit/6a13f4bad07e5a22006b73b21515df9d597222f0))
* **backend:** add support for uploading new sample pipeline vers ([\#11553](https://github.com/kubeflow/pipelines/issues/11553)) ([d2ddb2e](https://github.com/kubeflow/pipelines/commit/d2ddb2ed1c2afa64fd6014c95190416ff5cdd621))
* **backend:** Add the ability to set a proxy for accessing external resources ([\#11771](https://github.com/kubeflow/pipelines/issues/11771)) ([6e3548f](https://github.com/kubeflow/pipelines/commit/6e3548f33e226ba374e4d43a175ae8ac9018e268))
* **backend:** Add types for KFP Kubernete Native API ([\#11672](https://github.com/kubeflow/pipelines/issues/11672)) ([0d9a7b0](https://github.com/kubeflow/pipelines/commit/0d9a7b00e926130b07058ea71148fbb9cab69d2b))
* **backend:** Allow recurring runs to always use the latest pipeline version ([\#11560](https://github.com/kubeflow/pipelines/issues/11560)) ([9c5b72c](https://github.com/kubeflow/pipelines/commit/9c5b72c2d0b298fc1b6c984e135b74e7a736a7b9))
* **backend:** Create a validating webhook for the PipelineVersion kind ([\#11774](https://github.com/kubeflow/pipelines/issues/11774)) ([2efcde5](https://github.com/kubeflow/pipelines/commit/2efcde5efd3952b91ea79a5ee6dbf064282f719a))
* **backend:** implement logs as artifacts ([\#11762](https://github.com/kubeflow/pipelines/issues/11762)) ([cd3e747](https://github.com/kubeflow/pipelines/commit/cd3e747b5de3d7e1e338e309cc57311dd4a91258))
* **backend:** implement logs as artifacts + CI updates ([\#11809](https://github.com/kubeflow/pipelines/issues/11809)) ([464ca39](https://github.com/kubeflow/pipelines/commit/464ca3974fbbc46e022f863e49c4fbaabd1a8265))
* **component:** Created Snowflake data unload component ([\#11349](https://github.com/kubeflow/pipelines/issues/11349)) ([22e7780](https://github.com/kubeflow/pipelines/commit/22e77805ed41a72837f7cd15a9d679f42169b253))
* **component:** execute in a virtual env ([\#11326](https://github.com/kubeflow/pipelines/issues/11326)) ([df28e89](https://github.com/kubeflow/pipelines/commit/df28e891c4374f7eac98cc6a4892b6e6c35a43f2))
* **components:** Add reservation_affinity support in v1.create_custom_training_job_from_component ([c84241b](https://github.com/kubeflow/pipelines/commit/c84241b7362c0351109bc0ddbc2f697479ff8675))
* **docs:** Replace ADRs with KEPs for documentation ([\#11535](https://github.com/kubeflow/pipelines/issues/11535)) ([7497b65](https://github.com/kubeflow/pipelines/commit/7497b65067aa1e596605c03e8dc4c07c963f907b))
* **frontend/backend:** Allow the ability to sort experiments by last run creation. Fixes [\#10884](https://github.com/kubeflow/pipelines/issues/10884) ([\#11163](https://github.com/kubeflow/pipelines/issues/11163)) ([db8669c](https://github.com/kubeflow/pipelines/commit/db8669c33e60bb8910710359c0638d21ec27ac7c))
* **proto:** Add TTL fields to KFP IR yaml proto ([\#11758](https://github.com/kubeflow/pipelines/issues/11758)) ([c5aba41](https://github.com/kubeflow/pipelines/commit/c5aba41bcaf3c214d984db4571c1ecae4a0d551d))
* **sdk:** Add Input Parameter support for configmap, secrets, node selectors, tolerations, pull secrets ([\#11621](https://github.com/kubeflow/pipelines/issues/11621)) ([7838009](https://github.com/kubeflow/pipelines/commit/78380095385be25e69b891ccb312b2857a200fdd))
* **sdk:** add upload pipeline and upload pipeline version from pipeline function ([\#11804](https://github.com/kubeflow/pipelines/issues/11804)) ([1ad4f60](https://github.com/kubeflow/pipelines/commit/1ad4f608a0b9dea2362cf89f9cf7abdebf20e080))
* Introduce cache_key for cache key customization ([\#11434](https://github.com/kubeflow/pipelines/issues/11434)) ([50b367f](https://github.com/kubeflow/pipelines/commit/50b367f232b2d37b762745c8b4296a29c9d8fd45))
* Introduce cache_key to sdk ([\#11466](https://github.com/kubeflow/pipelines/issues/11466)) ([42fc132](https://github.com/kubeflow/pipelines/commit/42fc13261628d764296607d9e12ecad13e721a68))
* **sdk:** add PipelineConfig to DSL to re-implement pipeline-level config ([\#11112](https://github.com/kubeflow/pipelines/issues/11112)) ([df4d787](https://github.com/kubeflow/pipelines/commit/df4d7878c4ce25c801a916351bcbce1266a9daf1))
* **sdk:** Allow disabling default caching via a CLI flag and env var ([\#11222](https://github.com/kubeflow/pipelines/issues/11222)) ([3f49522](https://github.com/kubeflow/pipelines/commit/3f495229f26ef08360048d050dfe014ca4b57b4f))
* **sdk:** stop auto-populating metrics as dag output ([\#11362](https://github.com/kubeflow/pipelines/issues/11362)) ([8d018af](https://github.com/kubeflow/pipelines/commit/8d018aff6ed14b5bed7b3f90d9f450b3144ae18e))
* **sdk:** support dynamic machine type parameters in pipeline task setters ([\#11097](https://github.com/kubeflow/pipelines/issues/11097)) ([70aaf8a](https://github.com/kubeflow/pipelines/commit/70aaf8a9a469607dc6e4aad58d40b39c75363b99))
* **sdk/backend:** Add support for placeholders in resource limits ([\#11501](https://github.com/kubeflow/pipelines/issues/11501)) ([7c931ae](https://github.com/kubeflow/pipelines/commit/7c931ae20197b2309d7a8462f6ce099882a8f915))
* **sdk/backend:** enable parameterization of container images ([\#11404](https://github.com/kubeflow/pipelines/issues/11404)) ([22e85de](https://github.com/kubeflow/pipelines/commit/22e85de2bcbd2ff5ed2a099e4f11a39ff27e4190))
* **testing:** use kustomize to patch deployments before deploy ([\#11294](https://github.com/kubeflow/pipelines/issues/11294)) ([be863a8](https://github.com/kubeflow/pipelines/commit/be863a852997718701a1ee548d9db86dca7ffc33))
* add fields in SinglePlatformSpec ([\#11299](https://github.com/kubeflow/pipelines/issues/11299)) ([a0d313e](https://github.com/kubeflow/pipelines/commit/a0d313e095c2b5fc1a32809c38cf96b13e5772b2))
* **workflows:** use built images in Github workflows ([\#11284](https://github.com/kubeflow/pipelines/issues/11284)) ([1550b36](https://github.com/kubeflow/pipelines/commit/1550b363aed3745b476d2b3798725432329e8cea))
### Bug Fixes
* **backend:** Allow initializing the Kubernetes client with a kubeconfig ([\#11443](https://github.com/kubeflow/pipelines/issues/11443)) ([87bdb7c](https://github.com/kubeflow/pipelines/commit/87bdb7c3b1126ae5e899826be0834c11764edbae))
* **backend:** Fix run submissions with OwnerReferencesPermissionEnforcement on ([\#11821](https://github.com/kubeflow/pipelines/issues/11821)) ([69ba50b](https://github.com/kubeflow/pipelines/commit/69ba50b3fb03bd8441f833950a6c77835a2d47a1))
* **backend:** fixes DAG status update to reflect completion of all tasks ([\#11651](https://github.com/kubeflow/pipelines/issues/11651)) ([7719b38](https://github.com/kubeflow/pipelines/commit/7719b38061d489246294bd53b49aacfc105c8a19))
* **backend:** handle client side HTTP timeouts to fix crashes of metadata-writer. Fixes [\#8200](https://github.com/kubeflow/pipelines/issues/8200) ([\#11361](https://github.com/kubeflow/pipelines/issues/11361)) ([94a21cc](https://github.com/kubeflow/pipelines/commit/94a21cc7e27a3824732e7f4c09a4d8b826dde5b8))
* **backend:** Include missing go.mod for cacheserver/viewercontroller images ([\#11776](https://github.com/kubeflow/pipelines/issues/11776)) ([715ed40](https://github.com/kubeflow/pipelines/commit/715ed40b92f9bca521f94e0df5201425d9d30866))
* **backend:** modelToCRDTrigger was not including periodic schedule correctly ([\#11475](https://github.com/kubeflow/pipelines/issues/11475)) ([97acacb](https://github.com/kubeflow/pipelines/commit/97acacbd2a0b72d442398ca04382ac1e6d9aa37f))
* **backend:** randomizing output uri path to avoid overwriting. Fixes [\#10186](https://github.com/kubeflow/pipelines/issues/10186) ([\#11243](https://github.com/kubeflow/pipelines/issues/11243)) ([219725d](https://github.com/kubeflow/pipelines/commit/219725d9f02b690cf0829a21faf092a3e4c65531))
* **backend:** remove unused function argument ([\#11425](https://github.com/kubeflow/pipelines/issues/11425)) ([7f2278f](https://github.com/kubeflow/pipelines/commit/7f2278f25222992bedfcae5b613a7a06430f4542))
* **backend:** removed old version comment ([\#11549](https://github.com/kubeflow/pipelines/issues/11549)) ([906b5c0](https://github.com/kubeflow/pipelines/commit/906b5c084146506e71685d2324566bd15dc25bec))
* **backend:** Replaced hardcoded ServiceAccount with default config ([\#11578](https://github.com/kubeflow/pipelines/issues/11578)) ([18641e1](https://github.com/kubeflow/pipelines/commit/18641e16cbac7512f8f63f001acafd8a0bf52924))
* **backend:** set default value to true for ForcePathStyle ([\#11281](https://github.com/kubeflow/pipelines/issues/11281)) ([391de8c](https://github.com/kubeflow/pipelines/commit/391de8ca9ec68fe4cd85bba6c82348386fc79842))
* **backend:** stop heartbeat status updates for ScheduledWorkflows. Fixes [\#8757](https://github.com/kubeflow/pipelines/issues/8757) ([\#11363](https://github.com/kubeflow/pipelines/issues/11363)) ([9ccec4c](https://github.com/kubeflow/pipelines/commit/9ccec4c7d1aff4d2bfdb20cf4fd1f9d64b8632f4))
* **backend:** Synced ScheduledWorkflow CRs on apiserver startup ([\#11469](https://github.com/kubeflow/pipelines/issues/11469)) ([d21fca6](https://github.com/kubeflow/pipelines/commit/d21fca650c8152d992ad5f7f590f70b1368bc60b))
* **backend:** the metacontroller is broken since [\#11474](https://github.com/kubeflow/pipelines/issues/11474) ([\#11608](https://github.com/kubeflow/pipelines/issues/11608)) ([a40163f](https://github.com/kubeflow/pipelines/commit/a40163fdf2fe281cda91baf2f122c23664d5fcb9))
* **backend:** upgrade go version to 1.22.12 to fix CVE-2024-45336 ([\#11631](https://github.com/kubeflow/pipelines/issues/11631)) ([87498e8](https://github.com/kubeflow/pipelines/commit/87498e8b60a167eccfef7cc29f888808ca954155))
* **backend:** upgrade various old dependencies ([\#11448](https://github.com/kubeflow/pipelines/issues/11448)) ([803d7a8](https://github.com/kubeflow/pipelines/commit/803d7a8ebb00924107b890de01e2a53af78d9a5e))
* **backend:** Use an Argo Workflow exit lifecycle hook for exit handlers ([\#11470](https://github.com/kubeflow/pipelines/issues/11470)) ([3059f7c](https://github.com/kubeflow/pipelines/commit/3059f7c124dc95f867e6f755f7c0720aaa32d48b))
* **CI:** Use the correct image registry for replacements in integration tests ([\#11564](https://github.com/kubeflow/pipelines/issues/11564)) ([ac9b257](https://github.com/kubeflow/pipelines/commit/ac9b257a7a249c4b4c20b04d4c95ff8354c5b4e0))
* **components:** remove default prediction column names in evaluation regression component to fix issues with bigquery data source ([753a2f1](https://github.com/kubeflow/pipelines/commit/753a2f148ac3f001bc785acc6359295e6fe521fd))
* **components:** Set tensorboard_experiment_name to random uuid when uploading plots in Starry Net pipeline ([cc56d04](https://github.com/kubeflow/pipelines/commit/cc56d04c46d01666a8e091b124473c2654e1b6d3))
* **deployment:** Update kustomize manifests to use new label and patch syntax ([\#11733](https://github.com/kubeflow/pipelines/issues/11733)) ([230c1b8](https://github.com/kubeflow/pipelines/commit/230c1b8f1332ffab575b2e69b65d9a6958167195))
* **deps:** widen urllib3 upper bound to <3.0.0([\#11819](https://github.com/kubeflow/pipelines/issues/11819))([866ff35](https://github.com/kubeflow/pipelines/commit/866ff3556a4454ccb52f1594bbca4167a04c0d3e))
* **docs:** Remove Podman as backend README pre-req ([\#11824](https://github.com/kubeflow/pipelines/issues/11824)) ([88cff55](https://github.com/kubeflow/pipelines/commit/88cff559142e5a985cf31620f07b71244645cb4a))
* **docs:** Use the latest driver and launcher images in the dev environment ([\#11820](https://github.com/kubeflow/pipelines/issues/11820)) ([92e4921](https://github.com/kubeflow/pipelines/commit/92e4921c4cce8155093bf7e332abfbf03bd6eaef))
* **frontend:** compatibility with pod_names v1 ([\#11682](https://github.com/kubeflow/pipelines/issues/11682)) ([afb3b14](https://github.com/kubeflow/pipelines/commit/afb3b1461bdd8c4d4cbc697abe1d7d1acfcdc38f))
* **frontend:** Detailed information of nodes is not displayed when clicking the node. Fixes [\#11325](https://github.com/kubeflow/pipelines/issues/11325) ([\#11493](https://github.com/kubeflow/pipelines/issues/11493)) ([028d81b](https://github.com/kubeflow/pipelines/commit/028d81b624629d4610ddcdced5b982437ff88d08))
* **frontend:** first time choosing a pipeline definition is VERY slow. Fixes [\#10897](https://github.com/kubeflow/pipelines/issues/10897) ([\#11130](https://github.com/kubeflow/pipelines/issues/11130)) ([cfb3b31](https://github.com/kubeflow/pipelines/commit/cfb3b3149d9ba02daec584af77ef763f936cd727))
* **frontend:** Fix the frontend image build with Node 22 ([\#11524](https://github.com/kubeflow/pipelines/issues/11524)) ([533a3c6](https://github.com/kubeflow/pipelines/commit/533a3c6b667eb11b9cd7da2f6fe334252867fcc5))
* **frontend:** fixes Default pipeline input params are missing from the GUI. Fixes [\#11515](https://github.com/kubeflow/pipelines/issues/11515) ([\#11518](https://github.com/kubeflow/pipelines/issues/11518)) ([8fe2157](https://github.com/kubeflow/pipelines/commit/8fe21574c644543fef55a2d515681d23fdfce508))
* **frontend:** restrict file explorer to show only .yaml, .yml, .zip, and .tar.gz files ([\#11623](https://github.com/kubeflow/pipelines/issues/11623)) ([c0778ba](https://github.com/kubeflow/pipelines/commit/c0778ba88c359d119453c2acc94c0168b3f53772))
* **local:** warn about oci:// not supported too ([\#11794](https://github.com/kubeflow/pipelines/issues/11794)) ([564522c](https://github.com/kubeflow/pipelines/commit/564522c42de9136dec67f1bf29590bdd64bf2333))
* **manifests:** Upgrading metacontroller to v4.11.22 ([\#11656](https://github.com/kubeflow/pipelines/issues/11656)) ([ebaaf75](https://github.com/kubeflow/pipelines/commit/ebaaf756319ac4ac9498aca5f7dfb3978ff36496))
* **metadata-writer:** use mlmd_store.get_context_types() instead of workaround ([\#11753](https://github.com/kubeflow/pipelines/issues/11753)) ([35041ef](https://github.com/kubeflow/pipelines/commit/35041ef2bd4d9b3261f1250f5803786ed9e453fe))
* **sdk:** accelerator type setting in kfp ([\#11373](https://github.com/kubeflow/pipelines/issues/11373)) ([64e3900](https://github.com/kubeflow/pipelines/commit/64e390069d6c60c97ea03e833529a0930398620f))
* **sdk:** Add error handling. Fixes [\#11164](https://github.com/kubeflow/pipelines/issues/11164) ([\#11356](https://github.com/kubeflow/pipelines/issues/11356)) ([4a64fe9](https://github.com/kubeflow/pipelines/commit/4a64fe9532556a48585b9966db8e10c7de0a8d37))
* **sdk:** Add SDK support for setting resource limits on older KFP versions ([\#11839](https://github.com/kubeflow/pipelines/issues/11839)) ([f9d487c](https://github.com/kubeflow/pipelines/commit/f9d487cb605727f357f58783db298d96898b24d1))
* **sdk:** avoid conflicting component names in DAG when reusing pipelines ([\#11071](https://github.com/kubeflow/pipelines/issues/11071)) ([d1b15ef](https://github.com/kubeflow/pipelines/commit/d1b15ef4da33cbeafa491564318c7e2a68dc431f))
* **sdk:** Backport fixes in kubeflow/pipelines#11075 ([\#11392](https://github.com/kubeflow/pipelines/issues/11392)) ([6ebf4aa](https://github.com/kubeflow/pipelines/commit/6ebf4aae0335424d3bc88175fd06a2b2ba05251f))
* **tests:** free up space in some test runners ([\#11818](https://github.com/kubeflow/pipelines/issues/11818)) ([478ca08](https://github.com/kubeflow/pipelines/commit/478ca089012e64edd371feff4ece9d0d156d4710))
* Extend env variables in ml-pipeline-ui deployment ([\#11552](https://github.com/kubeflow/pipelines/issues/11552)) ([a469b10](https://github.com/kubeflow/pipelines/commit/a469b10806a02ed01f6d7d08cdd90e8fc44b8a86))
* minio fsgroup for popular clusters ([\#11734](https://github.com/kubeflow/pipelines/issues/11734)) ([8d0ae53](https://github.com/kubeflow/pipelines/commit/8d0ae5381e8366905c90009c56fd0e4807e94f0f))
* Update broken api-connect link ([\#11521](https://github.com/kubeflow/pipelines/issues/11521)) ([a81b513](https://github.com/kubeflow/pipelines/commit/a81b51339c650b8b1fca9eeb7a2932bdfaab409f))
* **tests:** remove redundant integration test wf ([\#11322](https://github.com/kubeflow/pipelines/issues/11322)) ([6a35ee5](https://github.com/kubeflow/pipelines/commit/6a35ee5144fba1c72badc7c52161d8a49f34804e))
* Handle optional pipeline inputs in the driver ([\#11788](https://github.com/kubeflow/pipelines/issues/11788)) ([bb7a108](https://github.com/kubeflow/pipelines/commit/bb7a1082c4c5a3fb308aac2bf37bab476c3c4df6))
* Fix recurring run output when always using latest ([\#11790](https://github.com/kubeflow/pipelines/issues/11790)) ([048f283](https://github.com/kubeflow/pipelines/commit/048f28332b6a0b6684632e76dcb284de2f81d829))
* increase stale action timers ([\#11792](https://github.com/kubeflow/pipelines/issues/11792)) ([ade8a2d](https://github.com/kubeflow/pipelines/commit/ade8a2d072efa9897a5a0173316836236d629238))
* fix(CI) Github action is vulnerable to code execution via `comment body` ([\#11772](https://github.com/kubeflow/pipelines/issues/11772)) ([95c3f2c](https://github.com/kubeflow/pipelines/commit/95c3f2c04d8f19b8b656ddbda046ed9f2c81130a))
* Fix Istio sidecar injection by moving from annotations to labels ([\#11750](https://github.com/kubeflow/pipelines/issues/11750)) ([df4e9c2](https://github.com/kubeflow/pipelines/commit/df4e9c2bf5b645f4a3fa831b073846eae5eaceb7))
* remove unused function ([\#11719](https://github.com/kubeflow/pipelines/issues/11719)) ([89c8bd7](https://github.com/kubeflow/pipelines/commit/89c8bd7274e2d3141a48045427f12faa4e52f029))
* fix(backend) fix execution-level retry on the Argo Workflows backend ([\#11673](https://github.com/kubeflow/pipelines/issues/11673)) ([30210e3](https://github.com/kubeflow/pipelines/commit/30210e33bf257ff06727550d1c59e6bcc7158ab7))
* Fix format string in get_kfp_package_path ([\#11712](https://github.com/kubeflow/pipelines/issues/11712)) ([7d8e921](https://github.com/kubeflow/pipelines/commit/7d8e9211f6625d76958023535967bf37b36d9b7a))
* Use the correct SDK version in the SDK execution tests CI ([\#11683](https://github.com/kubeflow/pipelines/issues/11683)) ([355f78c](https://github.com/kubeflow/pipelines/commit/355f78c51b084026b8e01db16a06cb93515ff67a))
* Limit the number of parallel tests in SDK execution tests ([\#11680](https://github.com/kubeflow/pipelines/issues/11680)) ([976fba8](https://github.com/kubeflow/pipelines/commit/976fba871fa2331c44ab9723744791051c8f9732))
* Allow system.Model artifacts in the Modelcar format ([\#11674](https://github.com/kubeflow/pipelines/issues/11674)) ([0afb12d](https://github.com/kubeflow/pipelines/commit/0afb12d6a7fcce6e06a8991a228a0bebf734dabf))
* (test) : Collect and upload logs when test fails for k8s ([\#11618](https://github.com/kubeflow/pipelines/issues/11618)) ([8ca7ec1](https://github.com/kubeflow/pipelines/commit/8ca7ec1768f82f50b3b46606f39632eab11b8fe6))
* fix(backend) fix run retry for argo ([\#11585](https://github.com/kubeflow/pipelines/issues/11585)) ([b131566](https://github.com/kubeflow/pipelines/commit/b1315667be8f03973898113b3204e375d1f015a4))
* Refer to central KEP template ([\#11593](https://github.com/kubeflow/pipelines/issues/11593)) ([7bb0c44](https://github.com/kubeflow/pipelines/commit/7bb0c448cd17953d96e46dcd73972b52b35f5789))
* chor(test) : Fix kfp-sdk-test for different python versions ([\#11559](https://github.com/kubeflow/pipelines/issues/11559)) ([926aec5](https://github.com/kubeflow/pipelines/commit/926aec55d491eb9fb3abc3db3b4a903cf9dd22d8))
* chore(frontend) : Fix frontend failing ci test ([\#11575](https://github.com/kubeflow/pipelines/issues/11575)) ([d3a016d](https://github.com/kubeflow/pipelines/commit/d3a016dd645ba828ec375428faa733e0203d278e))
* Fix typo in documentation for contribution and developer guide ([\#11537](https://github.com/kubeflow/pipelines/issues/11537)) ([1234c8d](https://github.com/kubeflow/pipelines/commit/1234c8d6fef914d07ab634a266e1e076c152fd06))
* switch release/api generator images to ghcr ([\#11528](https://github.com/kubeflow/pipelines/issues/11528)) ([83791e7](https://github.com/kubeflow/pipelines/commit/83791e7703f3761b90fcce376caaf70d826cc488))
* add remaining dockerfiles to build workflow ([\#11522](https://github.com/kubeflow/pipelines/issues/11522)) ([682d3ac](https://github.com/kubeflow/pipelines/commit/682d3aca5fb92622fb6a1cd94e5984fea4d90471))
* adding chore as a new template. Fixes [\#11263](https://github.com/kubeflow/pipelines/issues/11263) ([\#11317](https://github.com/kubeflow/pipelines/issues/11317)) ([f256d86](https://github.com/kubeflow/pipelines/commit/f256d86fbb9bfff0388cd6ef9df1120e49e995d8))
* **sdk/backend:** Add support for placeholders in resource limits ([\#11501](https://github.com/kubeflow/pipelines/issues/11501)) ([7c931ae](https://github.com/kubeflow/pipelines/commit/7c931ae20197b2309d7a8462f6ce099882a8f915))
* Introduce cache_key for cache key customization ([\#11434](https://github.com/kubeflow/pipelines/issues/11434)) ([50b367f](https://github.com/kubeflow/pipelines/commit/50b367f232b2d37b762745c8b4296a29c9d8fd45))
* **api:** add PipelineConfig to api to re-implement pipeline-level config ([\#11333](https://github.com/kubeflow/pipelines/issues/11333)) ([c2f5649](https://github.com/kubeflow/pipelines/commit/c2f56495b9b1e9eda1b44b6106e12d5290a89ed7))
* **backend:** add configurable S3 path style support ([\#11246](https://github.com/kubeflow/pipelines/issues/11246)) ([85fdd73](https://github.com/kubeflow/pipelines/commit/85fdd73ae0bb1c2ce01da6311807b37cfc589710))
* **component:** Created Snowflake data unload component ([\#11349](https://github.com/kubeflow/pipelines/issues/11349)) ([22e7780](https://github.com/kubeflow/pipelines/commit/22e77805ed41a72837f7cd15a9d679f42169b253))
* **component:** execute in a virtual env ([\#11326](https://github.com/kubeflow/pipelines/issues/11326)) ([df28e89](https://github.com/kubeflow/pipelines/commit/df28e891c4374f7eac98cc6a4892b6e6c35a43f2))
* **components:** Add reservation_affinity support in v1.create_custom_training_job_from_component ([c84241b](https://github.com/kubeflow/pipelines/commit/c84241b7362c0351109bc0ddbc2f697479ff8675))
* **frontend/backend:** Allow the ability to sort experiments by last run creation. Fixes [\#10884](https://github.com/kubeflow/pipelines/issues/10884) ([\#11163](https://github.com/kubeflow/pipelines/issues/11163)) ([db8669c](https://github.com/kubeflow/pipelines/commit/db8669c33e60bb8910710359c0638d21ec27ac7c))
* **sdk:** add PipelineConfig to DSL to re-implement pipeline-level config ([\#11112](https://github.com/kubeflow/pipelines/issues/11112)) ([df4d787](https://github.com/kubeflow/pipelines/commit/df4d7878c4ce25c801a916351bcbce1266a9daf1))
* **sdk:** Allow disabling default caching via a CLI flag and env var ([\#11222](https://github.com/kubeflow/pipelines/issues/11222)) ([3f49522](https://github.com/kubeflow/pipelines/commit/3f495229f26ef08360048d050dfe014ca4b57b4f))
* **sdk:** stop auto-populating metrics as dag output ([\#11362](https://github.com/kubeflow/pipelines/issues/11362)) ([8d018af](https://github.com/kubeflow/pipelines/commit/8d018aff6ed14b5bed7b3f90d9f450b3144ae18e))
* **sdk/backend:** enable parameterization of container images ([\#11404](https://github.com/kubeflow/pipelines/issues/11404)) ([22e85de](https://github.com/kubeflow/pipelines/commit/22e85de2bcbd2ff5ed2a099e4f11a39ff27e4190))
* **testing:** use kustomize to patch deployments before deploy ([\#11294](https://github.com/kubeflow/pipelines/issues/11294)) ([be863a8](https://github.com/kubeflow/pipelines/commit/be863a852997718701a1ee548d9db86dca7ffc33))
* add fields in SinglePlatformSpec ([\#11299](https://github.com/kubeflow/pipelines/issues/11299)) ([a0d313e](https://github.com/kubeflow/pipelines/commit/a0d313e095c2b5fc1a32809c38cf96b13e5772b2))
* **sdk:** support dynamic machine type parameters in pipeline task setters ([\#11097](https://github.com/kubeflow/pipelines/issues/11097)) ([70aaf8a](https://github.com/kubeflow/pipelines/commit/70aaf8a9a469607dc6e4aad58d40b39c75363b99))
* **workflows:** use built images in Github workflows ([\#11284](https://github.com/kubeflow/pipelines/issues/11284)) ([1550b36](https://github.com/kubeflow/pipelines/commit/1550b363aed3745b476d2b3798725432329e8cea))
### Bug Fixes
* **backend:** Allow initializing the Kubernetes client with a kubeconfig ([\#11443](https://github.com/kubeflow/pipelines/issues/11443)) ([87bdb7c](https://github.com/kubeflow/pipelines/commit/87bdb7c3b1126ae5e899826be0834c11764edbae))
* **backend:** handle client side HTTP timeouts to fix crashes of metadata-writer. Fixes [\#8200](https://github.com/kubeflow/pipelines/issues/8200) ([\#11361](https://github.com/kubeflow/pipelines/issues/11361)) ([94a21cc](https://github.com/kubeflow/pipelines/commit/94a21cc7e27a3824732e7f4c09a4d8b826dde5b8))
* **backend:** modelToCRDTrigger was not including periodic schedule correctly ([\#11475](https://github.com/kubeflow/pipelines/issues/11475)) ([97acacb](https://github.com/kubeflow/pipelines/commit/97acacbd2a0b72d442398ca04382ac1e6d9aa37f))
* **backend:** randomizing output uri path to avoid overwriting. Fixes [\#10186](https://github.com/kubeflow/pipelines/issues/10186) ([\#11243](https://github.com/kubeflow/pipelines/issues/11243)) ([219725d](https://github.com/kubeflow/pipelines/commit/219725d9f02b690cf0829a21faf092a3e4c65531))
* **backend:** remove unused function argument ([\#11425](https://github.com/kubeflow/pipelines/issues/11425)) ([7f2278f](https://github.com/kubeflow/pipelines/commit/7f2278f25222992bedfcae5b613a7a06430f4542))
* **backend:** set default value to true for ForcePathStyle ([\#11281](https://github.com/kubeflow/pipelines/issues/11281)) ([391de8c](https://github.com/kubeflow/pipelines/commit/391de8ca9ec68fe4cd85bba6c82348386fc79842))
* **backend:** stop heartbeat status updates for ScheduledWorkflows. Fixes [\#8757](https://github.com/kubeflow/pipelines/issues/8757) ([\#11363](https://github.com/kubeflow/pipelines/issues/11363)) ([9ccec4c](https://github.com/kubeflow/pipelines/commit/9ccec4c7d1aff4d2bfdb20cf4fd1f9d64b8632f4))
* **backend:** Synced ScheduledWorkflow CRs on apiserver startup ([\#11469](https://github.com/kubeflow/pipelines/issues/11469)) ([d21fca6](https://github.com/kubeflow/pipelines/commit/d21fca650c8152d992ad5f7f590f70b1368bc60b))
* **backend:** upgrade various old dependencies ([\#11448](https://github.com/kubeflow/pipelines/issues/11448)) ([803d7a8](https://github.com/kubeflow/pipelines/commit/803d7a8ebb00924107b890de01e2a53af78d9a5e))
* **backend:** Use an Argo Workflow exit lifecycle hook for exit handlers ([\#11470](https://github.com/kubeflow/pipelines/issues/11470)) ([3059f7c](https://github.com/kubeflow/pipelines/commit/3059f7c124dc95f867e6f755f7c0720aaa32d48b))
* **components:** remove default prediction column names in evaluation regression component to fix issues with bigquery data source ([753a2f1](https://github.com/kubeflow/pipelines/commit/753a2f148ac3f001bc785acc6359295e6fe521fd))
* **frontend:** Detailed information of nodes is not displayed when clicking the node. Fixes [\#11325](https://github.com/kubeflow/pipelines/issues/11325) ([\#11493](https://github.com/kubeflow/pipelines/issues/11493)) ([028d81b](https://github.com/kubeflow/pipelines/commit/028d81b624629d4610ddcdced5b982437ff88d08))
* **frontend:** first time choosing a pipeline definition is VERY slow. Fixes [\#10897](https://github.com/kubeflow/pipelines/issues/10897) ([\#11130](https://github.com/kubeflow/pipelines/issues/11130)) ([cfb3b31](https://github.com/kubeflow/pipelines/commit/cfb3b3149d9ba02daec584af77ef763f936cd727))
* **frontend:** Fix the frontend image build with Node 22 ([\#11524](https://github.com/kubeflow/pipelines/issues/11524)) ([\#11525](https://github.com/kubeflow/pipelines/issues/11525)) ([2e47604](https://github.com/kubeflow/pipelines/commit/2e4760435ff988063dba6e21707e910bf748e5ff))
* **sdk:** accelerator type setting in kfp ([\#11373](https://github.com/kubeflow/pipelines/issues/11373)) ([64e3900](https://github.com/kubeflow/pipelines/commit/64e390069d6c60c97ea03e833529a0930398620f))
* **sdk:** Add error handling. Fixes [\#11164](https://github.com/kubeflow/pipelines/issues/11164) ([\#11356](https://github.com/kubeflow/pipelines/issues/11356)) ([4a64fe9](https://github.com/kubeflow/pipelines/commit/4a64fe9532556a48585b9966db8e10c7de0a8d37))
* **sdk:** Backport fixes in kubeflow/pipelines#11075 ([\#11392](https://github.com/kubeflow/pipelines/issues/11392)) ([6ebf4aa](https://github.com/kubeflow/pipelines/commit/6ebf4aae0335424d3bc88175fd06a2b2ba05251f))
* **tests:** remove redundant integration test wf ([\#11322](https://github.com/kubeflow/pipelines/issues/11322)) ([6a35ee5](https://github.com/kubeflow/pipelines/commit/6a35ee5144fba1c72badc7c52161d8a49f34804e))
* adding chore as a new template. Fixes [\#11263](https://github.com/kubeflow/pipelines/issues/11263) ([\#11317](https://github.com/kubeflow/pipelines/issues/11317)) ([f256d86](https://github.com/kubeflow/pipelines/commit/f256d86fbb9bfff0388cd6ef9df1120e49e995d8))
* **api:** Add new ResourceSpec proto fields to support dynamic values. ([\#11075](https://github.com/kubeflow/pipelines/issues/11075)) ([83dcf1a](https://github.com/kubeflow/pipelines/commit/83dcf1a60919f5bcc0c644c8fdff94ad686cad07))
* **backend:** mount EmptyDir volumes for launcher write locations ([\#10857](https://github.com/kubeflow/pipelines/issues/10857)) ([65839ce](https://github.com/kubeflow/pipelines/commit/65839ced31969affe23ecc483c95872684e7dd0b))
* **backend:** move comp logic to workflow params ([\#10979](https://github.com/kubeflow/pipelines/issues/10979)) ([0e37fd6](https://github.com/kubeflow/pipelines/commit/0e37fd66a4f15bb7ce31ecceec7421ba1bd65fd6))
* **Backend + SDK:** Update kfp backend and kubernetes sdk to support EmptyDir ([\#10913](https://github.com/kubeflow/pipelines/issues/10913)) ([7506a8e](https://github.com/kubeflow/pipelines/commit/7506a8eafae9876a4f1e1a0e86024f5231369e8d))
* **components:** Add role_field_name and model_name as input parameters to llm_evaluation_preprocessor component to support gemini model's input and output schema ([de346d5](https://github.com/kubeflow/pipelines/commit/de346d5590b1df94cee528f949a067fb3aae578f))
* **components:** Add Starry Net forecasting pipeline to public preview ([3a0566e](https://github.com/kubeflow/pipelines/commit/3a0566e8dc27d8fbd13174d6a6aed4daddb2405b))
* **components:** Create the write_user_defined_error function ([454a654](https://github.com/kubeflow/pipelines/commit/454a65428977a4e470c0d72525a96c3f4a0344f3))
* **components:** create utility class for preprocessors and use it in rlhf preprocessor and infer preprocessor ([cd16a33](https://github.com/kubeflow/pipelines/commit/cd16a33e735b30a85b2e736039f72c2ed6d26507))
* **components:** release LLM Model Evaluation image version v0.7 ([4f36fe3](https://github.com/kubeflow/pipelines/commit/4f36fe3637eb52980e559615595dfab7aa539a87))
* **components:** Retry on batch prediction internal errors in AutoSxS ([5d9f4ab](https://github.com/kubeflow/pipelines/commit/5d9f4ab929747748e4a616c89fac9de37fc81485))
* **components:** Support dynamic machine parameters in preview.custom_job.utils.create_custom_training_job_from_component ([e44dfa7](https://github.com/kubeflow/pipelines/commit/e44dfa7e898a1f4e8c315502719d9c7c709f1b01))
* **components:** Support dynamic machine type paramters in CustomTrainingJobOp ([\#10883](https://github.com/kubeflow/pipelines/issues/10883)) ([b57f9e8](https://github.com/kubeflow/pipelines/commit/b57f9e858880afcbeac51a5d4e978133be6c0d50))
* **components:** Support dynamic values for boot_disk_type, boot_disk_size in preview.custom_job.utils.create_custom_training_job_from_component ([7b7918e](https://github.com/kubeflow/pipelines/commit/7b7918ebf8c30e6ceec99283ef20dbc02fdf6a42))
* **components:** Support parsing Gemini BP outputs in AutoSxS pipeline ([b4f91a3](https://github.com/kubeflow/pipelines/commit/b4f91a3f2cf1d2d8925e698bebd3cb5b9baaaaac))
* **components:** Update Starry Net image tags ([bf5104f](https://github.com/kubeflow/pipelines/commit/bf5104fcff6a6c2db8d8e39522c04eca1bb3fc93))
* **components:** Use GetModel integration test to manually test write_user_defined_error function ([609c637](https://github.com/kubeflow/pipelines/commit/609c637811e46eab2d5c9a915913a1520c979a88))
* **components:** use preprocessor utility methods for the upload model graph ([7908ed6](https://github.com/kubeflow/pipelines/commit/7908ed664653143d335ba3e9227484347e64577d))
* **frontend&backend:** Add UI support for object store customization and prefixes ([\#10787](https://github.com/kubeflow/pipelines/issues/10787)) ([6723d3d](https://github.com/kubeflow/pipelines/commit/6723d3d5a92181b7ee75304671256bbe5ac18582))
* **internal:** Adding proto field to support regional quota ([c8f08ba](https://github.com/kubeflow/pipelines/commit/c8f08ba49f92f53269d71425666c0bc3a687615d))
* **kubernetes_platform:** Add empty dir mount ([\#10892](https://github.com/kubeflow/pipelines/issues/10892)) ([10aaf43](https://github.com/kubeflow/pipelines/commit/10aaf431367e974bf6c73306acf6a7fd40e36942))
* **kubernetes_platform:** Update kubernetes_platform go package to include EnabledSharedMemory ([\#10703](https://github.com/kubeflow/pipelines/issues/10703)) ([7c63599](https://github.com/kubeflow/pipelines/commit/7c6359984314472bf801ea1ba8b0e8c5d9e2be2c))
### Bug Fixes
* **components:** add check and add log to call out the fallback to the default model checkpoint and remove the model checkpoint check condition in RLHF GCPC ([92c3178](https://github.com/kubeflow/pipelines/commit/92c317824a3697d955cb78cc9a85ecac58a3366c))
* **components:** Add input param `autorater_prompt_parameters` to `online_evaluation_pairwise` component ([cf7450b](https://github.com/kubeflow/pipelines/commit/cf7450b109ba349b50aef2413517c0ec3961adf8))
* **components:** Add staging and temp locations to prophet trainer component ([00440f7](https://github.com/kubeflow/pipelines/commit/00440f7df4abae08823df9ab5b48de703a8a773c))
* **components:** Fix to model batch explanation component for Structured Data pipelines ([289f64f](https://github.com/kubeflow/pipelines/commit/289f64fe948c1aede1886789045aaf1e2ac8f699))
* **components:** Pass moddel name to eval_runner to process batch prediction's output as per the output schema of model used ([0d3e79a](https://github.com/kubeflow/pipelines/commit/0d3e79adc7bade905c112160781fed0feef3f595))
* **components:** Remove unused import function_based from infer pipeline ([e369bd3](https://github.com/kubeflow/pipelines/commit/e369bd3ebd91831465ba346ab271549c549c6745))
* **components:** Use instance.target_field_name format for text-bison models only, use target_field_name for gemini models ([1a07ffa](https://github.com/kubeflow/pipelines/commit/1a07ffa9111ac5ccea6ad527e8950b084aa4fc79))
* **docs:** add note about protoc dependency and version ([\#10895](https://github.com/kubeflow/pipelines/issues/10895)) ([d911c8b](https://github.com/kubeflow/pipelines/commit/d911c8b73b49cd0a4ffda132f494f31d0d48095a))
* **docs:** IR -> Pipeline Spec ([\#11031](https://github.com/kubeflow/pipelines/issues/11031)) ([1e95eb6](https://github.com/kubeflow/pipelines/commit/1e95eb628545baaf691270c4ddb45034ecef8fa4))
* **frontend:** fixes filter pipeline text box shows error when typing anything in it. Fixes [\#10241](https://github.com/kubeflow/pipelines/issues/10241) ([\#11096](https://github.com/kubeflow/pipelines/issues/11096)) ([51d2c92](https://github.com/kubeflow/pipelines/commit/51d2c92b551751b758f544ca32a7ec0f67d09558))
* **frontend:** reduce list run latency ([\#10797](https://github.com/kubeflow/pipelines/issues/10797)) ([768ece4](https://github.com/kubeflow/pipelines/commit/768ece44e69e328400ca437c9ebe2c959b26d8a8))
* **frontend:** retrieve archived logs from correct location ([\#11010](https://github.com/kubeflow/pipelines/issues/11010)) ([2e6e634](https://github.com/kubeflow/pipelines/commit/2e6e634de43c42fee88dfe2abfdb0e4155dc4f95))
* **sdk:** Add required auth scopes to RegistryClient for GCP service accounts credentials ([\#10819](https://github.com/kubeflow/pipelines/issues/10819)) ([04b4cad](https://github.com/kubeflow/pipelines/commit/04b4cad8cdc88810628f5e683cada57a7f42be47))
* **sdk:** Kfp support for pip trusted host ([\#11151](https://github.com/kubeflow/pipelines/issues/11151)) ([3efa029](https://github.com/kubeflow/pipelines/commit/3efa02984c44190ee6ea98af1a6905d67a986af0))
* **ui:** fixes empty string value in pipeline parameters ([\#11175](https://github.com/kubeflow/pipelines/issues/11175)) ([e9c77ec](https://github.com/kubeflow/pipelines/commit/e9c77ec6d5c900be6ca77f513610a603c41ed2ce))
* Basic sample tests - sequential is flaky ([\#11138](https://github.com/kubeflow/pipelines/issues/11138)) ([e1d172b](https://github.com/kubeflow/pipelines/commit/e1d172bb5740f743be45e43f602085baed1c5495))
* Incorrect typing in samples/cores/loop_parallism and fixing loop_parameter examples ([\#11062](https://github.com/kubeflow/pipelines/issues/11062)) ([1612dac](https://github.com/kubeflow/pipelines/commit/1612dac4adacbe1f2a041eb4eacb94663c2ba286))
* **kubernetes_platform:** fix api-generator docker mount for SELinux ([\#10890](https://github.com/kubeflow/pipelines/issues/10890)) ([e69078b](https://github.com/kubeflow/pipelines/commit/e69078b2b65c0e34fd56499bbe34da882dc6e009))
* **manifests:** Move metacontroller to the top in kustmization.yaml ([\#10669](https://github.com/kubeflow/pipelines/issues/10669)) ([4e9fe75](https://github.com/kubeflow/pipelines/commit/4e9fe75d4564bbcdde7cd358298361e94d4a20be))
* **sdk:** Throw 'exit_task cannot depend on any other tasks.' error when an ExitHandler has a parameter dependent on other task ([\#11005](https://github.com/kubeflow/pipelines/issues/11005)) ([08185e7](https://github.com/kubeflow/pipelines/commit/08185e71717ef628be3cbe2cdeb1fd55b25581d4))
* add dev docs for kfp/sdk ([\#11046](https://github.com/kubeflow/pipelines/issues/11046)) ([eea7d48](https://github.com/kubeflow/pipelines/commit/eea7d483793c2b4f8c3aa20b1500535f7fbf50d4))
* No public description ([e3a4980](https://github.com/kubeflow/pipelines/commit/e3a498020a28788b3df71db310dd266a537ef243))
* Upgrade go version to 1.21 ([\#10911](https://github.com/kubeflow/pipelines/issues/10911)) ([bdc3bb1](https://github.com/kubeflow/pipelines/commit/bdc3bb1f0d5850332d4fc0851a2d1730ead62427))
* Expose starry_net yaml to GitHub ([\#10943](https://github.com/kubeflow/pipelines/issues/10943)) ([f1e2314](https://github.com/kubeflow/pipelines/commit/f1e23142b1eabc977d85736dfd4bdbdc019cfcb2))
* **backend:** Upgrade argo to v3.4.16 ([\#10568](https://github.com/kubeflow/pipelines/issues/10568)) ([809d576](https://github.com/kubeflow/pipelines/commit/809d5766fc9ec436ff05c083e9a2ae65ad2667b7))
* **components:** Add model name preprocess component; Use publisher model if user uploaded model is non-tuned ([084f2c2](https://github.com/kubeflow/pipelines/commit/084f2c22295f92e407c283c0d524ffb693a11a4e))
* **components:** add resolve_machine_spec and resolve_refined_image_uri to rlhf_preprocessor component ([2a8d39e](https://github.com/kubeflow/pipelines/commit/2a8d39ec68affe508008eb2e3c91abe52a198c18))
* **components:** add resolve_reference_model_metadata to rlhf_preprocessor component ([92a7969](https://github.com/kubeflow/pipelines/commit/92a7969318c7439b7f60188837e8a76e012a1945))
* **components:** add task_type as a parameter to rlaif ([64d288a](https://github.com/kubeflow/pipelines/commit/64d288a2f531b1ea0450328304c80d79f0508e14))
* **components:** Added support for text-bison@002 to preview.llm.rlhf_pipeline ([2f27751](https://github.com/kubeflow/pipelines/commit/2f27751d0fd0e4db6eda372605380a2b9225072a))
* **components:** AutoSxS GA pending release ([aee464c](https://github.com/kubeflow/pipelines/commit/aee464c92da2dddadef5c9f7c29e5e58154a9898))
* **components:** Expand regions supported by `preview.llm.rlhf_pipeline` ([22a98d9](https://github.com/kubeflow/pipelines/commit/22a98d9f8de728a18c071bf7fa560bd141b03cbb))
* **components:** Introduce placeholders: SERVICE_ACCOUNT_PLACEHOLDER, NETWORK_PLACEHOLDER, PERSISTENT_RESOURCE_ID_PLACEHOLDER and ENCYRPTION_SPEC_KMS_KEY_NAME_PLACEHOLDER. In addition, use PERSISTENT_RESOURCE_ID_PLACEHOLDER as the default value of persistent_resource_id for CustomTrainingJobOp and create_custom_training_job_op_from_component. With this change, custom job created without explicitly setting persistent_resource_id will inherit job level persistent_resource_id, if Persistent Resource is set as job level runtime ([67d3cd6](https://github.com/kubeflow/pipelines/commit/67d3cd6dbc0569d0050ee11bbcca9bcd80e457fb))
* **components:** migrate function_based convert_to_delimited_string to rlhf_preprocessor component ([efefe34](https://github.com/kubeflow/pipelines/commit/efefe346f0a97004e5bd000c0e68d06e7d8f0b4b))
* **components:** migrate function_based resolve_num_microbatches to rlhf_preprocessor component ([ee28c72](https://github.com/kubeflow/pipelines/commit/ee28c72893a0bbe1963d6b6f158937e1f4a0651d))
* **components:** migrate function_based resolve_regional_endpoint to rlhf_preprocessor component ([f175c71](https://github.com/kubeflow/pipelines/commit/f175c71aea461455451f9de22780be922ae706d3))
* **components:** Move AutoSxS pipeline to v1 directory ([d919ae7](https://github.com/kubeflow/pipelines/commit/d919ae7216b60efdd08441eee64bc18ad8f30e70))
* **components:** Move ModelImportEvaluationOp component to preview namespace ([33db128](https://github.com/kubeflow/pipelines/commit/33db1284f57b5b277c95d4a44b35b1fdd830bd18))
* **components:** Report TensorBoard metrics for `preview.llm.rlhf_pipeline` in real time ([3d8069b](https://github.com/kubeflow/pipelines/commit/3d8069bf2c9c4eecca3df2e45da4d4fa2ed43af5))
* **components:** Use larger base reward model when tuning `t5-xxl` with the `preview.llm.rlhf_pipeline` ([ff7f660](https://github.com/kubeflow/pipelines/commit/ff7f660c3c13e8e9f5f047ae4ee0dfbcebf6bfb8))
* **components:** Use larger base reward model when tuning `text` and `chat` variants of `bison@001` with the `preview.llm.rlhf_pipeline` ([ac39931](https://github.com/kubeflow/pipelines/commit/ac399315e66d6ed2666dc9dbaecbce4938f87356))
* **components:** use rlhf_preprocessor to replace the current value_exists call in rlhf ([c967d9f](https://github.com/kubeflow/pipelines/commit/c967d9f7df0bec5827cdf45ea02d3463d8b17aff))
* **kubernetes_platform:** Update kubernetes_platform go package to include generic ephemerl volume ([\#10602](https://github.com/kubeflow/pipelines/issues/10602)) ([2fc1492](https://github.com/kubeflow/pipelines/commit/2fc1492a0602be7f5aab94d246d4e0bc483de47a))
* **kubernetes_platform:** Update kubernetes_platform go package to include node affinities and pod (anti)affinities ([\#10583](https://github.com/kubeflow/pipelines/issues/10583)) ([4f8cae2](https://github.com/kubeflow/pipelines/commit/4f8cae2a633552d0a6fcc11a24e81fa5077a9fd2))
* **sdk+backend:** Add support for generic ephemeral volume ([\#10605](https://github.com/kubeflow/pipelines/issues/10605)) ([3fb76a8](https://github.com/kubeflow/pipelines/commit/3fb76a8e1590238abd1226ae961c5871bf41f5ef))
### Bug Fixes
* **backend:** Update backend common code and integration tests with updated API Service Params ([\#10640](https://github.com/kubeflow/pipelines/issues/10640)) ([8b2a099](https://github.com/kubeflow/pipelines/commit/8b2a099e8c9f216a139602be3d349f5b1aab9d2c))
* **Backend + SDK:** Add missing optional field to SecretAsVolume and … ([\#10550](https://github.com/kubeflow/pipelines/issues/10550)) ([a78dc77](https://github.com/kubeflow/pipelines/commit/a78dc77a301c9432f3e2791083b5d99266ae4e55))
* **components:** Ensure `preview.llm.rlhf_pipeline` runs if no `tensorboard_id` is provided ([ff0d0a7](https://github.com/kubeflow/pipelines/commit/ff0d0a7706123d427458e65d98b38d23975204c8))
* **components:** Fix image version parameter in rl pipelines ([cef6e51](https://github.com/kubeflow/pipelines/commit/cef6e510121e9956b9b78126a4f7565cf69b960a))
* **components:** Fix model eval import error in text generation/classification eval pipeline ([7630f85](https://github.com/kubeflow/pipelines/commit/7630f85031269abd8921eb6daed7cf65c19eeac4))
* **components:** Make AutoSxS autorater_prompt_parameters required ([df20088](https://github.com/kubeflow/pipelines/commit/df20088328353fd60e77f20dfc082b577381e5a0))
* **components:** remove default prediction column names in evaluation classification component to fix incorrect column names for bigquery data source ([54f2e45](https://github.com/kubeflow/pipelines/commit/54f2e45375999b2a57b3f7988a61b503dfd70834))
* **components:** Remove the unused functions from function_based ([e052dc8](https://github.com/kubeflow/pipelines/commit/e052dc8daf7c30f362a95ab6eec6a618ae7a9f70))
* **components:** Remove the unused generate_default_instruction and resolve_upload_location from function_based ([e9d8764](https://github.com/kubeflow/pipelines/commit/e9d8764f2066892027528e6bca8ced547f3457e0))
* **components:** Remove the unused resolve_data_paths from function_based ([c386913](https://github.com/kubeflow/pipelines/commit/c3869137d0e55f69f447d5d684a4a85bc7078166))
* **components:** Update service account comment ([bf444ac](https://github.com/kubeflow/pipelines/commit/bf444ac84b5cbee0ab364ae14c3174ee1d74723b))
* **metadata envoy:** upgrade envoy and config from 1.12 to 1.27 ([\#10589](https://github.com/kubeflow/pipelines/issues/10589)) ([96aaad9](https://github.com/kubeflow/pipelines/commit/96aaad9421a0449fa7634959f522964394fc26e9))
### Other Pull Requests
* No public description ([cab99f7](https://github.com/kubeflow/pipelines/commit/cab99f7443bc57abb296ee13ae9c79b4adad1ef5))
* No public description ([79d0a5c](https://github.com/kubeflow/pipelines/commit/79d0a5c4a8d45274d5d7753183cda8864176cdd4))
* Update loop_output.py example for the new parallel loop type requirement ([\#10637](https://github.com/kubeflow/pipelines/issues/10637)) ([afddae9](https://github.com/kubeflow/pipelines/commit/afddae993bb367815f51de45c4dd8e5516e9ac1b))
* **backend:** Upgrade go version to 1.20 ([\#10502](https://github.com/kubeflow/pipelines/issues/10502)) ([b96b7bc](https://github.com/kubeflow/pipelines/commit/b96b7bcb5e6116d34756ae2c81b1458272ba8fdd))
* **backend + SDK:** Add Backend and SDK support for timeout in pod spec ([\#10481](https://github.com/kubeflow/pipelines/issues/10481)) ([b734420](https://github.com/kubeflow/pipelines/commit/b734420652c6ba12f22c961674bfd16bb037ee11))
* **backend + SDK:** Add backend and SDK support to use Kubernetes FieldPath as env ([\#10496](https://github.com/kubeflow/pipelines/issues/10496)) ([dd0c17d](https://github.com/kubeflow/pipelines/commit/dd0c17d9916b1742f0fe34e6af5fb41856bd471a))
* **Backend + SDK:** Update kfp backend and kubernetes sdk to support ConfigMaps as volumes and as env variables ([\#10483](https://github.com/kubeflow/pipelines/issues/10483)) ([1edd85f](https://github.com/kubeflow/pipelines/commit/1edd85f1a17d0b72b377121b8e5fcc3ed1440653))
* **Backend + SDK:** Update kfp backend and kubernetes sdk to support ImagePullPolicy ([\#10417](https://github.com/kubeflow/pipelines/issues/10417)) ([83cabab](https://github.com/kubeflow/pipelines/commit/83cabab50ec2cecabcf4583e571dac4319312ac5))
* **Backend + SDK:** Update kfp backend and kubernetes sdk to support ImagePullSecrets ([\#10427](https://github.com/kubeflow/pipelines/issues/10427)) ([1582e0a](https://github.com/kubeflow/pipelines/commit/1582e0a9bd9e6d22906e39bf08a23c2b9f38ffb0))
* **Backend + SDK:** Update kfp backend and kubernetes sdk to support pod labels and annotations ([\#10393](https://github.com/kubeflow/pipelines/issues/10393)) ([b3978c1](https://github.com/kubeflow/pipelines/commit/b3978c1e98a6aa119d5411315dd6ebe8d79ef0f9))
* **Backend + SDK:** Update kfp backend and kubernetes sdk to support tolerations ([\#10471](https://github.com/kubeflow/pipelines/issues/10471)) ([2983a7d](https://github.com/kubeflow/pipelines/commit/2983a7d49078be24dc51ee9cbf621906b071b1e2))
* **component:** Migrate AutoSxS pipeline to preview and move related files to _implementation/llm directory to help Model Eval team use side by side metrics as part of their pipeline ([3d62d26](https://github.com/kubeflow/pipelines/commit/3d62d267274646a155d8366bd181f6e8d657faba))
* **components:** Add `num_microbatches` to `_implementation.llm` training components ([685634d](https://github.com/kubeflow/pipelines/commit/685634d4a3773e9f980db1df1bdffb8b525005eb))
* **components:** Add better docstrings for AutoSxS ([9f8495d](https://github.com/kubeflow/pipelines/commit/9f8495d37647dcbbdecd78134de2cf8091fea823))
* **components:** Add CMEK support to `preview.llm.rlhf_pipeline` ([3dbf3cf](https://github.com/kubeflow/pipelines/commit/3dbf3cfb50e5d7c424ad43b9dae5261255f93f9c))
* **components:** Add CMEK support to AutoSxS pipeline ([8ccd7a1](https://github.com/kubeflow/pipelines/commit/8ccd7a1cfd1ed50f6dc33d6d75a2eef78a67e308))
* **components:** Add CMEK validation to `preview.llm.infer_pipeline` ([b7ea6e7](https://github.com/kubeflow/pipelines/commit/b7ea6e7831ab7f22f95b104b27af1be13b6e6f01))
* **components:** Add location validation to `preview.llm.rlhf_pipeline` ([361c16f](https://github.com/kubeflow/pipelines/commit/361c16f6c1a8ef649948bd66b56b8252cdfaa273))
* **components:** Add RLAIF pipeline to preview ([d4c3f35](https://github.com/kubeflow/pipelines/commit/d4c3f35797d58e87ea72e7a115a97584fed8d159))
* **components:** Added experimental args to batch_prediction_pairwise component ([f00df96](https://github.com/kubeflow/pipelines/commit/f00df96cf1dc8005fb40d00b189a7ca466bc7145))
* **components:** Bump image tag used by `preview.llm` pipelines ([9007fb0](https://github.com/kubeflow/pipelines/commit/9007fb0007b003cf51d5e84dba5d4adb3666f778))
* **components:** change output format to allow possible post eval ([44f9992](https://github.com/kubeflow/pipelines/commit/44f9992d0cb4b63b7ae61fd55ce1a9c0382a658d))
* **components:** Copy text generation eval and text classification evak pipelines from preview to v1 ([6ce3dc5](https://github.com/kubeflow/pipelines/commit/6ce3dc58563e4f1332c3f7c3d765769bc4be72ba))
* **components:** Enable text generation pipeline to generate row based metrics ([efeed83](https://github.com/kubeflow/pipelines/commit/efeed83406e35bcb25169af9cc04005778366393))
* **components:** Implement new component to preprocess and validate inputs for rlhf ([0ece6d0](https://github.com/kubeflow/pipelines/commit/0ece6d00a2f184e60476b21ff6e494b532e8765b))
* **components:** Implement new output format of inference component ([4e1491a](https://github.com/kubeflow/pipelines/commit/4e1491afd66462bd005faa11a7da164533acb5c0))
* **components:** Implement the feature store grounding pipeline ([d73c6db](https://github.com/kubeflow/pipelines/commit/d73c6db3de712372e3cbee3a0e348d1c4b4d3974))
* **components:** Implement the train time evaluation in reward model training. With the train time eval dataset available, the pipeline outputs the accuracy and cross entropy metrics to the log ([731cb81](https://github.com/kubeflow/pipelines/commit/731cb819cd02eb663a429096154bb521cb267e1a))
* **components:** Output errors as a separate table from Arbiter ([a66c599](https://github.com/kubeflow/pipelines/commit/a66c5990e4186802f4c2c8878b654942b9e0153a))
* **components:** Release Forecasting training pipelines to V1 namespace ([ab549ef](https://github.com/kubeflow/pipelines/commit/ab549efc1efcdf7344e01bd61c8e2ca27b32d9d5))
* **components:** Release Forecasting training pipelines to V1 namespace ([1f6ada6](https://github.com/kubeflow/pipelines/commit/1f6ada654a138210c7b026120d1e0177d44e10d8))
* **components:** Release new LLM Eval image version 0.5 ([8c59816](https://github.com/kubeflow/pipelines/commit/8c59816bf2e578f4002200f61f333a8f231d410e))
* **components:** support aliases arg in ModelUploadOp ([bce8487](https://github.com/kubeflow/pipelines/commit/bce848706195a892fe7899778374f3836160e602))
* **components:** Support scheduling and labels in utils.build_payload ([4bb3423](https://github.com/kubeflow/pipelines/commit/4bb34238891591e8d4067c4abf5feccb3c202583))
* **components:** Update _LLM_EVAL_VERSION to v0.6 ([1b65da4](https://github.com/kubeflow/pipelines/commit/1b65da48ab227009263e4af3a0f1f0d18087388b))
* **components:** update eval pipeline documentation to clarify the required pipeline parameters ([06ddf94](https://github.com/kubeflow/pipelines/commit/06ddf944ef3a762f0792f6b549cd859fbf85d2be))
* **components:** Update LLM Evaluation Pipelines to use `text-bison@002` model by default ([83cb88f](https://github.com/kubeflow/pipelines/commit/83cb88f9b56ddf636ab38e4559634b1f7f114570))
* **components:** Use a single inference component for AutoSxS ([8c7b5b2](https://github.com/kubeflow/pipelines/commit/8c7b5b2bf56beef42511bf640d35b2c040389cc9))
* **kubernetes_platform:** Add ActiveDeadlineSeconds(timeout) to the kubernetes platform spec ([\#10464](https://github.com/kubeflow/pipelines/issues/10464)) ([1fcc681](https://github.com/kubeflow/pipelines/commit/1fcc68121cd030bd5f8301bf965ec969f170ad77))
* **kubernetes_platform:** Add k8s FieldPath as env to the kubernetes_platform ([\#10485](https://github.com/kubeflow/pipelines/issues/10485)) ([b9ae095](https://github.com/kubeflow/pipelines/commit/b9ae0951e97672a909be64eedc4096b0a06bc981))
* **kubernetes_platform:** Update kubernetes_platform go package to i… ([\#10442](https://github.com/kubeflow/pipelines/issues/10442)) ([6fb997a](https://github.com/kubeflow/pipelines/commit/6fb997a611118d280325f499491a41799e5948f6))
* **kubernetes_platform:** Update kubernetes_platform go package to include ConfigMaps as volumes and as env variables. ([\#10400](https://github.com/kubeflow/pipelines/issues/10400)) ([6cc234b](https://github.com/kubeflow/pipelines/commit/6cc234b3f1a113f5e7a4e7bb04b6123e8a509c0a))
* **kubernetes_platform:** Update kubernetes_platform go package to include imagePullPolicy. ([\#10416](https://github.com/kubeflow/pipelines/issues/10416)) ([f51dc39](https://github.com/kubeflow/pipelines/commit/f51dc39614e464b65e0635094d58ab15c26af1a4))
* **kubernetes_platform:** Update kubernetes_platform go package to include ImagePullSecrets ([\#10410](https://github.com/kubeflow/pipelines/issues/10410)) ([1c9ac5c](https://github.com/kubeflow/pipelines/commit/1c9ac5c8e2a8ee809bbf476d97b6e7e21e989a11))
* **kubernetes_platform:** Update kubernetes_platform go package to include pod labels and annotations ([\#10357](https://github.com/kubeflow/pipelines/issues/10357)) ([daa7299](https://github.com/kubeflow/pipelines/commit/daa72991aefa76d1f3295fc2bbf14faab414e65a))
* **sdk:** remove local execution feature flag #localexecution ([\#10355](https://github.com/kubeflow/pipelines/issues/10355)) ([8a5a17e](https://github.com/kubeflow/pipelines/commit/8a5a17e9104402c1a89bd1f677ec3c383ef8d120))
* **sdk:** support Concat and IfPresent placeholder in local container component execution #localexecution ([\#10348](https://github.com/kubeflow/pipelines/issues/10348)) ([2897a10](https://github.com/kubeflow/pipelines/commit/2897a10f59e5b6b5c0566b9b072a940f29741c66))
* **sdk:** Support dsl.ParallelFor over list of Artifacts ([\#10441](https://github.com/kubeflow/pipelines/issues/10441)) ([b528568](https://github.com/kubeflow/pipelines/commit/b528568718541b759ea10167d65ba7f5f1a3b717))
* **sdk:** support f-strings in local pipeline execution ([\#10435](https://github.com/kubeflow/pipelines/issues/10435)) ([977bffc](https://github.com/kubeflow/pipelines/commit/977bffce2a51d5977e70c7d46da7fd13b24bb725))
* **sdk:** support local Container Component execution #localexecution ([\#10333](https://github.com/kubeflow/pipelines/issues/10333)) ([846f887](https://github.com/kubeflow/pipelines/commit/846f88770c512f4ea2b0fe85dfef3c4c210ae720))
* **sdk:** support local execution of pipelines in pipelines ([\#10440](https://github.com/kubeflow/pipelines/issues/10440)) ([1fe1c63](https://github.com/kubeflow/pipelines/commit/1fe1c63f600b2d839ebf9f9e62830ff40e9bafb3))
* **sdk:** support local pipeline execution ([\#10423](https://github.com/kubeflow/pipelines/issues/10423)) ([442d457](https://github.com/kubeflow/pipelines/commit/442d457057eb6c60d177210b300945d8f3b9ec9d))
### Bug Fixes
* Modified the swagger json files according to the modified proto files. ([\#10591](https://github.com/kubeflow/pipelines/issues/10591)) ([cc971c9](https://github.com/kubeflow/pipelines/commit/cc971c962596afab4d5d544c466836ea3ee2656d))
* **backend:** correct run field map col names ([\#10430](https://github.com/kubeflow/pipelines/issues/10430)) ([421d65a](https://github.com/kubeflow/pipelines/commit/421d65a684395c4db594cb3c624f8a724287fbaa))
* **backend:** fix timeout for internal server error. Fixes [\#10267](https://github.com/kubeflow/pipelines/issues/10267) ([\#10439](https://github.com/kubeflow/pipelines/issues/10439)) ([25f4478](https://github.com/kubeflow/pipelines/commit/25f44783077568047809b9c8294d6570893798cd))
* **backend:** Fixes response status of http error code when uploading duplicate pipeline [Fixes [\#10311](https://github.com/kubeflow/pipelines/issues/10311)] ([\#10546](https://github.com/kubeflow/pipelines/issues/10546)) ([96eb87c](https://github.com/kubeflow/pipelines/commit/96eb87c3ebabf07cbe7bab24ff025eba56824184))
* **backend:** get pipeline by name is broken due to version typo, Fixes [\#9940](https://github.com/kubeflow/pipelines/issues/9940) ([\#10268](https://github.com/kubeflow/pipelines/issues/10268)) ([e6ddb0c](https://github.com/kubeflow/pipelines/commit/e6ddb0c0128205c4c948e206c7f7044733aa3587))
* **backend:** MLMD pagination on getting executions of DAG ([\#10396](https://github.com/kubeflow/pipelines/issues/10396)) ([f65bb0f](https://github.com/kubeflow/pipelines/commit/f65bb0f532ec50d1a1add6a849d9e43bb97ef269))
* **components:** Add autosxs_pipeline to the __all__ variable for the preview/model_evaluation directory ([9f165b6](https://github.com/kubeflow/pipelines/commit/9f165b6f14f383b5c587b9dd3cf08a97b3eda79c))
* **components:** Add relevant component and pipeline inputs/outputs to support creating ModelEvaluations as part of the AutoSxS Metrics component ([2abe91e](https://github.com/kubeflow/pipelines/commit/2abe91e1ee5452b79e9330847d5734712dde69d6))
* **components:** Only run `preview.llm.bulk_inference` after tuning third-party models with RLHF ([b9e08de](https://github.com/kubeflow/pipelines/commit/b9e08ded48f7dae69f4936660fbdf3dc0ba4bcb4))
* **components:** Pass tuned model checkpoint to inference pipeline after RLHF tuning ([755c1f9](https://github.com/kubeflow/pipelines/commit/755c1f9898b3c1e1c539403d43e27a3ea3994447))
* **components:** Propagate location to sub-components in AutoSxS ([624fc04](https://github.com/kubeflow/pipelines/commit/624fc04fc92274f3306d08e9c903534348888baa))
* **components:** Remove the unused resolve_candidate_columns from function_based ([a42ded1](https://github.com/kubeflow/pipelines/commit/a42ded161dc674436011532176c95fa11c84c8de))
* **components:** Resolve unique model display name on each `preview.llm.rlhf_pipeline` run instead of reusing cached result ([075d58f](https://github.com/kubeflow/pipelines/commit/075d58f89f91f2f04ee2c2c456f272b72e058c9a))
* **components:** Return None as sliced feature attribution values for the classes which are not predicted in bp outputs ([19a24e3](https://github.com/kubeflow/pipelines/commit/19a24e3e99db6aa1cc97af31086f618fa286f304))
* **docs:** make full version dropdown show on all KFP SDK docs versions ([\#10577](https://github.com/kubeflow/pipelines/issues/10577)) ([d3e2de4](https://github.com/kubeflow/pipelines/commit/d3e2de444770b6cdb68a33cb2fd0aac72e36c109))
* Modified the comment/text for pipeline_version_id ([\#10581](https://github.com/kubeflow/pipelines/issues/10581)) ([0f3d17d](https://github.com/kubeflow/pipelines/commit/0f3d17df723d3ffd12270da912b13fdfb0b01bc0))
* **components:** Update base image for KFP lightweight component for VPC SC compliance ([ddb2f9a](https://github.com/kubeflow/pipelines/commit/ddb2f9a8b6ed3c13ad66b86a796cd06b6c4ecbcf))
* **components:** Update base image for KFP lightweight component for VPC SC compliance ([80c9b04](https://github.com/kubeflow/pipelines/commit/80c9b04bd68eec4c57eefd0ebc84622323aa0134))
* **components:** Update text generation pipeline input description ([05f69b2](https://github.com/kubeflow/pipelines/commit/05f69b233378e1b0351bf40ab037830f53738b15))
* **components:** Upload the tuned adapter to Model Registry instead of model checkpoint from `preview.llm.rlhf_pipeline` ([2e2ba9e](https://github.com/kubeflow/pipelines/commit/2e2ba9e5ead638c0786a244ef0b3852454f6bc73))
* **components:** Use `large_model_reference` as `model_reference_name` when uploading models from `preview.llm.rlhf_pipeline` instead of hardcoding value as `text-bison@001` ([f51a930](https://github.com/kubeflow/pipelines/commit/f51a93012084714fc500240feac6318944eb3ab7))
* **components:** Use `llama-2-7b` for the base reward model when tuning `llama-2-13` with the `preview.llm.rlhf_pipeline` ([227eab1](https://github.com/kubeflow/pipelines/commit/227eab1c685cf51ed23502a79ee1de01fa8022a0))
* **components:** Use PipelineJob location in AutoSxS components, add init file ([449c304](https://github.com/kubeflow/pipelines/commit/449c30468659c0de0b37def2a9be03a93dfae35b))
* **components:** Write model resource_name to the output of training pipeline remote runner ([0f3f68c](https://github.com/kubeflow/pipelines/commit/0f3f68c05f620661abf4506504c80dc6646dc9a3))
* **docs:** Updated legal info due to migration from CLA to DCO ([\#10501](https://github.com/kubeflow/pipelines/issues/10501)) ([c0cf4ad](https://github.com/kubeflow/pipelines/commit/c0cf4ad48fbc0246404bc26aecc222a0a4f3584b))
* **frontend:** Add disableParsingRawHTML option for markdown-to-jsx component ([\#10315](https://github.com/kubeflow/pipelines/issues/10315)) ([c6acac9](https://github.com/kubeflow/pipelines/commit/c6acac9bf6fd46a0d5fe39b91dfb9bf63e778068))
* **kubernetes_platform:** Add optional field to SecretAsVolume and ConfigMapAsVolume. Fixes [\#10548](https://github.com/kubeflow/pipelines/issues/10548) ([\#10549](https://github.com/kubeflow/pipelines/issues/10549)) ([9253c7a](https://github.com/kubeflow/pipelines/commit/9253c7ad7a464e0a97332aeebc9e678fb3b6c0bb))
* **rlhf:** Supporting adapter only output for reward model training ([066f229](https://github.com/kubeflow/pipelines/commit/066f229e27dc2ac8a58a03d7745d5471d718157c))
* **samples:** Updated samples/core to V2 ([\#9879](https://github.com/kubeflow/pipelines/issues/9879)) ([1d96903](https://github.com/kubeflow/pipelines/commit/1d9690321fa34e61fe1d8fa33ad57062b5ff66d7))
* **sdk:** fix bug where `dsl.OneOf` with multiple consumers cannot be compiled ([\#10452](https://github.com/kubeflow/pipelines/issues/10452)) ([21c5ffe](https://github.com/kubeflow/pipelines/commit/21c5ffebb07c2566ef1ac5944ebbfb56753ad327))
* **sdk:** fix presentation of strings in local execution #localexecution ([\#10353](https://github.com/kubeflow/pipelines/issues/10353)) ([89d4234](https://github.com/kubeflow/pipelines/commit/89d4234a5bea789b6cb18da06fa40950c89f094f))
* **sdk:** fixes type issues for ParallelFor. Fixes [\#9366](https://github.com/kubeflow/pipelines/issues/9366) ([\#10436](https://github.com/kubeflow/pipelines/issues/10436)) ([fe04a5a](https://github.com/kubeflow/pipelines/commit/fe04a5a84243bb39dee82bd0cdf3d86fd01d8bd3))
* **sdk:** permit empty local execution outputs #localexecution ([\#10338](https://github.com/kubeflow/pipelines/issues/10338)) ([64d46df](https://github.com/kubeflow/pipelines/commit/64d46dfed0ea641e948de8b61cc5d25662d9bf26))
* **sdk:** Prevents dsl.ParallelFor over single parameter from compiling. ([\#10494](https://github.com/kubeflow/pipelines/issues/10494)) ([144761c](https://github.com/kubeflow/pipelines/commit/144761c948cca1c81a6743d6d79de4bd62e9256b))
* **sdk:** remove redundant newline character in local `DockerRunner` logs ([\#10354](https://github.com/kubeflow/pipelines/issues/10354)) ([86b7e23](https://github.com/kubeflow/pipelines/commit/86b7e23985e4aa902d1d98df473d320072347378))
* **sdk:** use kfp.dsl.types to replace kfp.components.types Fixes [\#10282](https://github.com/kubeflow/pipelines/issues/10282) ([\#10283](https://github.com/kubeflow/pipelines/issues/10283)) ([b40912c](https://github.com/kubeflow/pipelines/commit/b40912cc5d7e3c98fa7fc34cdcbcf2a3bfa6e21d))
### Other Pull Requests
* No public description ([87db18e](https://github.com/kubeflow/pipelines/commit/87db18e3a1df08a23a71f872dc8dac6b4bfb9a95))
* No public description ([269fc3e](https://github.com/kubeflow/pipelines/commit/269fc3e9a96a80fe3a5a6b14bb704a41ac39a5ab))
* support dsl.importer locally; resolve merge conflicts ([\#10431](https://github.com/kubeflow/pipelines/issues/10431)) ([7bd31d1](https://github.com/kubeflow/pipelines/commit/7bd31d104bd403a830bf2a455c9c2c0dbf493c4d))
* No public description ([14de087](https://github.com/kubeflow/pipelines/commit/14de087e74bf66f09a64d3aed457a47d994881c1))
* install kfp-pipeline-spec from source for kfp tests ([\#10300](https://github.com/kubeflow/pipelines/issues/10300)) ([2edfb89](https://github.com/kubeflow/pipelines/commit/2edfb8965d0253251ebeb61fe4a98981d724a51b))
* remove cleanup param in local init ([\#10293](https://github.com/kubeflow/pipelines/issues/10293)) ([5c60d37](https://github.com/kubeflow/pipelines/commit/5c60d37616a61cd941b2e0e6c8ee80920dafce53))
- Allow visualization kernel timeout to be specifiable via environment variables [\#1920](https://github.com/kubeflow/pipelines/pull/1920) ([ajchili](https://github.com/ajchili))
@ -6291,12 +6915,12 @@ Detailed PR can be found [here](https://github.com/kubeflow/pipelines/commits)
- SDK - Travis configuration for Python 3.5 and 3.7 [\#1467](https://github.com/kubeflow/pipelines/pull/1467) ([kvalev](https://github.com/kvalev))
- Add timeout out in dsl [\#1465](https://github.com/kubeflow/pipelines/pull/1465) ([gaoning777](https://github.com/gaoning777))
- SDK - Failing faster in python\_op tests [\#1291](https://github.com/kubeflow/pipelines/pull/1291) ([Ark-kun](https://github.com/Ark-kun))
- SDK - Renamed ModelBase.from\_struct/to\_struct to from\_dict/to\_dict [\#1290](https://github.com/kubeflow/pipelines/pull/1290) ([Ark-kun](https://github.com/Ark-kun))
- SDK - Renamed ModelBase.from\_struct/to\_struct to from\_dict/to\_dict [\#1290](https://github.com/kubeflow/pipelines/pull/1290) ([Ark-kun](https://github.com/Ark-kun))
- Backend - Marking auto-added artifacts as optional [\#1289](https://github.com/kubeflow/pipelines/pull/1289) ([Ark-kun](https://github.com/Ark-kun))
- Update new Watson OpenScale components and pipeline [\#1287](https://github.com/kubeflow/pipelines/pull/1287) ([Tomcli](https://github.com/Tomcli))
- Add AWS EMR and Athena components [\#1286](https://github.com/kubeflow/pipelines/pull/1286) ([Jeffwan](https://github.com/Jeffwan))
- Add AWS EMR and Athena components [\#1286](https://github.com/kubeflow/pipelines/pull/1286) ([Jeffwan](https://github.com/Jeffwan))
- Make confusion\_matrix and roc generic [\#1285](https://github.com/kubeflow/pipelines/pull/1285) ([Jeffwan](https://github.com/Jeffwan))
- Components - Updating component versions in samples during release [\#1283](https://github.com/kubeflow/pipelines/pull/1283) ([Ark-kun](https://github.com/Ark-kun))
- Sets the background color for KFP pages [\#1281](https://github.com/kubeflow/pipelines/pull/1281) ([rileyjbauer](https://github.com/rileyjbauer))
- keep the api image name consistent between the presubmit test and staging [\#1279](https://github.com/kubeflow/pipelines/pull/1279) ([gaoning777](https://github.com/gaoning777))
- Frontend - Add support for artifacts stored in S3 [\#1278](https://github.com/kubeflow/pipelines/pull/1278) ([Jeffwan](https://github.com/Jeffwan))
- Components - Updating component versions in samples during release [\#1283](https://github.com/kubeflow/pipelines/pull/1283) ([Ark-kun](https://github.com/Ark-kun))
- Sets the background color for KFP pages [\#1281](https://github.com/kubeflow/pipelines/pull/1281) ([rileyjbauer](https://github.com/rileyjbauer))
- keep the api image name consistent between the presubmit test and staging [\#1279](https://github.com/kubeflow/pipelines/pull/1279) ([gaoning777](https://github.com/gaoning777))
- Frontend - Add support for artifacts stored in S3 [\#1278](https://github.com/kubeflow/pipelines/pull/1278) ([Jeffwan](https://github.com/Jeffwan))
- Release - Simplified python package building [\#1277](https://github.com/kubeflow/pipelines/pull/1277) ([Ark-kun](https://github.com/Ark-kun))
- Add SageMaker components and example pipeline [\#1276](https://github.com/kubeflow/pipelines/pull/1276) ([Jeffwan](https://github.com/Jeffwan))
- Add SageMaker components and example pipeline [\#1276](https://github.com/kubeflow/pipelines/pull/1276) ([Jeffwan](https://github.com/Jeffwan))
- Adds a toggle between one-off and recurring runs to NewRun page [\#1274](https://github.com/kubeflow/pipelines/pull/1274) ([rileyjbauer](https://github.com/rileyjbauer))
- Adds a toggle between one-off and recurring runs to NewRun page [\#1274](https://github.com/kubeflow/pipelines/pull/1274) ([rileyjbauer](https://github.com/rileyjbauer))
- Retaining the component url, digest or tag when loading [\#1090](https://github.com/kubeflow/pipelines/pull/1090) ([Ark-kun](https://github.com/Ark-kun))
- Allow to specify informers namespace in persistence agent [\#901](https://github.com/kubeflow/pipelines/pull/901) ([ywskycn](https://github.com/ywskycn))
- make pending timeout customizable [\#1268](https://github.com/kubeflow/pipelines/pull/1268) ([cheyang](https://github.com/cheyang))
- Retaining the component url, digest or tag when loading [\#1090](https://github.com/kubeflow/pipelines/pull/1090) ([Ark-kun](https://github.com/Ark-kun))
- Allow to specify informers namespace in persistence agent [\#901](https://github.com/kubeflow/pipelines/pull/901) ([ywskycn](https://github.com/ywskycn))
@ -17,46 +21,58 @@ The Kubeflow pipelines service has the following goals:
## Installation
* Install Kubeflow Pipelines from choices described in [Installation Options for Kubeflow Pipelines](https://www.kubeflow.org/docs/pipelines/installation/overview/).
* Kubeflow Pipelines can be installed as part of the [Kubeflow Platform](https://www.kubeflow.org/docs/started/installing-kubeflow/#kubeflow-platform). Alternatively you can deploy [Kubeflow Pipelines](https://www.kubeflow.org/docs/components/pipelines/operator-guides/installation/) as a standalone service.
* The Docker container runtime has been deprecated on Kubernetes 1.20+. Kubeflow Pipelines has switched to use [Emissary Executor](https://www.kubeflow.org/docs/components/pipelines/installation/choose-executor/#emissary-executor) by default from Kubeflow Pipelines 1.8. Emissary executor is Container runtime agnostic, meaning you are able to run Kubeflow Pipelines on Kubernetes cluster with any [Container runtimes](https://kubernetes.io/docs/setup/production-environment/container-runtimes/).
* The Docker container runtime has been deprecated on Kubernetes 1.20+. Kubeflow Pipelines has switched to use [Emissary Executor](https://www.kubeflow.org/docs/components/pipelines/legacy-v1/installation/choose-executor/#emissary-executor) by default from Kubeflow Pipelines 1.8. Emissary executor is Container runtime agnostic, meaning you are able to run Kubeflow Pipelines on Kubernetes cluster with any [Container runtimes](https://kubernetes.io/docs/setup/production-environment/container-runtimes/).
## Documentation
Get started with your first pipeline and read further information in the [Kubeflow Pipelines overview](https://www.kubeflow.org/docs/components/pipelines/introduction/).
Get started with your first pipeline and read further information in the [Kubeflow Pipelines overview](https://www.kubeflow.org/docs/components/pipelines/overview/).
See the various ways you can [use the Kubeflow Pipelines SDK](https://www.kubeflow.org/docs/pipelines/sdk/sdk-overview/).
See the various ways you can [use the Kubeflow Pipelines SDK](https://kubeflow-pipelines.readthedocs.io/en/stable/).
See the Kubeflow [Pipelines API doc](https://www.kubeflow.org/docs/pipelines/reference/api/kubeflow-pipeline-api-spec/) for API specification.
See the Kubeflow [Pipelines API doc](https://www.kubeflow.org/docs/components/pipelines/reference/api/kubeflow-pipeline-api-spec/) for API specification.
Consult the [Python SDK reference docs](https://kubeflow-pipelines.readthedocs.io/en/stable/) when writing pipelines using the Python SDK.
Refer to the [versioning policy](./docs/release/versioning-policy.md) and [feature stages](./docs/release/feature-stages.md) documentation for more information about how we manage versions and feature stages (such as Alpha, Beta, and Stable).
## Deep Wiki
Check out our AI Powered repo documentation on [DeepWiki](https://deepwiki.com/kubeflow/pipelines).
> :warning: Please note, this is AI generated and may not have completely accurate information.
## Contributing to Kubeflow Pipelines
Before you start contributing to Kubeflow Pipelines, read the guidelines in [How to Contribute](./CONTRIBUTING.md). To learn how to build and deploy Kubeflow Pipelines from source code, read the [developer guide](./developer_guide.md).
## Kubeflow Pipelines Community
## Kubeflow Pipelines Community Meeting
### Community Meeting
The meeting is happening every other Wed 10-11AM (PST)
[Calendar Invite](https://calendar.google.com/event?action=TEMPLATE&tmeid=NTdoNG5uMDBtcnJlYmdlOWt1c2lkY25jdmlfMjAxOTExMTNUMTgwMDAwWiBqZXNzaWV6aHVAZ29vZ2xlLmNvbQ&tmsrc=jessiezhu%40google.com&scp=ALL) or [Join Meeting Directly](https://meet.google.com/phd-ixfj-kcr/)
The Kubeflow Pipelines Community Meeting occurs every other Wed 10-11AM (PST).
We also have a slack channel (#kubeflow-pipelines) on the Cloud Native Computing Foundation Slack workspace. You can find more details at [https://www.kubeflow.org/docs/about/community/#kubeflow-slack-channels](https://www.kubeflow.org/docs/about/community/#kubeflow-slack-channels)
## Architecture
Details about the KFP Architecture can be found at [Architecture.md](docs/Architecture.md)
## Blog posts
* [From Raw Data to Model Serving: A Blueprint for the AI/ML Lifecycle with Kubeflow](https://blog.kubeflow.org/fraud-detection-e2e/) (By [Helber Belmiro](https://github.com/hbelmiro))
* [Getting started with Kubeflow Pipelines](https://cloud.google.com/blog/products/ai-machine-learning/getting-started-kubeflow-pipelines) (By Amy Unruh)
* How to create and deploy a Kubeflow Machine Learning Pipeline (By Lak Lakshmanan)
* [Part 1: How to create and deploy a Kubeflow Machine Learning Pipeline](https://towardsdatascience.com/how-to-create-and-deploy-a-kubeflow-machine-learning-pipeline-part-1-efea7a4b650f)
* [Part 2: How to deploy Jupyter notebooks as components of a Kubeflow ML pipeline](https://towardsdatascience.com/how-to-deploy-jupyter-notebooks-as-components-of-a-kubeflow-ml-pipeline-part-2-b1df77f4e5b3)
* [Part 1: How to create and deploy a Kubeflow Machine Learning Pipeline](https://medium.com/data-science/how-to-create-and-deploy-a-kubeflow-machine-learning-pipeline-part-1-efea7a4b650f)
* [Part 2: How to deploy Jupyter notebooks as components of a Kubeflow ML pipeline](https://medium.com/data-science/how-to-deploy-jupyter-notebooks-as-components-of-a-kubeflow-ml-pipeline-part-2-b1df77f4e5b3)
* [Part 3: How to carry out CI/CD in Machine Learning (“MLOps”) using Kubeflow ML pipelines](https://medium.com/google-cloud/how-to-carry-out-ci-cd-in-machine-learning-mlops-using-kubeflow-ml-pipelines-part-3-bdaf68082112)
Kubeflow pipelines uses [Argo Workflows](https://github.com/argoproj/argo-workflows) by default under the hood to orchestrate Kubernetes resources. The Argo community has been very supportive and we are very grateful. Additionally there is Tekton backend available as well. To access it, please refer to [Kubeflow Pipelines with Tekton repository](https://github.com/kubeflow/kfp-tekton).
Kubeflow pipelines uses [Argo Workflows](https://github.com/argoproj/argo-workflows) by default under the hood to orchestrate Kubernetes resources. The Argo community has been very supportive and we are very grateful.
1. Verify cloudbuild and postsubmit tests are passing: visit <https://github.com/kubeflow/pipelines/commits/master> for master branch.
1. Verify release branch CI is passing: visit <https://github.com/kubeflow/pipelines/commits/master> for master branch.


If not, contact the KFP team to determine if the failure(s) would block the release. You can also retry the failed job by opening the detail page of prow job, and click the refresh button next ot the job title.
If not, contact the KFP team to determine if the failure(s) would block the release.
### Releasing from release branch
@ -184,7 +186,7 @@ Note, when releasing from master, all the below mentions of "release branch" mea
- `1.0.1`
- `1.1.0`
- ...
Set the version by using `VERSION=<version-value>`. Contact @chensun if you are not sure what next version should be.
Set the version by using `VERSION=<version-value>`. Contact @chensunor @HumairAKif you are not sure what next version should be.
1. Update all version refs in release branch by
@ -196,38 +198,16 @@ Note, when releasing from master, all the below mentions of "release branch" mea
Note, the script will clone kubeflow/pipelines repo into a temporary location on your computer, make those changes and attempt to push to upstream, so that it won't interfere with your current git repo.
If you see error "docker.sock: connect: permission error", you need to [allow managing docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user).
> [!Note]
> If you see error "docker.sock: connect: permission error", you need to [allow managing docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user).
1. View related cloudbuild jobs' statuses by clicking the latest commit's status icon
in the release branch. Refer to the screenshot below to find the page.
1. Build the release images by using the [Build images from sources](https://github.com/kubeflow/pipelines/actions/workflows/image-builds.yml).
1. Wait and make sure the `build-each-commit` cloudbuild job that builds all images
in gcr.io/ml-pipeline-test succeeded. If it fails, please click "View more details
on Google Cloud Build" and then "Retry".
The target tag should be `$VERSION`.
NOTE: you can find your latest release commit in <https://github.com/kubeflow/pipelines/commits/master> and select your release branch.

)
1. Select the `release-on-tag` cloudbuild job that copies built images and artifacts to
public image registry and gcs bucket. This job should have already failed because
artifacts haven't been built. Now, please click "View more details on Google Cloud Build"
and then "Retry", because after waiting for previous step, artifacts are now ready.
NOTE: **DO NOT** click the "Re-run" button from GitHub Actions status page.
It will create a build with "Branch: $BRANCH" instead of "TAG: $VERSION".
Open "View more details on Google Cloud Build", and rerun from there.


TODO: we should have an automation KFP cluster, and the waiting and submiting
`release-on-tag` cloudbuild task should happen automatically.
NOTE: postsubmit tests will most likely fail for the release commit, this is expected, postsubmit
tests start right after the commit is in GitHub repo, but some artifacts they depend on are still
being built by the processes in these two steps.
1. Search "PyPI" in Google internal release doc for getting password of kubeflow-pipelines user.
### Releasing KFP Python Packages
1. Release `kfp-server-api` python packages to PyPI.
@ -237,19 +217,46 @@ and then "Retry", because after waiting for previous step, artifacts are now rea
!!! The file name must contain the version. See <https://github.com/kubeflow/pipelines/issues/1292>
1. Release `kfp-kubernetes` python packages to PyPI. (Note: Please skip this step for backend release, this step will be handled by SDK release.)
Update the KFP Kubernetes SDK version in `__init__.py` and `readthedocs``versions.json`, example PR [here](https://github.com/kubeflow/pipelines/pull/11380).
```bash
export KFP_KUBERNETES_VERSION=
pip3 install twine --user
cd kubernetes_platform/python
./create_release_branch.sh
```
Follow the output push instructions to **commit and push the branch to KFP**, then do the following:
```bash
# set this to the appropriate version that matches what was set in __init__.py earlier
export KFP_KUBERNETES_VERSION=
cd kubernetes_platform/python
./release.sh
```
Note that this script will build the package, test install, and push to PyPi.
### Create GitHub Release
1. Create a GitHub release using `$VERSION` git tag and title `Version $VERSION`,
fill in the description. Detailed steps:
@ -260,9 +267,9 @@ fill in the description. Detailed steps:
1. Use this template for public releases and replace the `$VERSION` with real values.
<pre>
To deploy Kubeflow Pipelines in an existing cluster, follow the instruction in [here](https://www.kubeflow.org/docs/pipelines/standalone-deployment-gcp/) or via UI [here](https://console.cloud.google.com/ai-platform/pipelines)
To deploy Kubeflow Pipelines in an existing cluster, follow the instruction in [here](https://www.kubeflow.org/docs/components/pipelines/operator-guides/installation/)
@ -275,9 +282,9 @@ fill in the description. Detailed steps:
***This is a prerelease*** checkbox in the GitHub release UI.
<pre>
To deploy Kubeflow Pipelines in an existing cluster, follow the instruction in [here](https://www.kubeflow.org/docs/pipelines/standalone-deployment-gcp/).
To deploy Kubeflow Pipelines in an existing cluster, follow the instruction in [here](https://www.kubeflow.org/docs/components/pipelines/operator-guides/installation/).
Install kfp-server-api package (python 3.7 above) by running:
Install kfp-server-api package (python 3.9 above) by running:
@ -290,6 +297,8 @@ fill in the description. Detailed steps:
NOTE, kfp python SDK is **NOT** included and released separately.
</pre>
### Sync Master Branch with latest release
1. **(Do this step only when releasing from a NON-master release branch)**
Update master branch to the same version and include latest changelog:
@ -321,8 +330,32 @@ Update master branch to the same version and include latest changelog:
and create a PR to update the version, e.g. <https://github.com/kubeflow/website/pull/1942>.
1. Follow [Upgrade KFP](https://github.com/kubeflow/testing/tree/master/test-infra/kfp) instruction to upgrade KFP manifests in test-infra.
## Release Process Development
Please refer to [./test/release](./test/release).
## Versioning Policy in KFP
Starting from version **2.14**, all major and minor versions (X.Y) of the Kubeflow Pipelines (KFP) components are aligned. The following components are included in this alignment:
* **KFP Backend / UI**
* **KFP Python SDK**
* **KFP Python Kubernetes Platform SDK**
* **KFP Python Pipeline Specification**
* **KFP Server API**
### Versioning and Compatibility Policy
* **API Compatibility:**
All KFP components sharing the same major and minor version (X.Y) are guaranteed to be API-compatible.
* **Backward Compatibility:**
The KFP project will make a *best effort* to maintain backward compatibility within a given **major version** for all Python SDK packages.
Specifically:
* Newer versions of the KFP Python SDK within the same major release (e.g., 2.x) should continue to function with older versions of the KFP backend.
* However, newly introduced features in a later SDK minor version may require a matching or newer backend version to function correctly. For example:
* A feature introduced in `kfp==2.15` is not guaranteed to be supported by a `2.14` backend. In such cases, upgrading the backend to version `2.15` or later is necessary.
* **Patch Releases:**
Patch versions (X.Y.Z) may include bug fixes, maintenance updates, and minor feature enhancements. These changes must not break API compatibility or violate the support guarantees outlined above.
When reporting a vulnerability, please include a description of the issue, the steps you took to create the issue, affected versions, and, if known, mitigations for the issue. If the issue is confirmed as a vulnerability, we will open a Security Advisory. This project follows a 90 day disclosure timeline.
## Supported Versions
To report a security issue, follow [these instructions](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability).
Kubeflow Pipelines versions are expressed as `X.Y.Z`, where X is the major version,
Y is the minor version, and Z is the patch version, following the
# Set Workflow TTL to 1 day. The way to use a different value for a particular Kubeflow Pipelines deployment is demonstrated in manifests/kustomize/base/pipeline/ml-pipeline-persistenceagent-deployment.yaml
ENVTTL_SECONDS_AFTER_WORKFLOW_FINISH 86400
ENVTTL_SECONDS_AFTER_WORKFLOW_FINISH=86400
# NUM_WORKERS indicates now many worker goroutines
This directory contains code for the components that comprise the Kubeflow
Pipelines backend.
## Building & Testing
This README will help you set up your coding environment in order to build and run the Kubeflow Pipelines backend. The KFP backend powers the core functionality of the KFP platform, handling API requests, workflow management, and data persistence.
## Prerequisites
Before you begin, ensure you have:
- [Go installed](https://go.dev/doc/install)
- Docker or Podman installed (for building container images)
Note that you may need to restart your shell after installing these resources in order for the changes to take effect.
## Testing
To run all unittests for backend:
@ -9,72 +22,335 @@ To run all unittests for backend:
go test -v -cover ./backend/...
```
If running a [local API server](#run-the-kfp-backend-locally-with-a-kind-cluster), you can run the integration tests
with:
```bash
LOCAL_API_SERVER=true go test -v ./backend/test/v2/integration/... -namespace kubeflow -args -runIntegrationTests=true
```
To run a specific test, you can use the `-run` flag. For example, to run the `TestCacheSingleRun` test in the
`TestCache` suite, you can use the `-run 'TestCache/TestCacheSingleRun'` flag to the above command.
## Build
The API server itself can be built using:
```
go build -o /tmp/apiserver backend/src/apiserver/*.go
```
## Code Style
The API server image can be built from the root folder of the repo using:
### Run the KFP Backend Locally With a Kind Cluster
This deploys a local Kubernetes cluster leveraging [kind](https://kind.sigs.k8s.io/), with all the components required
to run the Kubeflow Pipelines API server. Note that the `ml-pipeline``Deployment` (API server) has its replicas set to
0 so that the API server can be run locally for debugging and faster development. The local API server is available by
pods on the cluster using the `ml-pipeline``Service`.
#### Prerequisites
* The [kind CLI](https://kind.sigs.k8s.io/docs/user/quick-start/#installation) is installed.
* The following ports are available on your localhost: 3000, 3306, 8080, 9000, and 8889. If these are unavailable,
modify [kind-config.yaml](../tools/kind/kind-config.yaml) and configure the API server with alternative ports when
running locally.
* If using a Mac, you will need to modify the
[Endpoints](../manifests/kustomize/env/dev-kind/forward-local-api-endpoint.yaml) manifest to leverage the bridge
network interface through Docker/Podman Desktop. See
[kind #1200](https://github.com/kubernetes-sigs/kind/issues/1200#issuecomment-1304855791) for an example manifest.
* Optional: VSCode is installed to leverage a sample `launch.json` file.
* This relies on dlv: (go install -v github.com/go-delve/delve/cmd/dlv@latest)
#### Provisioning the Cluster
To provision the kind cluster, run the following from the Git repository's root directory:
```bash
make -C backend dev-kind-cluster
```
This may take several minutes since there are many pods. Note that many pods will be in "CrashLoopBackOff" status until
all the pods have started.
> [!NOTE]
> The config in the `make` command above sets the `ml-pipeline``Deployment` (api server) to have 0 replicas. The intent is to replace it with a locally running API server for debugging and faster development. See the following steps to run the API server locally, and connect it to the KFP backend on your Kind cluster. Note that other backend components (for example, the persistence agent) may show errors until the API server is brought up and connected to the cluster.
#### Launching the API Server With VSCode
After the cluster is provisioned, you may leverage the following sample `.vscode/launch.json` file to run the API
4. Set the following program arguments: --config ./backend/src/apiserver/config -logtostderr=true --sampleconfig ./backend/src/apiserver/config/test_sample_config.json
#### Starting a Remote Debug Session
Start by launching a pipeline. This will eventually create a Driver pod that is waiting for a remote debug connection.
You can see the pods with the following command.
```bash
kubectl -n kubeflow get pods -w
```
Once you see a pod with `-driver` in the name such as `hello-world-clph9-system-dag-driver-10974850`, port forward
the Delve port in the pod to your localhost (replace `<driver pod name>` with the actual name).
1. Create a new Go Remote configuration and title it "Delve debug session"
2. Set **Host** to localhost
3. Set **Port** to 2345
Once the Driver pod succeeds, the remote debug session will close. Then repeat the process of forwarding the port
of subsequent Driver pods and starting remote debug sessions in VS Code until the pipeline completes.
For debugging a specific Driver pod, you'll need to continuously port forward and connect to the remote debug session
without a breakpoint so that Delve will continue execution until the Driver pod you are interested in starts up. At that
point, you can set a break point, port forward, and connect to the remote debug session to debug that specific Driver
pod.
### Using a Webhook Proxy for Local Development in a Kind Cluster
The Kubeflow Pipelines API server typically runs over HTTPS when deployed in a Kubernetes cluster. However, during local development, it operates over HTTP, which Kubernetes admission webhooks do not support (they require HTTPS). This incompatibility prevents webhooks from functioning correctly in a local Kind cluster.
To resolve this, a webhook proxy acts as a bridge, allowing webhooks to communicate with the API server even when it runs over HTTP.
This is used by default when using the `dev-kind-cluster` Make target.
### Deleting the Kind Cluster
Run the following to delete the cluster (once you are finished):
```bash
kind delete clusters dev-pipelines-api
```
## Contributing
### Code Style
Backend codebase follows the [Google's Go Style Guide](https://google.github.io/styleguide/go/). Please, take time to get familiar with the [best practices](https://google.github.io/styleguide/go/best-practices). It is not intended to be exhaustive, but it often helps minimizing guesswork among developers and keep codebase uniform and consistent.
We use [golangci-lint](https://golangci-lint.run/) tool that can catch common mistakes locally (see detailed configuration [here](https://github.com/kubeflow/pipelines/blob/master/.golangci.yaml)). It can be [conveniently integrated](https://golangci-lint.run/usage/integrations/) with multiple popular IDEs such as VS Code or Vim.
Finally, it is advised to install [pre-commit](https://pre-commit.com/) in order to automate linter checks (see configuration [here](https://github.com/kubeflow/pipelines/blob/master/.pre-commit-config.yaml))
## Building APIServer image locally
The API server image can be built from the root folder of the repo using:
You'll see the field reference the api server docker image.
Change it to point to your own build, after saving and closing the file, apiserver will restart with your change.
## Building client library and swagger files
After making changes to proto files, the Go client libraries, Python client libraries and swagger files
need to be regenerated and checked-in. Refer to [backend/api](./api/README.md) for details.
## Updating licenses info
1. [Install go-licenses tool](../hack/install-go-licenses.sh) and refer to [its documentation](https://github.com/google/go-licenses) for how to use it.
2. Run the tool to update all licenses:
```bash
make all
```
## Updating python dependencies
[pip-tools](https://github.com/jazzband/pip-tools) is used to manage python
dependencies. To update dependencies, edit [requirements.in](requirements.in)
and run `./update_requirements.sh` to update and pin the transitive
dependencies.
# Visualization Server Instructions
## Updating python dependencies
[pip-tools](https://github.com/jazzband/pip-tools) is used to manage python
dependencies. To update dependencies, edit [requirements.in](requirements.in)
and run `./update_requirements.sh` to update and pin the transitive
Set the environment variable `API_VERSION` to the version that you want to generate. We use `v1beta1` as example here.
```bash
export API_VERSION="v1beta1"
export API_VERSION="v2beta1"
```
## Compiling `.proto` files to Go client and swagger definitions
@ -81,7 +81,9 @@ API definitions in this folder are used to generate [`v1beta1`](https://www.kube
API generator image is defined in [Dockerfile](`./Dockerfile`). If you need to update the container, follow these steps:
1. Update the [Dockerfile](`./Dockerfile`) and build the image by running `docker build -t gcr.io/ml-pipeline-test/api-generator:latest .`
1. Push the new container by running `docker push gcr.io/ml-pipeline-test/api-generator:latest` (requires to be [authenticated](https://cloud.google.com/container-registry/docs/advanced-authentication)).
* Replace `<PAT>` with a GitHub Personal Access Token (PAT) with the write:packages and `read:packages` scopes, as well as `delete:packages` if needed.
1. Update the [Dockerfile](`./Dockerfile`) and build the image by running `docker build -t ghcr.io/kubeflow/kfp-api-generator:$VERSION .`
1. Push the new container by running `docker push ghcr.io/kubeflow/kfp-api-generator:$VERSION`.
1. Update the `PREBUILT_REMOTE_IMAGE` variable in the [Makefile](./Makefile) to point to your new image.
1. Similarly, push a new version of the release tools image to `gcr.io/ml-pipeline-test/release:latest` and run `make push` in [test/release/Makefile](../../test/release/Makefile).
1. Similarly, push a new version of the release tools image to `ghcr.io/kubeflow/kfp-release:$VERSION` and run `make push` in [test/release/Makefile](../../test/release/Makefile).
Some files were not shown because too many files have changed in this diff
Show More