* Add Task Details tab when clicking a node: Info includes ID, Name, Time, Status
* fix test and add comment
* Address comments
* address comment, move tab to right order
* small update on the optional chaining
* test the python upgrade for presubmit failure
* Try with python 3.8 for latest stable version
* Change python 3.7 because 3.8 is not supported by current ml-metadata version
* Update Dockerfile
Co-authored-by: Yuan (Bob) Gong <4957653+Bobgy@users.noreply.github.com>
Change the icon used on cached steps to make them more intuitive.
The previously used CachedIcon (from material UI) can be easily confused
with some kind of 'loop' or 'sync'.
This commit changes the icon used to a combination of SuccessIcon and
CachedIcon from the material UI library. This clarifies that the step
actually ran successfully and its execution was cached.
* 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
The UI was deciding whether a node was cached based on whether it was
pointing to some other node's output artifacts.
This works for nodes that correspond to pods, but leads to a wrong
decision for the rest of the nodes. For example, if the node is a Retry
one, it points to another node's outputs because it is that other node
that actually produced them.
We now apply this logic on pod-type nodes only.
Fixes#4814
Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>
* New server API: read run log
- The new server API endpoint (/apis/v1beta1/runs/{run_id}/nodes/{node_id}/log) to fetch run log
- `ARCHIVE_LOG_FILE_NAME` and `ARCHIVE_LOG_PATH_PREFIX` options allows to control archive log path
- UI Server fetches logs from server API or directly from k8s depending on `STREAM_LOGS_FROM_SERVER_API` option
* New server API: read run log
- ml-pipeline rbac update: allow for access to log
* Read run log: enhanced error handling
- log message on Pod access errors
* Read run log: enhanced log archive options
* Code format
* Test update after getPodLogs signature change
* Updated comments after review
* `follow` query parameter in GET /apis/v1beta1/runs/{run_id}/nodes/{node_id}/log
* Env variable friendly config names & comments
- Config options: ARCHIVE_CONFIG_LOG_FILE_NAME, ARCHIVE_CONFIG_LOG_PATH_PREFIX
- Copyright message update
- New endpoint as `v1alpha1`
* Licence updates
- fluent-bit licence inlined
- copyright message updates
* Master merge
- dependency conflicts
* frontend: add large pipeline example to mocked data
* add util function decodeCompressedNodes
* decode compressedNodes in workflow if node is empty and compressedNodes exit
* fix decodeCompressedNodes
* prettify code
* Frontend:test Utils decodeCompressedNodes
* test RunDetails page render compressed grah
* add util function decodeCompressedNodes
* Frontend:test Utils decodeCompressedNodes
* test RunDetails page render compressed grah
* reformat code
* update jest snapshot to add compressed node case
* fix tests
* reformat code
* update RunDetails snapshot
* remove dupplicate test code
* RunDetails: remove compressedNodes after decoding it
* reformat decodeCompressedNodes + add failure case test
* decodeCompressedNodes returns undefined on error
* RunDetails decodeCompressedNodes test: snapshot same as single node graph
* do not wait for decodeCompressedNodes + debug print workflow
* fix Run load + refresh snapshot
* format code
* Fix one-node compressed workflow graph + update snapshot
* reformat code
* rename large pipeline name
* fix decompressNodes to work in browser
* fix test
* fix tests
* remove some of the console.log
* clean code
* address comments
* address comments: wait for zlib instead of mocking decodeCompressedNodes
* address comments: decodeCompressedNodes reject in case of error + catch error on run load
* address comments
* Fix#4425#2705: do not render Retry nodes as they are virtual nodes with no physical counterpart - e.g. pod logs.
* Add unit test for filtering our virtual retry node
* 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>
* Generate clickable artifact url for s3 URI
Signed-off-by: Jiaxin Shan <seedjeffwan@gmail.com>
* Format code using prettier@1.19.1
* Fix unit test failure
* Use encoded string in bucket url
* [UI] Also cloning recurring run schedule
* Fix unit test for trigger and utils
* Add and fix unit tests for Trigger
* Add NewRun page unit tests
* Fix unit tests
* Fix jest test timezone
* 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
* show a preview of an artifact in the ui
* Add styling to preview box
* fix minor typo in unit test
* minor fixes + DetailsTable now accepts a ValueComponent again
* encode uricomponent for generate artifact url
* fix classname typo
* Added valueComponentProps for DetailsTable for better type checking.
* fix mock bug in test. peek -> maxbytes & maxlines for MinioArtifactPreview
* fix format
* mock Editor
* Rename artifacts tab to visualizations and add documentation link
* Show a banner when no visualizations
* Clean up code
* Update snapshots
* Fix banner tests
* Add unit test for visualization creator
* Update VisualizationCreator.tsx
* Update VisualizationCreator.tsx