Commit Graph

146 Commits

Author SHA1 Message Date
Eterna2 af456bcc61 [front-end-server] Allow viewer:tensorboard podTemplateSpec to be customizable (#1906)
* Allow front-end server to provide custom viewer podTemplateSpec via path/configmap

* Fix JSON.parse input to string
2019-08-22 11:08:33 -07:00
Kirin Patel 41d39c17a2 Add run with json data as input within fixed-data.ts for UI testing and development (#1895)
* Added run with json data as input

* Changed run and uid to not be duplicates of hello-world-runtime
2019-08-21 19:38:31 -07:00
Kirin Patel 851e7c80d2 Replace codemirror editor react component with react-ace editor component (#1890)
* Replaced CodeMirror with Editor in PipelineDetails.tsx

* Replaced codemirror in DetailsTable with react-ace

* Removed codemirror

* Updated unit tests for Editor.tsx to test placeholder and value in simplified manner

* Updated DetailsTable.test.tsx.snap to reflect changes made in DetailsTable.tsx

* Updated PipelineDetails test snapshot

* Changed width of Editor in DetailsTable to be 100% instead of 300px

* Revert "Updated unit tests for Editor.tsx to test placeholder and value in simplified manner"

This reverts commit 40103f2e01.
2019-08-21 19:04:31 -07:00
Kirin Patel 7b442f4a54 Created extensible code editor based on react-ace (#1855)
* Created extensible code editor based on react-ace

* Installed dependencies

* Updated unit tests for Editor.tsx to test placeholder and value in simplified manner

* Updated Editor unit tests to use snapshot testing where applicable
2019-08-20 18:27:19 -07:00
Riley Bauer d2e94e4e04 Fix run duration bug (#1827)
* Allows durations >=24h and renames 'showLink' in RunList

* Update, fix tests
2019-08-15 19:52:34 -07:00
Kirin Patel afe8a694f6 Reduce API usage by utilizing reference name in reference resource API (#1824)
* Regenerated run api for frontend

* Added support for reference name to resource reference API in frontend

* Revert "Regenerated run api for frontend"

* Addressed PR comments

* Removed extra if statement by setting default value of parameter

* Removed the whole comment

* Addressed PR feedback

* Addressed PR feedback

* Simplified logic after offline discussion
2019-08-15 17:00:28 -07:00
Riley Bauer 0517114dc2 Reduce getPipeline calls in RunList (#1852)
* Skips calling getPipeline in RunList if the pipeline name is in the pipeline_spec

* Update fixed data to include pipeline names in pipeline specs

* Remove redundant getRuns call
2019-08-15 12:28:35 -07:00
IronPan 39e5840f2f Add retry button in Pipeline UI (#1782)
* add retry button

* add retry button

* add retry button

* address comments

* fix tests

* fix tests

* update image

* Update StatusUtils.test.tsx

* Update RunDetails.test.tsx

* Update Buttons.ts

* update test

* update frontend

* update

* update

* addrerss comments

* update test
2019-08-15 11:04:34 -07:00
Riley Bauer 2d6a314e54 All tests passing (#1812) 2019-08-12 15:33:40 -07:00
hongye-sun c5418fdb46 Fix github security alert. (#1798) 2019-08-11 14:25:10 -07:00
Yasser Elsayed 4ec770a70f Remove yebrahim from approvers/reviewers (#1787)
* Update OWNERS

* Update OWNERS

* Update OWNERS
2019-08-09 12:22:52 -07:00
Riley Bauer 66883b0eed Fixes cloning of recurring runs (#1712)
* Fixes cloning of recurring runs

Simplifies NewRun a little

Creates NewRunParameters component

* Fixes all NewRun tests

* All tests pass

* Adds tests for NewRunParameters

* Adds clone test to RecurringRunDetails

* Clean up
2019-08-06 07:09:54 -07:00
Kirin Patel fa1abde7f6 Rename InputPath -> Source for Visualization API definition (#1717)
* InputPath -> Source

* Changed name of data path/pattern variable from InputPath to Source to improve consistency with current visualization method
* Updated unit tests to reflect name change
* Regenerated swagger definitions to reflect name change

* Readded test that was removed with previous commit

It was deleted by mistake
2019-08-05 10:55:50 -07:00
Kirin Patel f3de0c415d Add new PlotType to Allow for Visualization Creation (#1677)
* Added VisualizationCreator as new PlotType

* Addressed PR feedback made by @rileyjbauer

* Fix issue where updated props would not be accessible to VisualizationCreator

View [comment](https://github.com/kubeflow/pipelines/pull/1677#discussion_r307490016) for more details

* Updated select and input fields to become disabled when isBusy is true

* Updated test names to be more descriptive

* Fixed bug where enum key was used rather than enum value when determining ApiVisualizationType
2019-07-26 12:05:57 -07:00
Kirin Patel a4813fffb8 Added visualization API service to frontend (#1675) 2019-07-25 11:10:05 -07:00
Kirin Patel 82391f4d1d Add visualization swagger files to frontend (#1663)
* Generated visualization swagger files for frontend

* Changed swagger codegen cli version from 2.4.1 to 2.3.1

Regenerated visualization API with swagger codegen cli version 2.3.1
2019-07-24 19:39:51 -07:00
Riley Bauer e059511a08 Sets min widths for buttons to avoid text wrapping (#1637)
* Sets min widths for buttons to avoid text wrapping

* Update tests
2019-07-24 13:35:52 -07:00
Riley Bauer befb547c6e Add recurring run column to run lists (#1635)
* Adds recurring run column to run list with link to run config

* Adds tests

* Show recurring run ID

* Update snapshots
2019-07-22 13:04:54 -07:00
Riley Bauer 48c46bd1fb Trims whitespace from pipeline params on creation of new run (#1605) 2019-07-17 10:26:36 -07:00
Kirin Patel c7d19f0302 Removed duplicate CircularProgress within UI (#1625)
* Removed duplicate CircularProgress

Previously, there was a CircularProgress to indicate that the UI is busy within the [RunDetails.tsx](24aae0d082/frontend/src/pages/RunDetails.tsx (L213)) and [SidePanel.tsx](a8b9107878/frontend/src/components/SidePanel.tsx (L81)). This removes the CircularProgress from RunDetails.tsx.

* Updated test snapshot
2019-07-16 11:32:47 -07:00
jingzhang36 22ccc91538 Set user credentials when creating viewer object (#1603)
* Specify user credentials properly in our viewer crd.

* remove unnecessary import
2019-07-09 14:02:26 -07:00
Derek Hao Hu 24aae0d082 Use GCP external Stackdriver links (#1552)
* Use GCP external Stackdriver links

* Update snapshot tests
2019-06-26 13:39:22 -07:00
Riley Bauer 3ccc22ccb5 Add metrics table to run details page, run outputs tab (#1530)
* Adds metrics table to run outputs

* Clean-up and tests

* WIP adding titles to run outputs

* Clean up
2019-06-20 16:48:36 -07:00
jingzhang36 bf6fee9bbb Add a helper function to create tensorboard crd (#1237)
* Add a helper function to create a tensorboard crd.

* Add a helper function to create a tensorboard crd.

* Remove optional parameter "pretty".

* Reuse constants when possible

* createTensorboardInstance, getTensorboardInstance, waitForTensorboardInstance

* Revise getTensorboardHandler and createTensorboardHandler to use getTensorboardInstance
and createTensorboardInstance

* remove trailing spaces

* Fix comment

* Ajust paremeter values.

* stringfy error objects; change 'plural' to 'viewer'

* Change 'plural' to 'viewers'

* Use derived namespace (instead of hardcoded kubeflow) to create viewer
 CRD. Derive viewer CRD's name from log dir.

* Adjust local dns

* Add GCP credentials for viewer resource.

* Address pr reviews

* auto formatting

* 1. viewer controller propagates credentials when creating pod
2. set credentials in viewer crd

* Put credentials info in PodTemplateSpec

* Cleanup not-to-be-included changes.

* Empty line

* Formatting

* Remove a duplicate include

* add crypto-js dependency

* Add path prefix

* Update k8s-helper.ts

* (1) set viewer service port be 6006 (2) trailing / is required for tensorboard path

* Remove url address encoding

* Remove an accidental change

* Formatting

* Add comment and TODO

* Change 6006 back to 80

* Remove deprecated functions from k8shelper. Revise some comments.

* Use getNamespacedCustomobject

* Try to fix unit test for the tensorboard.tsx change

* Re-arrange func order

* Polish comments

* When there is no existing tensorboard, GetNamespacedCustomObject's promise is reject, and in case of that reject, use ''
2019-06-20 13:00:36 -07:00
Alexey Volkov cd0aeb6c62 SDK+Frontend - Fixed the task display name annotation key (#1526)
Turns out, Kubernetes only allows a single slash character in annotation key.
2019-06-18 14:50:33 -07:00
Alexey Volkov 7d69cda69c
Frontend - Show customized task display names (#1463)
* Frontend - Show customized task display names

* Added customized name test

* Added ContainerOp.set_display_name(name) method

* Stopped writing human_name to display_name annotation for now
Reason: It's a change to existing pipelines.

* Added test for op.set_display_name

* Fix for tests that have workflows with status nodes, but without any spec or templates

* Fixed the test workflow

* Fix linter error
Error: "The key 'metadata' is not sorted alphabetically"
2019-06-06 17:36:32 -07:00
Riley Bauer 918f197c0e Updates Google Cloud Storage and pins axios version (#1415)
* Updates Google Cloud Storage and pins axios version

* Small fix
2019-06-03 18:07:01 -07:00
Riley Bauer b1a6848308 Only render JSON objects and arrays, not primitives (#1366) 2019-05-22 13:18:27 -07:00
Eran Nussbaum 2da723c2fa Add HTTP/HTTPS support in FE (#1339)
* Add HTTP/HTTPS support in FE

* Fix typo (HTTP instead of HTTPS)
2019-05-19 21:41:11 -07:00
Riley Bauer be4febc562 Trims the file extension from suggested pipeline names (#1349) 2019-05-17 13:28:11 -07:00
Riley Bauer 38540d7621 Pretty print inputs and outputs json (#1348)
* Pretty prints pipeline step input/outputs if they are JSON

* Further cleanup and added tests
2019-05-17 12:38:12 -07:00
Riley Bauer 814fe28511
Adds metrics table to Compare page, creates Metric component (#1284)
* Adds metrics table to Compare page, creates Metric atom

* Cleanup

* Adds tests for metric component

* Adds CompareUtils tests

* Adds MetricUtils tests

* Adds compare page tests
2019-05-16 15:46:15 -07:00
Riley Bauer 49aa8c7f7d Removes redundant npm install from FE Dockerfile (#1332) 2019-05-14 21:28:16 -07:00
Eterna2 4eeeb6e224 [Frontend] minio client in API server can be configured with environment variables (#1324)
* kfp frontend API service can configure minio client params thru env vars

* minio endpoint is composed from host and namespace to support k8s yaml

* Added kustomize patch for pipeline-ui deploy
2019-05-14 17:38:18 -07:00
Riley Bauer 1ab4315d0d Shows link to Stackdriver logs if logs retrieval fails and cluster is running in GKE (#1310)
* Shows link to Stackdriver logs if logs retrieval fails and cluster is running in GKE

* Add additional link for new k8s stackdriver resource names

* Fix spacing
2019-05-13 12:35:10 -07:00
Jiaxin Shan 5c850b92b1 Frontend - Add support for artifacts stored in S3 (#1278)
* Add s3 and local support for artifact viewer

* Remove local file support and use ViewerCRD instead

* Fix condition failed tests

* Keep using minio for metadata manifests
2019-05-06 13:47:42 -07:00
Riley Bauer 25cb766dae Adds a toggle between one-off and recurring runs to NewRun page (#1274)
* Allows toggling between one-off and recurring runs in the new run page

* Clean up and adds tests

* Fix integration test - account for extra field in form

* Cleanup and PR comments
2019-05-04 11:29:37 -07:00
Riley Bauer 41b8fc26b8
Sets the background color for KFP pages (#1281)
This will prevent the pages from appearing gray when viewed within the
iframe of the greater Kubeflow console.
2019-05-03 13:19:17 -07:00
Riley Bauer bcca4ed67a Pulls most functions out of Status and into StatusUtils. Fixes run duration bug (#1262) 2019-05-02 01:28:18 -07:00
Riley Bauer 3289f43ef8 Fixes sorting in PagedTable so that it properly alternates between ascending and descending (#1261) 2019-05-02 00:42:16 -07:00
Ilias Katsakioris 07cb50ee0c Extend the DSL to implement the design of #801 (#926)
* SDK: Create BaseOp class

* BaseOp class is the base class for any Argo Template type
* ContainerOp derives from BaseOp
* Rename dependent_names to deps

Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>

* SDK: In preparation for the new feature ResourceOps (#801)

* Add cops attributes to Pipeline. This is a dict having all the
  ContainerOps of the pipeline.
* Set some processing in _op_to_template as ContainerOp specific

Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>

* SDK: Simplify the consumption of Volumes by ContainerOps

Add `pvolumes` argument and attribute to ContainerOp. It is a dict
having mount paths as keys and V1Volumes as values. These are added to
the pipeline and mounted by the container of the ContainerOp.

Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>

* SDK: Add ResourceOp

* ResourceOp is the SDK's equivalent for Argo's resource template
* Add rops attribute to Pipeline: Dictionary containing ResourceOps
* Extend _op_to_template to produce the template for ResourceOps
* Use processed_op instead of op everywhere in _op_to_template()
* Add samples/resourceop/resourceop_basic.py
* Add tests/dsl/resource_op_tests.py
* Extend tests/compiler/compiler_tests.py

Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>

* SDK: Simplify the creation of PersistentVolumeClaim instances

* Add VolumeOp: A specified ResourceOp for PVC creation
* Add samples/resourceops/volumeop_basic.py
* Add tests/dsl/volume_op_tests.py
* Extend tests/compiler/compiler_tests.py

Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>

* SDK: Emit a V1Volume as `.volume` from dsl.VolumeOp

* Extend VolumeOp so it outputs a `.volume` attribute ready to be
  consumed by the `pvolumes` argument to ContainerOp's constructor
* Update samples/resourceop/volumeop_basic.py
* Extend tests/dsl/volume_op_tests.py
* Update tests/compiler/compiler_tests.py

Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>

* SDK: Add PipelineVolume

* PipelineVolume inherits from V1Volume and it comes with its own set of
  KFP-specific dependencies. It is aligned with how PipelineParam
  instances are used. I.e. consuming a PipelineVolume leads to implicit
  dependencies without the user having to call the `.after()` method on
  a ContainerOp.
* PipelineVolume comes with its own `.after()` method, which can be used
  to append extra dependencies to the instance.
* Extend ContainerOp to handle PipelineVolume deps
* Set `.volume` attribute of VolumeOp to be a PipelineVolume instead
* Add samples/resourceops/volumeop_{parallel,dag,sequential}.py
* Fix tests/dsl/volume_op_tests.py
* Add tests/dsl/pipeline_volume_tests.py
* Extend tests/compiler/compiler_tests.py

Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>

* SDK: Simplify the creation of VolumeSnapshot instances

* VolumeSnapshotOp: A specified ResourceOp for VolumeSnapshot creation
* Add samples/resourceops/volume_snapshotop_{sequential,rokurl}.py
* Add tests/dsl/volume_snapshotop_tests.py
* Extend tests/compiler/compiler_tests.py

NOTE: VolumeSnapshots is an Alpha feature at the time of this commit.

Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>

* Extend UI for the ResourceOp and Volumes feature of the Compiler

* Add VolumeMounts tab/entry (Run/Pipeline view)
* Add Manifest tab/entry (Run/Pipeline view)
* Add & Extend tests
* Update tests snapshot files

Signed-off-by: Ilias Katsakioris <elikatsis@arrikto.com>

* Cleaning up the diff (before moving things back)

* Renamed op.deps back to op.dependent_names

* Moved Container, Sidecar and BaseOp classed back to _container_op.py
This way the diff is much smaller and more understandable. We can always split or refactor the file later. Refactorings should not be mixed with genuine changes.
2019-04-25 10:40:48 -07:00
Riley Bauer 4de20179c6 Update to version 3.0.2 of npm package 'extend' (#1211)
* Update to version 3.0.2 of npm package 'extend'

* Use 'new' with Storage
2019-04-24 10:24:10 -07:00
Alexey Volkov 173ecbda4c Marked all scripts as executable (#1177) 2019-04-23 16:12:00 -07:00
Riley Bauer b29266351e Allow creating runs without experiments (#1175)
* Adds 'Create run' button to experiment list / all runs page

* Add run without experiment and filtering to FE integration test

* Update snapshots

* Add refresh and wait to integration test

* Adjust

* Adjust

* Don't exit integration test early if npm test fails

* PR comments

* TEMP - take screenshots to debug integration test

* Store screenshots

* Remove create run without experiment integration test for now as it fails due to the default experiment being deleted at the end of the API initialization and integration test suites
2019-04-22 11:59:45 -07:00
Riley Bauer 72b0914868
Fixes deletion of recurring runs (#1185)
* Fixes deletion of recurring runs and redirects after deleting pipeline from pipeline details page

* Add comment for deletion on recurring run and pipeline details pages

* Remove refreshOnComplete flag from buttons
2019-04-22 10:45:30 -07:00
Riley Bauer ce8071566f
Removes unnecessary API calls (#1144)
From the ExperimentDetails and ExperimentList pages, calls to getRun and
getExperiment are removed.

From the RunList page, calls to getRun are removed.
2019-04-11 17:41:08 -07:00
Riley Bauer c5a727abf7 Removes link to Kubeflow privacy links as KFP no longer runs Spartakus (#1074) 2019-04-01 11:36:34 -07:00
Riley Bauer 94925ff2bd Add run termination controls to ui (#1039)
* Update swagger definitions

* WIP - Adds ability to terminate runs to frontend

* Update snapshots

* Adds tests. Also changes warning message color to orange rather than red

* Remove refresh button from run details page

* Elaborate terminate confirmation message

* Minor fixes

* Remove references to refresh button from integration tests
2019-04-01 10:18:35 -07:00
IronPan 2bde76092a remove jupyter hub link from UI (#1046)
* remove jupyter hub link from UI

* remove jupyter hub link from UI

* remove jupyter hub link from UI
2019-03-29 22:49:08 -07:00
Riley Bauer afcecbb480 Improve runtime graph exit-handler node name (#1059)
* Gives the exit-handler node in a runtime graph a human readable name

Also adds tooltips for full node names in graphs.

* Adds tests
2019-03-28 21:24:12 -07:00