GithubHelp home page GithubHelp logo

opendatahub-io / odh-dashboard Goto Github PK

View Code? Open in Web Editor NEW
26.0 15.0 137.0 22.13 MB

Dashboard for ODH

License: Apache License 2.0

HTML 0.01% JavaScript 0.66% Makefile 0.06% Shell 0.04% SCSS 0.59% TypeScript 98.61% Dockerfile 0.03%
dashboard

odh-dashboard's Introduction

odh-dashboard's People

Contributors

alexcreasy avatar andrewballantyne avatar ashley-o0o avatar cfchase avatar christianvogt avatar daodaonocode avatar dependabot[bot] avatar dgutride avatar dlabaj avatar dpanshug avatar gitdallas avatar gkrumbach07 avatar jeff-phillips-18 avatar jenny-s51 avatar jpuzz0 avatar lavlas avatar lucferbux avatar manaswinidas avatar maroroman avatar mlassak avatar mturley avatar openshift-ci[bot] avatar openshift-merge-bot[bot] avatar openshift-merge-robot avatar parthsoni95 avatar pnaik1 avatar ppadti avatar rsun19 avatar taneem-ibrahim avatar uidoyen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

odh-dashboard's Issues

[BYON] Implement GET /notebook REST endpoint.

Implement the /notebook input for GET to retrieve the list of custom note book images. This should return a list of custom note book images according to the REST API specification.

Update Nodejs backend to support Post, Put, and Delete.

Currently we do not support POST, PUT, and DELETE from the UI on the NodeJS backend. This is due to security settings found here:

export const addCORSHeader = (req: FastifyRequest, reply: FastifyReply): void => {

We need to update the CORs headers so we can successfully support the REST commands above. Once this is done we should update our current UI / backend api to use the correct REST commands.

[BYON] Enable toggle broken when clicked repeatedly

Describe the bug
On first click on the enable toggle, proper payload is sent out. Any consecutive click doesn't behave properly and doesn't toggle

Steps To Reproduce
Steps to reproduce the behavior:

  1. Go to Settings -> Notebook Images
  2. Have enabled image
  3. Click on Enable to disable image
  4. See image disabled
  5. Click on Enable again to enable image back
  6. See image stay disabled
  7. Repeat for how long you'd like

Expected behavior
It toggles the visibility properly and every time.

Additional context

true-2022-04-12_15.15.46.mp4

/cc @dlabaj

Add CI test to require that every input and clickable element has a unique id attribute

Is your feature request related to a problem? Please describe.
To support automated testing of the Dashboard UI, there should be a test to required that every input and clickable element has an id attribute to ensure that it is easy to find using xpath.

Describe the solution you'd like
This id attribute name or header should be "static" and unique so that the name does not change each release can be search with relative precision when the same element appears multiple times in the page

Describe alternatives you've considered
CI test would be best so it could be run against every PR

Additional context
N/A

[BYON] Enable toggle is enabled on images being imported/validated

Describe the bug
Enable toggle should be clickable only if the phase is Succeeded, in any other phase it should be disabled.

Steps To Reproduce
Steps to reproduce the behavior:

  1. Settings -> Notebook Images
  2. Import new image
  3. Observe phase Importing
  4. See that enable toggle is clickable
  5. Wait for phase to turn into Validating
  6. See that enable toggle is still clickable

Expected behavior
Visibility should be changeable only on image in Succeeded state

Additional context

true-2022-04-12_13.37.41.mp4

/cc @dlabaj

define available components via openshift labels on the routes

I can't tell if you are already doing this from the code: Was thinking it might be elegant to have the dash just look for available routes by a special odh label. That would also make it easy to customize with additional routes for a customer, if desired.

I see you have a sort of javascript database of attributes. Conceivably it could all be stored in configmaps created by the operator, which also could be extended by adding custom configmaps.

converge red-hat-data-services fork

Most of the active development seems to be happening in https://github.com/red-hat-data-services/odh-dashboard which is as of now 39 commits ahead of this upstream version.
The red-hat-data-services fork can expose additional content like tutorials via the data directory.
This is useful for other installations of ODH, like https://www.operate-first.cloud/

Unfortunately, the configuration of the widgets in the data directory is maintained right in the repository, which makes it hard to install a version with a different set of widgets

[BYON] Design REST API for BYON

Design the rest API for BYON. This is needed to get agreement on what should be implemented between the backend and frontend.

[KFNBC] User name check against dedicated-admins membership does not match against Google auth user with [email protected]

Describe the bug
When logging into the cluster via Google Authentication, the user is created with <ORG USERNAME>@<Google Apps Org Domain> as their ocp username. When the full username is added to the dedicated-admins groups the Dashboard won't enable settings due to it finding the user use <ORG USERNAME> without the domain

I am not sure if this is restricted to Google as the Identity Provider

Steps To Reproduce
Steps to reproduce the behavior:

  1. Add an OCP identity provider with Google for authentication
  2. Add the Google user to the dedicated-admins group
  3. Login to the ODH Dashboard and see that admin Settings are not visible in the UI
  4. Check the OCP users to confirm that they do exists oc get users <ORG USERNAME>@<Google Apps Org Domain>

Expected behavior
The dedicated-admins user membership check works based on the actual OCP user name that is created

Workaround (if any)
Add the shortname for the user to the dedicated-admins group

Open Data Hub Version
BYON notebook build

Dashboard Version
v1.0.11

OpenShift Version
Version #: 4.10
Provider: OpenShift Dedicated

Additional context
Add any other context about the problem here.

How to build the image?

Please provide a how-to for building the application image (so that we can setup automation for it in the future)

Add ability for ISV Data to be installed via operator.

Currently the ISV data (application definitions, getting started markdown, quickstarts, and documentation resources) exist in yaml files that are checked into the odh-dashboard repo and installed/read locally on the odh-dashboard pod.ย 

These yaml files should be installed separately by the operator so that they can be easily updated and new ISVs can be added without rereleasing and deploying the dashboard.

The following PRs need to be updated to get this feature into ODH.

#97
opendatahub-io/odh-manifests#482

Add ability to have Cluster Settings for ODH Administrators

An ODH administrator would like to have the ability to have cluster settings where they can set, enable, and disable specific features. These features include things such as PVC, set idle times for their netbooks, etc. See the mockup below:

https://marvelapp.com/prototype/8jb2bb8/screen/85378714

In order to support these features, we need to add the ability to show the Cluster Settings section when an ODH administrator is logged into the ODH Dashboard.

Add feature flag for enabling telemetry in the Dashboard

Is your feature request related to a problem? Please describe.
Telemetry is enabled downstream but should be disabled by default for ODH Dashboard deployments

Describe the solution you'd like
Add a feature flag to enabled/disable telemetry

Describe alternatives you've considered
Add an optional build flag that can be toggled to include it in the image

Additional context
N/A

[BYON] Implement POST /notebook endpoint

Implement the /notebook input for POST to import a custom note book image. This should import the specified notebook image according to the REST API specification.

Add support for dynamically loading the branding assests for ODH

Is your feature request related to a problem? Please describe.
In order to support the use of ODH in the downstream component, we should support the dynamic loading of branding assets for the dashboard.

Describe the solution you'd like
Ideally this would be supported at build time to allow us to easily override assets for ODH branding vs downstream

Describe alternatives you've considered
N/A

Additional context
N/A

Simplify deployment

If you remove the namespaceentries from install/odh/base/kustomization.yamland install/odh/base/role_binding.yaml, the overlay called default is not needed for a standard ODH deployment and you can directly add:

- kustomizeConfig:
        repoRef:
          name: dashboard
          path: install/odh
      name: odh-dashboard

and

    - name: dashboard
      uri: 'https://github.com/opendatahub-io/odh-dashboard/tarball/master'

to the ODH instance YAML.
That's much easier imho than the deploy.sh script, plus it's the "standard" way to deploy an ODH component, which will make it easier to merge this as a standard component in a next release. namespace is not needed as the operator will take care of the deployment of all components in the right one.
I did not make a PR yet as I did not know what was the intent behind the deploy script, but I can easily as it's already implemented in my fork.

Enable ODH Dashboard Admin & User groups

Is your feature request related to a problem? Please describe.
In order to support administrative features in the dashboard, we should enable support for authenticated admin and users groups for the Dashboard

Describe the solution you'd like
Enable default admin & user groups for the dashboard

Describe alternatives you've considered
N/A

Additional context
N/A

[KFNBC] UI - Add KFNB controller support to dashboard

We need to be able to support KFNB controller by displaying a tile to the user and allowing them to do the following:

Requirements:

  • Add notebooks panel / tile to the ODH dashboard (only visible if notebooks CRD exists).
  • Create route to KFNB page.
  • Create initial page with UI from protoype / spawner
  • Create a notebook object (only name and image). (API docs are missing)
  • Create the corresponding route to expose the notebook pod.
  • Add screen that displays the UI for KFNBC similar to the spawner UI for juypter hub.
    -- Images - Done (#254)
    -- Sizes - In progress (#238)
    -- GPUs (if applicable) - In progress #158 #264
    -- Environment variables - Included in Notebook object
    -- Secrets - In Progress (#256)
  • Add ability to start and stop the notebook based on mockup below.
  • Culling notebook support for current notebooks being added here #120 should also be supported for KFNBC.
  • #273

Mockups for KFNBC: https://marvelapp.com/prototype/90ii3fd/screen/85876386

Refactor frontend Redux Implementation

Is your feature request related to a problem? Please describe.
Instead of using createStore, combineReducers and apply redux-thunk middleware manually, I think it would be helpful to import @reduxjs/toolkit. It contains configureStore function which will do all the things above and it contains other functions like createAsyncThunk to help better create async redux functions. Maybe it would be easier to develop and maintain the redux store of the project in the future?

Describe the solution you'd like
Refactor store, actions, reducers of redux with @reduxjs/toolkit.

Explore allowing an administrator to enable/disable ODH components from UI

With access to the kfdef file, we could allow authorized users to update the installed components of Open Data Hub. This would require authentication through "Login with OpenShift" and verify they have access. You could allow users to customize kfdef fields with a forms wizard.

Requirements:

  • Allow users to Login with OpenShift
  • Allow components to be correctly:
    • installed
    • updated
    • uninstalled

Screenshot from 2020-08-31 13-31-19

Screenshot from 2020-08-31 13-31-23

Screenshot from 2020-08-31 13-30-58

[BYON] API authentication

ODH Dashboard part responsible for BYON should be available to authenticated users only. This seems to be supported for frontend, though we need to ensure the backend REST API endpoints are available to authenticated users only as well. Since the API is open to the internet, anybody can initiate an import potentially adding malicious or phishing (same name as other already available images) images... This should be mitigated.

/cc @LaVLaS @dlabaj

[BYON] Add support for notebook image inspection or validation when Pipelines are not installed

Is your feature request related to a problem? Please describe.
The BYON UI should gracefully handle environments where Pipelines are not installed.

Possible Solution
If the cluster does not have Pipelines, the UI should:

  • Disable/Hide the 'Status' column since verification can not be performed
    --OR--
  • Fallback to a k8s native object (Job?) that can perform minimal verification/introspection

Describe alternatives you've considered
N/A

Additional context
N/A

Add ability to process markdown/rdoc and display as documentation/tutorials

We should restructure the dashboard to include internal documentation. A user with no JS knowledge should be able to create a document that is parsed and adds documentation to a the navbar menu and a set of well formatted documentation. That documentation, links specific to the ODH installation, and may also include code or notebooks.

Screenshot from 2020-08-31 13-07-31

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.