-
Notifications
You must be signed in to change notification settings - Fork 1.8k
[WIP] chore(backend): Storage-layer refactor & Postgres enablement roadmap #12063
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] chore(backend): Storage-layer refactor & Postgres enablement roadmap #12063
Conversation
…flow#11924) * 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>
…11908) Signed-off-by: agoins <alyssacgoins@gmail.com>
…ubeflow#11936) Bumps [tornado](https://github.com/tornadoweb/tornado) from 6.4.2 to 6.5.1. - [Changelog](https://github.com/tornadoweb/tornado/blob/master/docs/releases.rst) - [Commits](tornadoweb/tornado@v6.4.2...v6.5.1) --- updated-dependencies: - dependency-name: tornado dependency-version: 6.5.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Fixes flaky test behavior in kfp-samples. Signed-off-by: agoins <alyssacgoins@gmail.com>
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
Signed-off-by: rsun19 <robertssun1234@gmail.com>
* Nest SDK readthedocs documentation Signed-off-by: Anish Asthana <anishasthana1@gmail.com> * Merge sdk OWNERS with KFP website approvers Signed-off-by: Anish Asthana <anishasthana1@gmail.com> --------- Signed-off-by: Anish Asthana <anishasthana1@gmail.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>
Signed-off-by: Michael <m.zazula@gmail.com>
…anges (kubeflow#11934) Signed-off-by: VaniHaripriya <vmudadla@redhat.com>
… versions (kubeflow#11952) * 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>
Signed-off-by: Laurent Goderre <laurent.goderre@docker.com>
…amples/ffdl-seldon/source/seldon-pytorch-serving-image (kubeflow#11959) Bumps [torch](https://github.com/pytorch/pytorch) from 2.6.0 to 2.7.1. - [Release notes](https://github.com/pytorch/pytorch/releases) - [Changelog](https://github.com/pytorch/pytorch/blob/main/RELEASE.md) - [Commits](pytorch/pytorch@v2.6.0...v2.7.1) --- updated-dependencies: - dependency-name: torch dependency-version: 2.7.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…beflow#11920) * fix(cache): Optimize cache expiration query, add index to db column, rm duplicate cache row insertions Signed-off-by: cbartram <cbartram3@gmail.com> * fix(cache): Use composite index for cache started_at_in_sec and id fields Signed-off-by: cbartram <cbartram3@gmail.com> Signed-off-by: cbartram <cbartram3@gmail.com> * chore(format): Fix formatting, rm commented code Signed-off-by: cbartram <cbartram3@gmail.com> Signed-off-by: cbartram <cbartram3@gmail.com> --------- Signed-off-by: cbartram <cbartram3@gmail.com>
…kubeflow#11960) Signed-off-by: Laurent Goderre <laurent.goderre@docker.com>
Signed-off-by: John Thompson <jpthompson23@gmail.com>
…ib/arena/docker (kubeflow#11963) Bumps [requests](https://github.com/psf/requests) from 2.18.4 to 2.32.4. - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](psf/requests@v2.18.4...v2.32.4) --- updated-dependencies: - dependency-name: requests dependency-version: 2.32.4 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.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>
…nal-test (kubeflow#11966) Bumps [requests](https://github.com/psf/requests) from 2.32.2 to 2.32.4. - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](psf/requests@v2.32.2...v2.32.4) --- updated-dependencies: - dependency-name: requests dependency-version: 2.32.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: mprahl <mprahl@users.noreply.github.com>
…ubeflow#11971) Bumps and [brace-expansion](https://github.com/juliangruber/brace-expansion). These dependencies needed to be updated together. Updates `brace-expansion` from 2.0.1 to 2.0.2 - [Release notes](https://github.com/juliangruber/brace-expansion/releases) - [Commits](juliangruber/brace-expansion@v2.0.1...v2.0.2) Updates `brace-expansion` from 1.1.11 to 2.0.2 - [Release notes](https://github.com/juliangruber/brace-expansion/releases) - [Commits](juliangruber/brace-expansion@v2.0.1...v2.0.2) --- updated-dependencies: - dependency-name: brace-expansion dependency-version: 2.0.2 dependency-type: indirect - dependency-name: brace-expansion dependency-version: 2.0.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ubeflow#11972) Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.12. - [Release notes](https://github.com/juliangruber/brace-expansion/releases) - [Commits](juliangruber/brace-expansion@1.1.11...v1.1.12) --- updated-dependencies: - dependency-name: brace-expansion dependency-version: 1.1.12 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…server (kubeflow#11978) Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.12. - [Release notes](https://github.com/juliangruber/brace-expansion/releases) - [Commits](juliangruber/brace-expansion@1.1.11...v1.1.12) --- updated-dependencies: - dependency-name: brace-expansion dependency-version: 1.1.12 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…nal-test (kubeflow#11985) Bumps [protobuf](https://github.com/protocolbuffers/protobuf) from 4.25.3 to 4.25.8. - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](protocolbuffers/protobuf@v4.25.3...v4.25.8) --- updated-dependencies: - dependency-name: protobuf dependency-version: 4.25.8 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Humair Khan <HumairAK@users.noreply.github.com>
…kubeflow#11986) Bumps [protobuf](https://github.com/protocolbuffers/protobuf) from 4.25.4 to 4.25.8. - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl) - [Commits](protocolbuffers/protobuf@v4.25.4...v4.25.8) --- updated-dependencies: - dependency-name: protobuf dependency-version: 4.25.8 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…gemaker (kubeflow#11993) Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.15 to 2.5.0. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](urllib3/urllib3@1.26.15...2.5.0) --- updated-dependencies: - dependency-name: urllib3 dependency-version: 2.5.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: zazulam <m.zazula@gmail.com>
Signed-off-by: kaikaila <lyk2772@126.com>
Signed-off-by: kaikaila <lyk2772@126.com>
Signed-off-by: kaikaila <lyk2772@126.com>
Signed-off-by: kaikaila <lyk2772@126.com>
Signed-off-by: kaikaila <lyk2772@126.com>
Signed-off-by: kaikaila <lyk2772@126.com>
Signed-off-by: kaikaila <lyk2772@126.com>
2df1c63 to
895b170
Compare
Signed-off-by: kaikaila <lyk2772@126.com> Signed-off-by: kaikaila <lyk2772@126.com>
Signed-off-by: kaikaila <lyk2772@126.com>
Signed-off-by: kaikaila <lyk2772@126.com>
895b170 to
f364857
Compare
- Add os.Getenv("TLS_CERT_DIR") to allow custom certificate directory
- Add startup success log messages for better debugging
- Improve logging with cache server ready message
This change enables local debugging without modifying /etc/webhook/certs path.
Signed-off-by: kaikaila <lyk2772@126.com>
- Add TLS certificate generation script - Add local setup verification script - Add manual webhook testing script - Add deployment verification script - Add VSCode launch configuration for cache-server - Add test data files for webhook testing These tools enable local cache-server development and testing. Signed-off-by: kaikaila <lyk2772@126.com>
- Add CACHE_WORKFLOW.md explaining cache mechanism - Add LOCAL_DEV.md for local development setup - Add MANUAL_TESTING.md with detailed testing guide - Add QUICK_START.md for quick reference These docs help developers understand and test cache-server locally. Signed-off-by: kaikaila <lyk2772@126.com>
Signed-off-by: kaikaila <lyk2772@126.com>
Prevent certificate files from being accidentally committed to the repository. Signed-off-by: kaikaila <lyk2772@126.com>
f364857 to
f4bea2f
Compare
f4bea2f to
5306cfd
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Superseded by #12379.
Further development and review will continue there.
Background
Kubeflow Pipelines currently hardcodes MySQL assumptions in its storage layer. To enable PostgreSQL adoption (via pgx driver) and improve long-term maintainability, we need to decouple SQL dialect logic and centralize it into a reusable abstraction.
⸻
Changes
This PR introduces a major refactor of the backend storage layer and related test workflows:
Dialect abstraction
• Introduced DBDialect interface and refactored pipeline/experiment/run/job stores to use it.
• Removed legacy SQLDialect, centralized initialization in InitDBClient.
Storage refactor
• Updated resource_reference, db_status_store, and cache/storage clients to use the new dialect.
• Moved filter logic into dialect package, cleaned up list package.
• Adapted db_fake to support dialect abstraction.
Tests & dependencies
• Updated unit tests across storage, list, and filter packages.
• Updated go.mod dependencies and tidied modules.
• Added PostgreSQL GitHub Actions workflow with kustomize deployment and port-forward.
⸻
CI Status