pipelines/backend
Chen Sun a727783abd
chore: remove 'dummy_root' in test samples (#9640)
* remove 'dummy_root' in test samples

* more cleanup
2023-06-21 23:51:41 +00:00
..
api chore(release): bumped version to 2.0.0 2023-06-20 16:54:58 +00:00
conformance feat(conformance): containerize KFP conformance test. (#7738) 2022-05-23 19:31:01 +00:00
metadata_writer fix(backend): AIP-5634: Add in LRU cache and temp file rotation for metadata-writer. Relates to #4347 (#7199) 2022-02-15 21:42:06 +00:00
src chore: remove 'dummy_root' in test samples (#9640) 2023-06-21 23:51:41 +00:00
test fix(backend): Add creation of pipeline and pipeline version atomically (#9416) 2023-05-18 23:38:46 +00:00
third_party_licenses fix(backend): upgrade to `gopkg.in/yaml.v3` to fix boolean support. Fixes #9451 (#9473) 2023-05-24 08:57:19 +00:00
Dockerfile chore(samples/backend/frontend): Update preload control-flow and data-passing pipelines to v2 (#9563) 2023-06-07 22:06:57 +00:00
Dockerfile.cacheserver chore: upgrade to Argo v3.3.10 (#9336) 2023-05-08 08:38:55 +00:00
Dockerfile.conformance chore: upgrade to Argo v3.3.10 (#9336) 2023-05-08 08:38:55 +00:00
Dockerfile.driver chore: Create and use license-compliance driver and launcher images (#9388) 2023-05-11 18:44:02 +00:00
Dockerfile.launcher chore: Create and use license-compliance driver and launcher images (#9388) 2023-05-11 18:44:02 +00:00
Dockerfile.persistenceagent chore: upgrade to Argo v3.3.10 (#9336) 2023-05-08 08:38:55 +00:00
Dockerfile.scheduledworkflow chore: upgrade to Argo v3.3.10 (#9336) 2023-05-08 08:38:55 +00:00
Dockerfile.viewercontroller chore: upgrade to Argo v3.3.10 (#9336) 2023-05-08 08:38:55 +00:00
Dockerfile.visualization feat: upgrade TFX to 1.2.0 (#6375) 2021-08-18 01:50:37 -07:00
Makefile chore(backend): Merge v2 code into backend/src/ (#7173) 2022-01-25 01:21:24 -08:00
OWNERS chore: Update backend/OWNERS (#8369) 2022-10-14 20:42:04 +00:00
README.md chore(backend): Add golangci-lint and pre-commit config (#9428) 2023-05-17 18:23:06 +00:00
requirements.in chore(samples/backend/frontend): Update preload control-flow and data-passing pipelines to v2 (#9563) 2023-06-07 22:06:57 +00:00
requirements.txt chore(samples/backend/frontend): Update preload control-flow and data-passing pipelines to v2 (#9563) 2023-06-07 22:06:57 +00:00

README.md

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

Building & Testing

To run all unittests for backend:

go test -v -cover ./backend/...

The API server itself can be built using:

go build -o /tmp/apiserver backend/src/apiserver/*.go

Code Style

Backend codebase follows the Google's Go Style Guide. Please, take time to get familiar with the 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 tool that can catch common mistakes locally (see detailed configuration here). It can be conveniently integrated with multiple popular IDEs such as VS Code or Vim.

Finally, it is advised to install pre-commit in order to automate linter checks (see configuration here)

Building APIServer image locally

The API server image can be built from the root folder of the repo using:

export API_SERVER_IMAGE=api_server
docker build -f backend/Dockerfile . --tag $API_SERVER_IMAGE

Deploy APIServer with the image you own build

Run

kubectl edit deployment.v1.apps/ml-pipeline -n kubeflow

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 for details.

Updating licenses info

  1. Install go-licenses tool and refer to its documentation for how to use it.

  2. Run the tool to update all licenses:

    make all
    

Visualization Server Instructions

Updating python dependencies

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

Building conformance tests (WIP)

Run

docker build . -f backend/Dockerfile.conformance -t <tag>