pipelines/backend
Alexey Volkov ada18bc6e6
fix(backend): Caching - Reduced the cache webhook timeout (#4428)
Reduced the timeout from 30 seconds to 5.
This should not be needed as most users tell us that pods work even when the cache service is not available. But there was at least one customer who experienced timeout failures when creating pods after the service was deleted, but not the webhook config.
2020-08-28 05:16:53 -07:00
..
api doc: readme for how to auto-generate api reference from the backend api definitions (#4348) 2020-08-10 21:12:16 -07:00
metadata_writer fix(backend): Metadata Writer - Fixed regression with artifact type retrieval. Fixes #3971 (#4231) 2020-07-17 03:53:01 -07:00
src fix(backend): Caching - Reduced the cache webhook timeout (#4428) 2020-08-28 05:16:53 -07:00
test re-enable upgrade test since 0.5.2 is cut (#3696) 2020-05-29 13:40:10 +08:00
Dockerfile chore(backend): use go build instead of bazel build for api server's docker file (#4373) 2020-08-20 00:33:23 -07:00
Dockerfile.bazel
Dockerfile.cacheserver [Backend]Initial execution cache (#3036) 2020-03-03 16:13:47 -08:00
Dockerfile.persistenceagent feat(backend): Make number of persistence worker goroutine configurable (#3904) 2020-06-29 21:37:58 -07:00
Dockerfile.scheduledworkflow
Dockerfile.viewercontroller
Dockerfile.visualization chore(backend): Visualization: Using the correct Tensorflow image to prevent build time-outs (#4353) 2020-08-19 23:25:22 -07:00
OWNERS chore: remove inactive reviewers (#4111) 2020-06-30 19:10:06 -07:00
README.md chore(backend): mention the Bazel version requirements in the README.md (#3969) 2020-06-24 16:58:07 +08:00
build_api_server.sh chore(backend): fixes typo empty space (#4318) 2020-08-04 08:00:20 -07:00
requirements.in fix: increase TFX version from 0.20.2 to 0.22.0. Fixes #4084, fixes #4114 (#4133) 2020-07-02 00:40:46 -07:00
requirements.txt fix: increase TFX version from 0.20.2 to 0.22.0. Fixes #4084, fixes #4114 (#4133) 2020-07-02 00:40:46 -07:00
update_requirements.sh Infra - Improved the update_requirements script (#3535) 2020-04-17 13:20:04 -07:00

README.md

This directory contains code for the components that comprise the Kubeflow Pipelines backend.

Bazel

The supported Bazel version is 0.24.0.

Building & Testing

All components can be built using Bazel. To build everything under backend, run: bazel build --action_env=PATH --define=grpc_no_ares=true //backend/...

To run all tests: bazel test --action_env=PATH --define=grpc_no_ares=true //backend/...

The API server itself can only be built/tested using Bazel. The following commands target building and testing just the API server. bazel build --action_env=PATH --define=grpc_no_ares=true backend/src/apiserver/... bazel test --action_env=PATH --define=grpc_no_ares=true backend/src/apiserver/...

Building APIServer Image using Remote Build Execution

If you are a dev in the Kubeflow Pipelines team, you can use Remote Build Execution Service to build the API Server image using Bazel with use of a shared cache for speeding up the build. To do so, execute the following command:

./build_api_server.sh -i gcr.io/cloud-ml-pipelines-test/api-server:dev

Building Go client library and swagger files

After making changes to proto files, the Go client libraries and swagger files need to be regenerated and checked-in. The backend/api/generate_api.sh script takes care of this.

Updating BUILD files

As the backend is written in Go, the BUILD files can be updated automatically using Gazelle. Whenever a Go file is added or updated, run the following to ensure the BUILD files are updated as well: bazel run //:gazelle

If a new external Go dependency is added, or an existing one has its version bumped in the go.mod file, ensure the BUILD files pick this up by updating the WORKSPACE go_repository rules using the following command: bazel run //:gazelle -- update-repos --from_file=go.mod

Updating python dependencies

pip-tools is used to manage python dependencies. To update dependencies, edit requirements.in and run ./update_requirements.sh <requirements.in >requirements.txt to update and pin the transitive dependencies.