Commit Graph

332 Commits

Author SHA1 Message Date
Mathew Wicks 500f5c61ef initial notebook server images README.md (kubeflow/kubeflow#5818) 2021-04-08 10:19:03 -07:00
Kimonas Sotirchos 149a986d3d Add CI format checks for the Jupyter web app (kubeflow/kubeflow#5811)
* jwa(front): Add npm rule for checking the format

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* ci: Add common tasks for format checks

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* ci(jwa): Add format check tasks

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* jwa(back): Fix formatting

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* jwa(front): Fix formatting

Run `npm run format:write` on frontend

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* jwa(front): Include prettier in package.json

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* jwa(docker): Don't copy node_modules in Dockerfile

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps: Add global dockerignore file

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* jwa: Remove unused dockerignore file

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* jwa(make): Don't include dockerignore and cleanup

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2021-04-08 03:51:02 -07:00
DavidSpek a0069797df Update image tags and python packages in pytorch and tensorflow full dockerfiles (kubeflow/kubeflow#5817) 2021-04-08 03:50:02 -07:00
DavidSpek e78477ec5d Update second layer docker images to new tags and some python deps (kubeflow/kubeflow#5809) 2021-04-08 02:11:02 -07:00
DavidSpek 686667f5bd Update notebook server base images (kubeflow/kubeflow#5804) 2021-04-06 04:22:00 -07:00
DavidSpek 94390858bc Specify commonLabels for tensorboard-controller (kubeflow/kubeflow#5780) 2021-03-26 03:35:46 -07:00
DavidSpek 50445138fe (manifests): Remove unused params that break newer kustomize for web apps (kubeflow/kubeflow#5768) 2021-03-24 08:04:45 -07:00
DavidSpek 4842c53f7a Update manifests to use ECR and fix fieldPath in kustomization files (kubeflow/kubeflow#5765)
* Update manifests to use ECR and latest image tags

* remove duplicate value in central-dashboard kustomization.yaml
2021-03-24 07:35:45 -07:00
Kimonas Sotirchos facf6073e5 web-apps: Introduce an APP_SECURE_COOKIES env var (kubeflow/kubeflow#5764)
* web-apps(back): Introduce APP_SECURE_COOKIES var

Expose a new APP_SECURE_COOKIES env variable that will configure whether
the web apps should set Secure cookies or not.

This will allow the admins to configure the web apps to work when
Kubeflow is exposed over localhost/http.

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps(back): Switch CSRF checks order

The order the backend makes the CSRF checks should be the following:
1. check if the CSRF cookie is present
2. check if the CSRF header is present
3. check if the CSRF cookie and header have the same value

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps: Set APP_SECURE_COOKIES to false in dev

When running the web apps via the makefiles in dev mode we will need to
explicitly set the APP_SECURE_COOKIES env var to False, since the app
will be served over http.

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2021-03-24 05:16:45 -07:00
DavidSpek b89ce2ce21 (JWA): Add RStudio trademark statement in Notebook Spawner UI (kubeflow/kubeflow#5758)
* Add RStudio trademark statement

* move tooltip position to the right of the RStudio button

* fix labels of icons

* RStudio trademark tooltip on index page, remove title jupyter-icon
2021-03-23 13:05:44 -07:00
DavidSpek 165d7d7241 (JWA): update manifests with latest notebook image tags (kubeflow/kubeflow#5757) 2021-03-23 12:30:44 -07:00
DavidSpek 713f0bc2d3 Add notebook-server-rstudio-tidyverse dockerfile and CI/CD (kubeflow/kubeflow#5711)
* Add notebook-server-rstudio-tidyverse dockerfile and CI/CD

* cleanup rstudio tidyverse notebook image

Co-authored-by: Mathew Wicks <thesuperzapper@users.noreply.github.com>
2021-03-23 10:28:44 -07:00
Mathew Wicks 447c63bb03 set TZ in rstudio notebook image (kubeflow/kubeflow#5756) 2021-03-23 09:53:44 -07:00
Kimonas Sotirchos a144fcae46 Update the manifests for the Jupyter web app (kubeflow/kubeflow#5741)
* manifests: Add variable for the app's prefix

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* manifests: Remove Rok variables

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* manifests: Use AWS image

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* manifests: Update the spawner-config.yaml file

* Add the ImagePullPolicy setting
* Don't name the config `jupyter-web-app-jupyter-web-app-config`

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* manifests: Permissions to start/stop nbs

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* Add latest jupyter images

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2021-03-23 08:50:44 -07:00
Kimonas Sotirchos 0fe8bf5463 Tensorboards web app manifests: Don't use specific namespace in base (kubeflow/kubeflow#5753)
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2021-03-23 08:46:44 -07:00
DavidSpek 1d9c808db7 Add notebook-server-rstudio dockerfile and CI/CD (kubeflow/kubeflow#5624)
* Add R-Studio image

* cleanup rstudio notebook server image
2021-03-23 07:37:44 -07:00
DavidSpek 8bff0c78b5 Fix conda activation for JupyterLab in full images + cleanup (kubeflow/kubeflow#5748) 2021-03-22 10:09:17 -07:00
DavidSpek 93b9c01880 Fix conda activation for JupyterLab + cleanup (kubeflow/kubeflow#5743) 2021-03-22 08:45:17 -07:00
DavidSpek 9cb33192f1 Update notebook dependency + cleanup (kubeflow/kubeflow#5744) 2021-03-22 08:10:17 -07:00
DavidSpek c934536e2c Fix conda activation in notebook-server-base for JupyterLab (kubeflow/kubeflow#5742) 2021-03-22 07:48:18 -07:00
DavidSpek 90a8e02fc1 (JWA): Add server type selector for jupterlab, vs-code and r-studio (kubeflow/kubeflow#5646)
* jwa(back): ability to setting annotations on NB resource

* jwa(back): update spanwer yaml, dump logo from yaml if file doesn't exist

* jwa(front): add annotations and VSCode/RStudio image types/config

* jwa(front): add server type toggle to UI

* jwa(front): set annotations in notebook request based on server-type

* jwa(front): add server type column to index page

* review: improve button toggle formatting

* jwa(back): set rstudio-tidyverse image in spawner_ui_config

* review: move rewrite and headers to backend

* review: add logo SVGs and set them in environment*.ts

* review: fix how allowing custom images works

* review: add server type logo to index
2021-03-22 05:09:18 -07:00
DavidSpek 7bde2e7e71 Add notebook-server-codeserver-python dockerfile and CI/CD (kubeflow/kubeflow#5700)
* Add notebook-server-codeserver-python dockerfile and CI/CD

* cleanup codeserver python image

Co-authored-by: Mathew Wicks <thesuperzapper@users.noreply.github.com>
2021-03-22 03:58:17 -07:00
DavidSpek ca6323c7d5 Add notebook-server-jupyter-scipy dockerfile and CI/CD (kubeflow/kubeflow#5699)
* Add notebook-server-jupyter-scipy dockerfile and CI/CD

* cleanup jupyter scipy image

Co-authored-by: Mathew Wicks <thesuperzapper@users.noreply.github.com>
2021-03-22 00:32:17 -07:00
DavidSpek f0aaa691d3 Add notebook-server-jupyter-tensorflow-full dockerfiles and CI/CD (kubeflow/kubeflow#5632) 2021-03-22 00:16:17 -07:00
Kimonas Sotirchos ca44b1c4ee Manifests for Tensorboard controller (kubeflow/kubeflow#5730)
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2021-03-21 14:28:17 -07:00
DavidSpek 149393118e Add listing nodes to JWA ClusterRole for GPU vendor detection (kubeflow/kubeflow#5732) 2021-03-21 13:48:17 -07:00
DavidSpek 98d9c5b152 Add notebook-server-codeserver dockerfile and CI/CD (kubeflow/kubeflow#5625)
* Add Code-Server (VS-Code) image

* cleanup codeserver notebook image

Co-authored-by: Mathew Wicks <thesuperzapper@users.noreply.github.com>
2021-03-21 12:20:17 -07:00
DavidSpek 85859c8998 Add notebook-server-tensorflow dockerfiles and CI/CD (kubeflow/kubeflow#5627)
* Add TensorFlow CPU base image

* cleanup jupyter tensorflow notebook images

Co-authored-by: Mathew Wicks <thesuperzapper@users.noreply.github.com>
2021-03-21 11:48:17 -07:00
DavidSpek 321d60d916 Add notebook-server-jupyter-pytorch-full dockerfiles and CI/CD (kubeflow/kubeflow#5631) 2021-03-21 10:48:17 -07:00
DavidSpek 8908bde330 Add notebook-server-jupyter-pytorch dockerfiles and CI/CD (kubeflow/kubeflow#5626)
* Add pytorch base images

* cleanup jupyter pytorch notebook image

* rename jupyter pytorch dockerfiles

* fix typo

Co-authored-by: Mathew Wicks <thesuperzapper@users.noreply.github.com>
2021-03-21 09:07:17 -07:00
DavidSpek 3a7bd2d716 Add notebook-server-jupyter dockerfile and CI/CD (kubeflow/kubeflow#5623)
* Add base dockerfile for all jupyter based images

* cleanup jupyter notebook image

Co-authored-by: Mathew Wicks <thesuperzapper@users.noreply.github.com>
2021-03-21 08:11:17 -07:00
DavidSpek fe7e662392 Add notebook-server-base dockerfile and CI/CD (kubeflow/kubeflow#5622)
* Add base dockerfile for all Web-IDE images (jupyter, r-studio, vs-code)

remove sudo from image

Add S6-overlay

Change naming and add CD

Add ci build test

change naming in prow config to avoid character limit

Add OWNERS file

rename folder

rename folder (again)

remove labels

Rename to the final folder

* cleanup base notebook image Dockerfile

Co-authored-by: Mathew Wicks <thesuperzapper@users.noreply.github.com>
2021-03-21 04:50:17 -07:00
Kimonas Sotirchos 8db0c6120d Manifests for the Volumes web app (kubeflow/kubeflow#5728)
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2021-03-19 16:22:17 -07:00
Kimonas Sotirchos 0aeda30689 Manifests for Tensorboards web app (kubeflow/kubeflow#5727)
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2021-03-19 16:21:17 -07:00
Yannis Zarkadas 22e4cecf56 fix notebook controller manifests (kubeflow/kubeflow#5729)
* notebook-controller: Remove manager from gitignore

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

* notebook-controller: Add missing manifests

Signed-off-by: Yannis Zarkadas <yanniszark@arrikto.com>
2021-03-19 16:09:17 -07:00
Yannis Zarkadas ae3b53f8d2 Notebook Controller: Consolidate manifests (kubeflow/kubeflow#5723)
* notebook-controller: Modify kubebuilder manifests

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

* notebook-controller: Set storageVersion to v1

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

* notebook-controller: Fix RBAC

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

* notebook-controller: Regenerate manifests

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

* notebook-controller: Remove unused kubebuilder manifests

Signed-off-by: Yannis Zarkadas <yanniszark@arrikto.com>
2021-03-19 10:22:16 -07:00
Yannis Zarkadas da3c7a6642 jupyter-web-app: Consolidate manifests (kubeflow/kubeflow#5721)
Signed-off-by: Yannis Zarkadas <yanniszark@arrikto.com>
2021-03-19 10:16:16 -07:00
Kimonas Sotirchos 08433d6394 web-apps: Extend common code for the apps to work in standalone mode (kubeflow/kubeflow#5710)
* web-apps(back): Introduce an APP_NO_AUTHNZ env var

The admin can use the APP_NO_AUTHNZ={True,False} to configure if the
application should perform authnz checks or not.

In case of False, then the app will not be expecting a logged in user, in the
`kubeflow-userid` header, and will not perform authorization checks using
SubjectAccessReviews.

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps(front): Expose if Dashboard is connected

The NamespaceService will also provide an observable that informs
different parts of the app if the CentralDashboard is present.

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* review: Use enumeration for Dashboard state

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* review: Move common vars to a settings module

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2021-03-18 13:16:16 -07:00
Kimonas Sotirchos ebbd123359 Fixes in Tensorboard web app (kubeflow/kubeflow#5693)
* twa(front): Use correct base-href when building

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps(backend): Fix regex for parsing prefix

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* twa: Add git tag while building the image

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* twa: Fix dockerfile for buster-slim image

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* twa: Use common date-time component to show date

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* twa(back): Fetch the name directly from the CR

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* review: Remove unused npm script

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* twa: Don't override the app's config

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* twa: Use correct AWS image in Makefile

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* review: Use bash in Dockerfile entrypoint

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2021-03-18 12:26:16 -07:00
Kimonas Sotirchos a63eff43ed Volumes Management UI (kubeflow/kubeflow#5684)
* vwa(back): first commit of volumes web app backend

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* vwa(front): init code for volumes web app frontend

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* vwa: {Make,Docker}files

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* vwa: gitignore

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* vwa: README

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* review: Rename Jupyter to Volumes in README

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* review: Rephrase comment in default flavor

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* review: Remove snapshot reference from default flavor

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2021-03-18 01:07:16 -07:00
DavidSpek a1e52c2b9e (Notebook-controller): Add `http-rewrite-uri` and `http-headers-request-set` annotations (kubeflow/kubeflow#5660)
Co-authored-by: Mathew Wicks <thesuperzapper@users.noreply.github.com>
2021-03-12 04:14:24 -08:00
Rui Fang 7f9c309586 Tesorboard-Controller: use updateStatus instead of update (kubeflow/kubeflow#5644) 2021-03-10 07:46:24 -08:00
dependabot[bot] d110b9670c Bump lodash from 4.17.15 to 4.17.21 in /components/crud-web-apps/common/frontend/kubeflow-common-lib (kubeflow/kubeflow#5674)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-10 03:33:23 -08:00
dependabot[bot] 6dbf07487a Bump lodash-es from 4.17.11 to 4.17.14 in /components/crud-web-apps/common/frontend/kubeflow-common-lib (kubeflow/kubeflow#5475)
Bumps [lodash-es](https://github.com/lodash/lodash) from 4.17.11 to 4.17.14.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.14)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-10 03:32:23 -08:00
Yannis Zarkadas b0f13d6ef4 Jupyter Web App: Move manifests development upstream (kubeflow/kubeflow#5613)
As part of the work of wg-manifests for 1.3
(https://github.com/kubeflow/manifests/issues/1735), we are moving manifests
development in upstream repos. This gives the application developers full
ownership of their manifests, tracked in a single place.

This commit copies the manifests for application `Jupyter Web App`
from path `apps/jupyter/jupyter-web-app/upstream` of kubeflow/manifests to path
`components/crud-web-apps/jupyter/manifests` of the upstream repo (https://github.com/kubeflow/kubeflow).

Signed-off-by: Yannis Zarkadas <yanniszark@arrikto.com>
2021-03-04 14:31:48 -08:00
DavidSpek 738e438c98 Fix entrypoint of crud-jwa (kubeflow/kubeflow#5606)
* Fix entrypoint of crud-jwa

* remove APP_PREIX ENV variable from entrypoint
2021-03-02 04:31:47 -08:00
Yannis Zarkadas 3f94f691c3 Notebook Controller: Move manifests development upstream (kubeflow/kubeflow#5608)
As part of the work of wg-manifests for 1.3
(https://github.com/kubeflow/manifests/issues/1735), we are moving manifests
development in upstream repos. This gives the application developers full
ownership of their manifests, tracked in a single place.

This commit copies the manifests for application `Notebook Controller`
from path `apps/jupyter/notebook-controller/upstream` of kubeflow/manifests to path
`components/notebook-controller/config` of the upstream repo (https://github.com/kubeflow/kubeflow).

Signed-off-by: Yannis Zarkadas <yanniszark@arrikto.com>
2021-02-17 18:24:51 -08:00
Kimonas Sotirchos 89f7784383 web-apps(front): Make the library tests run in CI (kubeflow/kubeflow#5564)
In order for the frontend tests to run in a CI system, which will be
using a container to run them, we will need to make some adjustments.

Namely, we will need to:
* Run a headless version of Chrome
* Run the `ng test` in non-watch mode, in order for the testing process
  to terminate and not watch for changes to the codebase.

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2021-02-01 23:14:27 -08:00
Kimonas Sotirchos c38a706299 web-apps(back): Export package code for wheel (kubeflow/kubeflow#5569)
* web-apps(back): Export package code for wheel

When building the wheel we need to define Python packages

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* Don't include init in root dir

We don't want to have an init file in the setup directory

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2021-01-29 08:25:40 -08:00
Kimonas Sotirchos b965467590 web-apps: Fixes to the common code (kubeflow/kubeflow#5567)
* web-apps(back): Fetch the correct default SC

The backend would only check for the annotation of the default
StorageClass but not if it's value would be true/false.

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps(back): Fetch Pod logs

Extend the common backend libraries to fetch pod logs

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps(front): Add global variables.scss

Since we will need the page padding in multiple places we'll create a
scss file to store these values.

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps(front): Export the Dialog module

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps(front): Rework the Toolbar component

* Add option to make button to be stroked
* Don't emit an event when a button is clicked. Expect a function which
  will be executed from this component.
* Put all the buttons on the right to mimic Pipelines UI

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps(front): Make the app's background white

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps(front): Export commonly used modules

The mat-divider and mat-icon modules are oftenly used so we could
include them in the exports of the KubeflowModule.

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps(front): Key-val should be on top in list

In the list that shows key-valu pairs in lines we want the key to remain
on top if the value has a big height. Previously the key-title would be
in the middle height of the value, which looked weird.

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps(front): Add a Comment component for forms

This is used to explain different sections in the form.

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps(front): Bar at the bottom for every form

We want our forms to have a bar on the bottom with CREATE CANCEL buttons
and the ability to view the yaml contents of a CR.

This component is only used for visualization. The logic component
should be handling this component via this component's inputs/outputs

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps(front): General purpose css

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* web-apps(front): Make k8s fields optional

We might need to instantiate a k8s objecti with only some of the
subfields, like only the spec and not metadata.

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* remove redundant link class

Co-authored-by: Tasos Alexiou <tasos@arrikto.com>

* support fit-content for firefox as well

Co-authored-by: Tasos Alexiou <tasos@arrikto.com>

* firefox fit-content support

Co-authored-by: Tasos Alexiou <tasos@arrikto.com>

* use button instead of span

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

Co-authored-by: Tasos Alexiou <tasos@arrikto.com>
2021-01-29 07:03:40 -08:00