pipelines/frontend
Redback 9281ea1341 Updated README Swagger CodeGen version (#2228) 2019-09-24 22:49:59 -07:00
..
.vscode Initial commit of the kubeflow/pipeline project. 2018-11-02 14:02:31 -07:00
__mocks__ Initial commit of the kubeflow/pipeline project. 2018-11-02 14:02:31 -07:00
backstop_data Initial commit of the kubeflow/pipeline project. 2018-11-02 14:02:31 -07:00
mock-backend Add endpoint to allow custom visualizations (#1931) 2019-08-26 14:22:37 -07:00
public updated favicon to monochrome color (#118) 2018-11-06 20:09:17 -08:00
server Adds Metadata Artifacts to UI (#2057) 2019-09-06 13:19:19 -07:00
src Execution detail page shows inputs and outputs (#2155) 2019-09-20 07:57:00 -07:00
third_party Frontend - Show customized task display names (#1463) 2019-06-06 17:36:32 -07:00
.gitignore Initial commit of the kubeflow/pipeline project. 2018-11-02 14:02:31 -07:00
Dockerfile Make wget quieter (#2069) 2019-09-09 14:32:54 -07:00
OWNERS add us to OWNERS for SHA (#2047) 2019-09-19 13:50:58 -07:00
README.md Updated README Swagger CodeGen version (#2228) 2019-09-24 22:49:59 -07:00
analyze_bundle.js Initial commit of the kubeflow/pipeline project. 2018-11-02 14:02:31 -07:00
backstop.json Initial commit of the kubeflow/pipeline project. 2018-11-02 14:02:31 -07:00
backstop.ts Initial commit of the kubeflow/pipeline project. 2018-11-02 14:02:31 -07:00
gen_licenses.js Initial commit of the kubeflow/pipeline project. 2018-11-02 14:02:31 -07:00
package-lock.json Adds Metadata Artifacts to UI (#2057) 2019-09-06 13:19:19 -07:00
package.json Add script that automatically proxies backend servers for frontend dev server (#2104) 2019-09-15 22:58:36 -07:00
start-proxies.sh Add script that automatically proxies backend servers for frontend dev server (#2104) 2019-09-15 22:58:36 -07:00
swagger-config.json Initial commit of the kubeflow/pipeline project. 2018-11-02 14:02:31 -07:00
tsconfig.json Execution detail page shows inputs and outputs (#2155) 2019-09-20 07:57:00 -07:00
tsconfig.prod.json Initial commit of the kubeflow/pipeline project. 2018-11-02 14:02:31 -07:00
tsconfig.test.json Initial commit of the kubeflow/pipeline project. 2018-11-02 14:02:31 -07:00
tslint.json Make gs:// links in metadata UI point to GCS console page (#2167) 2019-09-20 07:25:00 -07:00

README.md

Kubeflow Pipelines Management Frontend

Develop: You need npm, install dependencies using npm install.

If you made any changes to protos (see backend/README), you'll need to regenerate the Typescript client library from swagger. We use swagger-codegen-cli@2.4.7, which you can get here. Make sure the jar file is somewhere on your path with the name swagger-codegen-cli.jar, then run npm run apis.

You can then do npm start to run a static file server at port 3000 that watches the source files. This also adds a mock backend api server handler to webpack-dev-server so it can serve basic api calls, as well as a mock webserver to handle the Single Page App requests, which redirects api requests to the aforementioned mock api server. For example, requesting the pipelines page sends a fetch request to http://localhost:3000/apis/v1beta1/pipelines, which is proxied by the webserver to the api server at http://localhost:3001/apis/v1beta1/pipelines, which will return the list of pipelines currently defined in the mock database.

Using a real cluster as backend

  1. First configure your kubectl to talk to your kfp lite cluster.
  2. npm run start:proxies to start proxy servers that port forwards to your cluster.
  3. npm start to start a webpack dev server, it has already been configured to talk to aforementioned proxies.

Production Build: You can do npm run build to build the frontend code for production, which creates a ./build directory with the minified bundle. You can test this bundle using server/server.js. Note you need to have an API server running, which you can then feed its address (host + port) as environment variables into server.js. See the usage instructions in that file for more.

The mock API server and the mock webserver can still be used with the production UI code by running npm run mock:api and npm run mock:server.

Container Build:

You can also do npm run docker if you have docker installed to build an image containing the production bundle and the server pieces. In order to run this image, you'll need to port forward 3000, and pass the environment variables ML_PIPELINE_SERVICE_HOST and ML_PIPELINE_SERVICE_PORT with the details of the API server, which you can run using npm run api separately.