* feat: customizable tensorboard image and env vars
* feat: sample pipeline using tensorboard visualization with minio
* change podtemplatespec format to be JSON in mlpipeline-ui-metadata
* fix default value
* update test config
* increase test timeout
* fix test
* fix args
* fix
* address comments
* improve component logging
* Set current namespace in local KFP context if running from notebook
* Create "~/.config/kfp/" instead of ".config/kfp/"
At first it was assumed the `get_user_namespace` command would be executed from the home directory.
* Create local context file if it doesn't exist during set_user_namespace
* Grab path from LOCAL_KFP_CONTEXT when creating folder
Instead of harcoding the os.mkdirs path to `~/.config/kfp` it now grabs it from the LOCAL_KFP_CONTEXT. Also, removed path creation in `get_user_namespace` as that is now handled in `set_user_namespace`. Also, it now checks if the path exists rather than the local_context_file to remove the situation where it tries to create ~/.config/kfp/ because the context.json doesn't exist when the path does.
* add multi-user setting to healthz api
* Add http prefix to health api url
* move healtz api call to own function and fix multi_user boolean
* Fix HEALTH_PATH declaration
* Move check to Client __init__ and change get_kfp_healthz to avoid breaking in case of old apiserver image
* Add multi_user to frontend healthz
* Expose multi_user in frontend and add integration test
* Fix integration test
* Fix host hardcoding and error handling
* Handle empty API response, check if API up to date
* Fix response return
* remove API check due to empty response
* retry API call if first response empty
* retry getting healthz api if no response
* change health_api to https
The healthz_api has been returning empty responses which might be caused by sending an http request to an https endpoint. Although requests handles redirects, this commit is to test if this solves the issue.
* Add some debug info to healthz exception
* add url to debug and lower retries to 1
* Use api_client to get healthz data
* Debug info for API response
* Follow API redirect history
* Fix indentation
* Add healthz proto
* Try getting healthz api with new python backend
* Add installation of kfp_server_api in tests
* Fix incorrect setup location
* Replace old .get with new http backend .multi_user
* Code clean up
* Small fixes and TimeOutError for retries healthz api
* Remove changes to go dependencies
* Send empty proto request and fix exception client
* Remove unused commit_sha and tag_name
* support local file storage type for local volume mount path, refer: https://github.com/kubeflow/pipelines/issues/4208
* add todo comment to support directory and filePath include wildcards '*', detail refer: https://github.com/kubeflow/pipelines/issues/4208
* revert old code indent
* run 'npm run format' to format code
* support tensorboard viewer and other visualize Results using volume mount path, modify 'file' schema to 'volume':
1. source schema: volume://volume-name/relative/path/from/volume/xxx.csv
2. for tensorboard(also support Series1:volume://volume-name/path_to_model_dir_1,Series2:volume://volume-name/path_to_model_dir_2):
* check volume-name was specified in podTemplateSpec( which was inject by VIEWER_TENSORBOARD_POD_TEMPLATE_SPEC_PATH env)
* check /relative/path/from/volume/xxx file path was prefix-mounted in podTemplateSpec
3. for others:
* check volume-name was specified at ml-pipeline-ui pod
* check /relative/path/from/volume/xxx.csv file path exist
* fix test and add more tests
* change error message not found to not exist.
* fix tensorboard create test
* combining volume mount path and key as artifacts path
* extra complex code to a function and add more test
* use ml-pipeline-ui container name to find server container instead of use containers[0]
* fix review suggestion: https://github.com/kubeflow/pipelines/pull/4236
* format code
* extract how to find file path on a pod volume to a common function, and optimize error message
* fix k8s-helper.test error
* add more documentation and fix mistake: volumeMountPath to filePathInVolume
* fix test error
* Update k8s-helper.test.ts
* format error message
Co-authored-by: Yuan (Bob) Gong <gongyuan94@gmail.com>
* Show version tag in UI
* Add new arguments to test cloudbuild configuration
* backend cloudbuild should use commit_sha as argument
* Fix minor bug during dev
* Authorization service proto
* implement auth service
* Add unit tests
* Generate auth api client
* Authorization checks for tensorboard apis
* UI Server authorization checks
* Clean up error parsing
* Revert changes
* Fix portable-fetch not found bug
* Fix unit test
* Include portable-fetch required by api client
* Fix portable-fetch module import error
* Fix portable-fetch again
* Add unit tests
* Address CR comments
* add unit test for header
* Update readme
* [UI Server] Add namespace argument for tensorboard endpoints
* Allow local node server to talk to minio in cluster
* Use tensorboard namespace in UI
* Add unit tests for tensorboard UI server
* Fix tests
* Fix tensorboard proxy url
* Fix tensorboard proxy failure
* Fix tests
* Remove unecessary encodeURIComponent
* Add old comment back
* [UI Server] Pod info handler
* [UI] Pod info tab in run details page
* Change pod info preview to use yaml editor
* Fix namespace
* Adds error handling for PodInfo
* Adjust to warning message
* [UI] Pod events in RunDetails page
* Adjust error message
* Refactor k8s helper to get rid of in cluster limit
* Tests for pod info handler
* Tests for pod event list handler
* Move pod yaml viewer related components to separate file.
* Unit tests for PodYaml component
* Fix react unit tests
* Fix error message
* Address CR comments
* Add permission to ui role
* Implement getting started page.
* Add feature flag to only show getting started page on hosted pipelines
* Add tests
* Fix format
* Implement requested layout in getting started page
* Minor adjust layout
* Fix tests
* Fix snapshots
* Update page title
* Add unit tests for aws-helper and minio-helper.
* Break up server.ts into app.ts and handlers/*.ts so that unit test can be written more easily.
* update @types/node because of https://github.com/microsoft/TypeScript/issues/32333
* upgrade kubernete-client version to be compatible with new @types/node version
* fix bug: AWSInstanceProfileCredentials.profile() returns a promise not a string
* remove I prefix from interfaces. minor fixes on lint errors.
* fix format errors
* Added more unit tests, and minor fixes.
* Fix comment: GKS should be GKE
* use jest.resetAllMocks instead of reset each mock individually
* fix format for helper test