Commit Graph

492 Commits

Author SHA1 Message Date
Windfarer f61048b5d2
fix(scheduledworkflow): Set location to make CRON timezone work, Fixes #2653 (#5800)
* set location

* update log

* fix log

* install tzdata
2021-06-07 05:19:51 -07:00
Yuan (Bob) Gong 28431fc3fd
feat: update MLMD to 1.0.0 (#5786)
* feat: update MLMD to 1.0.0

* update MLMD frontend client
2021-06-03 10:34:36 -07:00
juliusvonkohout efe916c075
Fix the cache-deployer to run as non root (#5742) 2021-05-27 08:39:17 -07:00
guanhuichen 435f6b1abe
fix(backend): Fixed workflow cannot be retried with node xxx in Omitted (#5738)
Fixes #5537
2021-05-26 09:01:41 -07:00
Yuan Gong 1c66f93f51 chore(release): bumped version to 1.6.0 2021-05-24 13:36:51 +08:00
Alexey Volkov 584d5e5742
Backend - Added modern time formatters (#5464)
* Backend - Added modern time formatters

Placeholder format: `{{$.scheduledTime.strftime('%Y-%m-%d')}}`

* Update go.mod

* Update go.sum

* Update parameter_formatter_test.go

* Update parameter_formatter.go

* Update parameter_formatter.go

* Update parameter_formatter.go

* Fixed regexp escaping

* Fixed typo

* Fixed formatting

* Fixed the current time placeholder

* Fixed the test

* Added error logging
2021-05-19 17:24:45 -07:00
Luis Magana 13b27f66b3
Support extra params for cache server db connection (#5599)
* support extra params for db connection

* using built-in json library instead of casting
2021-05-13 23:20:27 -07:00
Yuan Gong bc329aa816 chore(release): bumped version to 1.6.0-rc.0 2021-05-13 07:17:55 +00:00
Luis Magana d25b001532
Add configurable connection max lifetime for MySQL (#5583)
* adding config for SetConnMaxLifetimeSec




making dbConMaxLifetime configurable


nit add time value


change the actual variable

* standardizing and documenting

* switched to getdurationconfig
2021-05-07 23:39:07 -07:00
capri-xiyue 31939086d6
feat: update MLMD to 0.30.0 (#5592) 2021-05-05 17:03:05 -07:00
Alexey Volkov cc83e1089b
Assigned copyright to the project authors (#5587) 2021-05-05 13:53:22 +08:00
Yuan (Bob) Gong d106a6533b
fix(viewer): viewer crd controller panics using tensorboard image without tag. Part of #5471 (#5522) 2021-04-24 00:06:43 -07:00
Niklas Hansson 837429c072
feat(cache) : allow user to reset the node selector and affinity for cached steps. Fixes #4777 (#5456)
* initial work on removing pod affinity for cacheing image

* updated env extraction

* check if nodeselector or affinity is set. Also updated the variables needed

* missed to save

* fix test

Signed-off-by: NikeNano <niklas.sven.hansson@gmail.com>

* fixed test

* update manifests

* clean up

* remove withspaces
2021-04-23 17:19:43 -07:00
Yuan (Bob) Gong 3d72a2d9d5
chore(release): bump version to 1.5.0 on master branch (#5508) 2021-04-20 01:51:38 -07:00
Yuan Gong 3b5030aefa chore(release): bumped version to 1.5.0-rc.3 2021-04-09 13:28:26 +00:00
Yuan (Bob) Gong d95764b756
fix(backend): api server panics on workflow with parameter without value. Fixes #5423 (#5424) 2021-04-03 18:27:21 -07:00
Yuan Gong f870570a79 chore(release): bumped version to 1.5.0-rc.2 2021-04-02 10:06:48 +00:00
Yannis Zarkadas 684d6392d3
metadata-writer: Fix multi-user mode (#5417)
* metadata-writer: Fix multi-user mode

The metadata-writer should use a different function to watch Pods, if
the namespace is empty, i.e, if it wants to watch Pods in all
namespaces.

Signed-off-by: Yannis Zarkadas <yanniszark@arrikto.com>

* fixup! metadata-writer: Fix multi-user mode
2021-04-02 01:56:20 -07:00
Yuan Gong 1cd189567d chore(release): bumped version to 1.5.0-rc.1 2021-04-01 11:59:53 +08:00
Yuan (Bob) Gong 6620dbd713
fix(metadata-writer): skip latest TFX pods (#5364) 2021-03-24 19:26:45 -07:00
Alexey Volkov 5fbf2249fb
fix(backend): Caching - Make the cache key depend on output names and paths (#4675)
* Caching - Make the cache key depend on output names and paths

Output artifact/parameter names and paths are important and need to be considered.

* Fixed the test
2021-03-22 22:30:43 -07:00
Yuan Gong d2c66deb93 chore(release): bumped version to 1.5.0-rc.0 2021-03-22 21:25:52 +08:00
Ilias Katsakioris 5db66e0592
feat(backend): Support authentication with ServiceAccountTokens. Part of #5138 (#5286)
* Introduce kubernetes client utils

Introduce common utils for client initialization to factor out common
code.
This is a step towards fulfilling kubeflow/pipelines#4738.

* Use common util to initialize k8s clientset

* Introduce TokenReview client and fake ones

* Extend ResourceManager with a TokenReview client

* Extend FakeClientManager with a fake TokenReview Client

* Introduce authentication utils

* Introduce HTTP header authenticator

* Initialize Kubeflow-UserID header authenticator

* Refactor getUserIdentity() to use auth_util

* Move getting user identity logic to resource manager

Have the resource manager authenticate the request.
In following commits we will be extending the authentication methods to
use, among others, Kubernetes clients. Thus, we move the logic to the
resource manager to benefit from the clients kept its context.

* Introduce constants for the TokenReview authentication

* Introduce TokenReview authenticator

* Extend authenticators with a TokenReview one

Extend the authenticators which the KFP apiserver applies on a request
with a TokenReview authenticator.

This authenticator expects a ServiceAccountToken in a header with the
format: 'Authorization: Bearer <token>'

Part of https://github.com/kubeflow/pipelines/issues/5138

* Add tests for auth_util

* Add tests for HTTPHeaderAuthenticator

* Update server tests based on the new authentication API

* Remove old tests and unused code

* Add tests for TokenReviewAuthenticator

* Add server tests with unauthenticated requests

* manifests: Allow KFP API server to create TokenReviews

* auth: Split 'auth_util.go' into two parts

Split the file into:
* auth.go: contains the main entrance from the outside of the package
* util.go: contains all utility functions used inside

* Change token review audience variable and value

* Allow configuring audience with an environment variable

* Rename IsRequestAuthenticated -> AuthenticateRequest

* Don't use AuthenticateRequest method in tests

Instead of using AuthenticateRequest to retrieve the user from the
request and then use it for the expected values, allocate a variable for
the username in the request and use that in the expected values.
This ensures we don't hide potential errors of AuthenticateRequest.

* Change authenticators order

Have the HTTPHeaderAuthenticator first followed by the
TokenReviewAuthenticator

* Move authenticators to a ResourceManager property

To avoid potential race conditions when initializing the Authenticators
variable, we move authenticators to a ResourceManager property and
initialize it along with the initialization of the manager.
2021-03-18 21:59:16 -07:00
Yuan (Bob) Gong 1a9b8ab1b6
chore(v2/metadata): metadata-writer skips v2 pods (#5310)
* chore(v2/metadata): metadata-writer skips v2 pods

* fix we should use annotations instead

* fix syntax error

* Update metadata_writer.py

* Update metadata_writer.py
2021-03-16 22:42:15 -07:00
Haofeng Xie 15b0f50c54
feat(backend): Add qps & burst options in clientset. Fix #5095 (#5231)
* feat(backend): Add qps & burst options in clientset. Fix #5095

* Some minor changes:
* Use comment in client-go as usage string of QPS & burst.
* Use `common.GetXXX()` to retrieve configurations in API server.
* Use a struct to include configurations in cache server.
* Update job_api_test.go to support modified `NewScheduledWorkflowClientOrFatal()`.

* Some minor fixes:
* Create `util.ClientParameters` for configurations needed to create a client.
* Add comments linking to the default value of clientQPS & clientBurst defined in k8s.io/client-go.
2021-03-16 11:14:15 -07:00
Yuan (Bob) Gong b661479c4e
chore(v2/cache): cache mutation hook - skip v2 components (#5309)
* chore(v2/cache): cache mutation hook - skip v2 components

* fix use annotations instead

* fix2
2021-03-16 04:18:15 -07:00
Niklas Hansson 9c10d4f6fc
fix(cache): update to use google/cloud-sdk:alpine instead of alpine for mutating cached steps. Fixes #4099 (#5184)
* set up cluster

* allow to set with env variable

* fix the market place

* updated manifests

* Added default, still need to fix how env is set in test

* test alpine agin

* added test

* updated the image

* deleted

* change image by misstake

* updated after feedback

* deleted

* smaller image

* added to the config.json

* adjust to new updates for config handling

* Updated image to use latest
2021-03-13 02:01:47 -08:00
StefanoFioravanzo b0cb5db10c
feat(backend): Support pipeline parameters macros in one-off runs (#5086)
* [Backend] Move ParameterFormatter to common/util

Signed-off-by: Stefano Fioravanzo <stefano@arrikto.com>

* [Backend] Make resource mngr use params formatter for simple Runs

This commit integrates the workflow resource manager with the
ParameterFormatter, to replace two macros: ``[[RunUUID]]`` (which
replaces with the run UUID) and ``[[CurrentTime.<template>]]`` which
replaces with the time when the workflow is submitted to the
API Server.

Signed-off-by: Stefano Fioravanzo <stefano@arrikto.com>

* [Backend] Validate param pointer is not null

Pipelines can be created with parameters without default values. If such
a pipeline is run without providing a value to these parameters that
don't have defaults, `param.Value` will be `nil`

Signed-off-by: Stefano Fioravanzo <stefano@arrikto.com>

* Move -1 placeholder to constant

Signed-off-by: Stefano Fioravanzo <stefano@arrikto.com>

* fixup! [Backend] Make resource mngr use params formatter for simple Runs
2021-03-12 04:16:24 -08:00
vsk2015 1d8df97f85
fix(backend): add brackets if metadata service host is ipv6. Fixes (#5161) (#5246) 2021-03-11 16:12:24 -08:00
Yuan (Bob) Gong be64b32798
feat: update argo image to v2.12.9 and automate update process. Fixes #5232 (#5266)
* add notices and licenses for argo 2.12

* feat: upgrade argo images to v2.12.9

* update all refs to argo image version

* add NOTICES generation script

* upgrade argo cli to latest

* fix

* fix

* add license_info.csv back

* make release process safer

* add back third_party/license.txt

* refactor(deployment): move argo manifests to third-party, updates for 2.12.9

* update marketplace snapshots

* set up marketplace presubmit test

* add comment
2021-03-10 12:52:42 +08:00
Niklas Hansson df480735a6
feat(backend): upgrade argo library to 2.12.6. Part of #4553 (#5041)
* tests

* added go mod file

* updated go.mod

* argo latest stable

* upgrade argo

* clean up

* go mod tidy to clean up

* fixed test after backend

* go mod tidy clean up

* more clean up

* added helper function and updated after feedback

* updated k8s.io/kubernetes to version 0.17.9

* updated go dependencies
2021-03-03 01:02:48 -08:00
Yuan (Bob) Gong 8b3d741c6e
chore(release): after release, also bump master to 1.4.1 (#5196)
* update release instructions

* chore(release): bump version to 1.4.1

* Update setup.py
2021-03-01 12:10:16 -08:00
vsk2015 710ca26c5a
fix(backend): add brackets if metadata service host is ipv6. Part of #5605 (#5160) 2021-02-28 18:49:16 -08:00
Luis Magana 5df2801603
feat(backend): Added multi-user pipelines (UI + API); Fixes #4197 (#4835)
* Added multi-user pipelines backend


corrected typo


updating code based on review


fixes for pipelines server


reverting this back

* removing unnecessary info logging
2021-02-26 06:10:15 -08:00
DavidSpek fe18a296da
chore: Remove pip requirements from docker files (#5064)
* Remove pip requirements from docker files

* Fix consistency and failing builds

* fixup arena requirements.txt

* Update KFserving to 0.4.1

* Remove pip requirements from docker files

* Fix consistency and failing builds

* fixup arena requirements.txt

* small fixup
2021-02-26 02:31:15 -08:00
Yuan (Bob) Gong 9094fa3ecd
fix(visualization): downgrade tfma to 0.26 (#5191) 2021-02-25 19:06:45 +08:00
Yuan (Bob) Gong 875137aa58
fix(samples): remove TFX iris example. Part of #5137 (#5189)
* fix(samples): remove TFX iris example

* rm all occurrences
2021-02-25 17:40:42 +08:00
Yuan (Bob) Gong 76cad52d3b
fix(cache): do not cache TFX pods for newer TFX versions (#5188) 2021-02-25 16:13:56 +08:00
Yuan (Bob) Gong a394f8cdf3
fix: upgrade tfx samples & deps to 0.27.0. Part of #5137 (#5176)
* feat: upgrade tfx to 0.27.0

* update visualization server requirements.txt

* upgrade to tensorflow:2.4.0

* fix iris sample too
2021-02-24 20:09:15 +08:00
uhhc e82aec6cd6
fix(backend): fixes sql error when deploy KFP in ANSI_QUOTES sql mode. Fixes #5121 (#5156) 2021-02-23 17:10:14 -08:00
Yuan (Bob) Gong 706c105c8c
chore(api): build api clients using a prebuilt image (#5150)
* chore(api): build api clients using a prebuilt image

* Update Makefile
2021-02-19 10:27:44 -08:00
Yuan (Bob) Gong f605e64e1d
chore: delete accidentally committed v2-in-v1 samples 2021-02-17 23:31:12 +08:00
Niklas Hansson e669b22954
fix(backend): remove Bazel from building the API. Part of #3250 (#4906)
* updated to remove bazel

* rename@

* script to run in container

* update the generation

* updated docker image

* changed name

* updated the code

* regenerated API

* fix env variables

* updated version of go swagger

* rerun generate with updated package

* added healthz

* typo with folders fixed

* changed version

* set version of protoc compiler

* test if version is correct

* test version

* changed version

* updated version agian

* test version

* the latest test

* updated docker image

* fixed some stuff

* new test

* tested other version

* new tests

* changed swagger

* new test

* updated versions

* missed docker file

* updated files@

* change back

* updated after feedback@

* clean up

* remove license and install binary

* update and check differences

* completed rebase

* go mod tidy

* updated based upon work of boby

* remove code commited by misstake

* added by misstake

* updated after feedback

* futher updates after feedback

* final updates from feedback

* switch to Makefile

* update

* fix non-root execution

* clean up, fix release script

* fix swagger

* fix healthz endpoint & regenerate python client

* Delete sample.py.tar.gz

Co-authored-by: Yuan Gong <gongyuan94@gmail.com>
Co-authored-by: Yuan (Bob) Gong <4957653+Bobgy@users.noreply.github.com>
2021-02-16 16:58:30 -08:00
Rui Fang 2b95c002b7 chore(release): bumped version to 1.4.0 2021-02-12 09:31:46 +00:00
Alexey Volkov 8e648a6f0e fix(backend): Replaced the XGBoost sample. Fixes #5089 (#5100)
* Revert "fix(samples): Remove broken xgboost sample (#5091)"

This reverts commit 1dcda80eeb.

* fix(backend): Replaced the XGBoost sample

* Fixed the backend image build

* Updated the frontend tests
2021-02-12 01:01:06 -08:00
Yuan (Bob) Gong 3d40bba9a3
chore(backend): clean up backend code generation (#5116)
* chore(backend): tidy go.mod and update tools.go

* go install, instead of go get

* fix problems reported by go vet

* simplify some ide reported redundant syntax

* license is not required for generated code

* remove licenses for generated code

* cleanup

* remove license more

* rm unused BUILD.bazel files

* fixed generate_api.sh

* reimport error.proto
2021-02-09 07:10:57 -08:00
Yuan (Bob) Gong 5725bb85ed
chore(backend): tidy go.mod & update tools.go & fix go vet (#5110)
* chore(backend): tidy go.mod and update tools.go

* go install, instead of go get

* fix problems reported by go vet

* simplify some ide reported redundant syntax
2021-02-08 11:06:56 -08:00
Yuan (Bob) Gong d024935339
WIP: KFP v2 POC (#5092)
* Changes:
* add kfp v2 hello world sample
* generate go proto code
* code to unmarshal via jsonpb
* generate container spec
* add root DAG task and Makefile to run in argo
* env setup to quickly build driver container
* generate mlmd grpc golang client
* mlmd grpc client usage example
* driver-dag: put execution and context
* driver dag: put context only when execution is a DAG
* driver task: resolve parameter from parent execution
* chain dag driver with task driver
* driver: output argo parameters
* driver: build driver docker image
* driver: push image to dev registry
* compiler: root dag driver compiler
* mlmd doc
* driver: use task spec and executor spec as driver input instead
* driver: pod spec patch output for type EXECUTOR
* compiler: passing - parameter placeholder with hello world example
* include generated argo workflow in source control
* driver no longer outputs parameters
* publisher: publish parameters to execution custom properties
* driver, publisher: execution state
* publisher: remove built binary from repo
* sample: add producer consumer sample
* sample: producer consumer sample with only parameters
* e2e output parameter support
* e2e: driver resolves input parameter from tasks in the same DAG
* compiler: convert KFP task dependency to argo task dependency
* feat: refactor publisher so it can run as an entrypoint
* build: entrypoint image
* feat: executor and publisher in one container via entrypoint rewriting

* fixed compile error (#1)

* add licenses

* update readme

Co-authored-by: capri-xiyue <52932582+capri-xiyue@users.noreply.github.com>
2021-02-08 10:18:33 -08:00
Yuan (Bob) Gong 1dcda80eeb
fix(samples): Remove broken xgboost sample (#5091)
* Update sample_config.json

* fix getting started page

* update snapshot

* fix again

* use inline snapshot
2021-02-03 20:01:36 -08:00
Yuan (Bob) Gong c5c8d715ed
fix: upgrade some images to reduce vulnerabilities (#5065)
* fix: upgrade some images to reduce vulnerabilities

* upgrade openssl
2021-02-01 10:23:02 -08:00