pipelines/backend/test/integration
Matt Prahl 53bb3a0aad
test: Update the Kubernetes and Python version ranges in the CI (#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>
2025-05-28 13:37:20 +00:00
..
Makefile feat(backend): Add a mutating webhook for the PipelineVersion kind (#11782) 2025-04-04 16:15:35 +00:00
README.md feat(backend): Add a mutating webhook for the PipelineVersion kind (#11782) 2025-04-04 16:15:35 +00:00
db_test.go chore(test): Fixed namespace in tests (#11545) 2025-01-27 15:47:49 +00:00
experiment_api_test.go test: migrate kubeflow-pipeline-e2e-test to GitHub Actions (#10887) 2024-06-13 00:02:07 +00:00
flags.go feat(backend): add postgres initialization (#9798) 2023-08-10 21:51:05 +00:00
healthz_api_test.go test: migrate kubeflow-pipeline-e2e-test to GitHub Actions (#10887) 2024-06-13 00:02:07 +00:00
job_api_test.go chore(deps): replace deprecated ioutil with os and io in tests (#11577) 2025-01-31 20:42:16 +00:00
pipeline_api_test.go test: Update the Kubernetes and Python version ranges in the CI (#11924) 2025-05-28 13:37:20 +00:00
pipeline_version_api_test.go test: Update the Kubernetes and Python version ranges in the CI (#11924) 2025-05-28 13:37:20 +00:00
run_api_test.go chore(test): Increased timeout in test (#11658) 2025-02-20 14:15:43 +00:00
run_tests_locally.sh feat(backend): add postgres initialization (#9798) 2023-08-10 21:51:05 +00:00
upgrade_test.go test: Update the Kubernetes and Python version ranges in the CI (#11924) 2025-05-28 13:37:20 +00:00
visualization_api_test.go test: migrate kubeflow-pipeline-e2e-test to GitHub Actions (#10887) 2024-06-13 00:02:07 +00:00
webhook_test.go feat(backend): Add a mutating webhook for the PipelineVersion kind (#11782) 2025-04-04 16:15:35 +00:00

README.md

Api Server Integration Tests

WARNING

These integration tests will delete all the data in your KFP instance, please only use a test cluster to run these.

How to run

The default integration test will test the default Database, MySQL.

  1. Configure kubectl to connect to your kfp cluster.
  2. Run the following for all integration tests: NAMESPACE=<kfp-namespace> ./run_tests_locally.sh.
  3. Or run the following to select certain tests: NAMESPACE=<kfp-namespace> ./run_tests_locally.sh -testify.m Job. Reference: https://stackoverflow.com/a/43312451

Webhook Integration Tests

The Kubernetes webhooks require Kubeflow Pipelines to be deployed using the manifests/kustomize/env/cert-manager/platform-agnostic-k8s-native manifests which is why they are gated by the WEBHOOK_INTEGRATION=true environment variable value. If the correct environment is deployed, you may run the tests with make -C backend/test/integration test-webhook from the root of the repository.

Run database tests with PostgreSQL

To run this test, you need to first deploy the PostgreSQL images on your Kubernetes cluster. For how to deploy, see instructions here.

When testing against postgreSQL, all integration tests with MySQL will be disabled. Use an argument postgres to run test against a PostgreSQL database:

NAMESPACE=<kfp-namespace> ./run_tests_locally.sh postgres