* web-apps(front): Define theme and typography
In this commit:
* Create a styles folder that contains all sccs files.
* Define the generic theme and typography.
Signed-off-by: Elena Zioga <elena@arrikto.com>
* web-apps(front): Use the style of the specified body-1 level
Signed-off-by: Elena Zioga <elena@arrikto.com>
* web-apps(front): Use the styles of the specified title and headline levels
Signed-off-by: Elena Zioga <elena@arrikto.com>
* web-apps(front): Use primary color in snackbar component
Signed-off-by: Elena Zioga <elena@arrikto.com>
* web-apps(front): Change back button
Signed-off-by: Elena Zioga <elena@arrikto.com>
* jwa(front): Fix imports after restructuring
Signed-off-by: Elena Zioga <elena@arrikto.com>
* jwa(front): Add mat-typography class in index.html
Signed-off-by: Elena Zioga <elena@arrikto.com>
* jwa(front): Use the style of the specified title level
Signed-off-by: Elena Zioga <elena@arrikto.com>
* jwa(front): Use primary color
Signed-off-by: Elena Zioga <elena@arrikto.com>
* vwa(front): Fix imports after restructuring
Signed-off-by: Elena Zioga <elena@arrikto.com>
* vwa(front): Add mat-typography class in index.html
Signed-off-by: Elena Zioga <elena@arrikto.com>
* vwa(front): Use the style of the specified title level
Signed-off-by: Elena Zioga <elena@arrikto.com>
* twa(front): Fix typo
Signed-off-by: Elena Zioga <elena@arrikto.com>
* twa(front): Add mat-typography class in index.html
Signed-off-by: Elena Zioga <elena@arrikto.com>
* twa(front): Fix imports after restructuring
Signed-off-by: Elena Zioga <elena@arrikto.com>
* twa(front): Use primary color
Signed-off-by: Elena Zioga <elena@arrikto.com>
* twa(front): Fix formatting
Signed-off-by: Elena Zioga <elena@arrikto.com>
* twa(front): Fix ui test
Signed-off-by: Elena Zioga <elena@arrikto.com>
---------
Signed-off-by: Elena Zioga <elena@arrikto.com>
* cdb-angular: Modify README.md port-forward instructions
Add instructions to port-forward Profiles KFAM service.
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
* web-apps(front): Modify SnackBar service to use config parameter
Modify SnackBarService to:
- Accept as a parameter a config object that will be able to include
all possible configurations MatSnackBarService
- Inject MAT_SNACK_BAR_DEFAULT_OPTIONS. This allows a structured way
for every WA to provide to the service a default configuration
app-wide for values like like HorizontalPosition and duration.
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
* cdb(front): Use Kubeflow common library
Build CDB using components from Kubeflow's common libary.
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
* cdb-angular(front): Introduce backend service and ErrorInterceptor
- Introduce backend service to handle requests to the backend
- Use snackBar service by KF common library
- Introduce ErrorInterceptor to hanlde errors in a uniform way.
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
* cdb-angular(back): Remove "kubeflowVersion" from API
Remove the "kubeflowVersion from Workgroup's API "/env-info"
endpoint since it was using CRDs which are deprecated.
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
* cdb-angular(back): Modify KF build version during runtime
By default, the version displayed in the dashboard's sidebar is the
ENV variable `BUILD_VERSION` defined during build time. With this
change, the `/api/workgroup/env-info` endpoint may now return the
build's label, version, and id which will be displayed instead of the
BUILD_VERSION. These values are assigned during runtime and can be
defined through the deployment's `KF_DASHBOARD_BUILD_LABEL`,
`KF_DASHBOARD_VERSION` and `KF_DASHBOARD_BUILD_ID` ENV variables.
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
* cdb-angular(front): Show KF version in the left sidebar
Show KF version at the bottom of the left sidebar navigation menu.
Variables that are used to show the KF version get their default values
during build time but may be modified during runtime by the
depoloyment's ENV vars fetched from the request at
'/api/workflow/env-info'.
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
* jwa(front): Update the use of SnackBarService
Update the use of SnackBarService in order to pass required data via a
`config` object.
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
* vwa(front): Update the use of SnackBarService
Update the use of SnackBarService in order to pass required data via a
`config` object.
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
* twa(front): Update the use of SnackBarService
Update the use of SnackBarService in order to pass required data via a
`config` object.
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
* web-apps(front): Fix flaky filtering unit test
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
---------
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
* twa(front): Install Cypress
- Install Cypress & npm scripts for UI tests
- Remove Protractor files
- Update README.md with UI tests instructions
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
* twa(front): Add UI tests with Cypress
Add UI tests with Cypress to check that:
- New Tensorboard form dialog has proper default values and updates
accordingly when its radio button value changes.
- Index page
* renders every tensorboard name into the table
* renders correctly Status icon for every tensorboard
* disables CONNECT button when tensorboard's status not ready
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
* gh-actions(twa): Add UI tests to TWA's frontend action
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
Fix a bug in the namespace selectors of JWA, VWA and TWA. In order to
show the namespace selector, they only checked if there is no
env.production variable available. This resulted in the selector not
showing even if there was no dashboard which is not expected.
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
Signed-off-by: Orfeas Kourkakis <orfeas@arrikto.com>
Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>
review changes
* build images with the latest tag only when a PR
is merged to master branch
* revert changes in manifests/workflows for the
notebook-server images
Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>
Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>
* jwa: Extend tests for using images of each PR
Changes:
* Introduce intergration test workflow for JWA
* Publish Docker image only when PR is merged
* Remove kind & manifest gh-action workflows
* Update tag in manifests to v1.6.0
- This change is required as images with tag v1.5.0 do not
exist in "docker.io/kubeflownotebookswg" registry.
Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>
* twa: Extend tests for using images of each PR
Changes:
* Introduce intergration test workflow for TWA
* Publish Docker image only when PR is merged
* Remove kind & manifest gh-action workflows
* Update tag in manifests to v1.6.0
- This change is required as images with tag v1.5.0 do not
exist in "docker.io/kubeflownotebookswg" registry.
Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>
* vwa: Extend tests for using images of each PR
Changes:
* Introduce intergration test workflow for VWA
* Publish Docker image only when PR is merged
* Remove kind & manifest gh-action workflows
* Update tag in manifests to v1.6.0
- This change is required as images with tag v1.5.0 do not
exist in "docker.io/kubeflownotebookswg" registry.
Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>
Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>
* jwa(front): Add source maps in the browser
* Enable source maps in both development and production.
Signed-off-by: Elena Zioga <elena@arrikto.com>
* vwa(front): Add source maps in the browser
* Enable source maps in both development and production.
Signed-off-by: Elena Zioga <elena@arrikto.com>
* twa(front): Add source maps in the browser
* Enable source maps in both development and production.
Signed-off-by: Elena Zioga <elena@arrikto.com>
Signed-off-by: Elena Zioga <elena@arrikto.com>
* twa(front): Update @angular/common package
Signed-off-by: Elena Zioga <elena@arrikto.com>
* twa(front): Fix unit tests
Signed-off-by: Elena Zioga <elena@arrikto.com>
* gh-actions: Add GH action to run TWA unit tests
Signed-off-by: Elena Zioga <elena@arrikto.com>
Signed-off-by: Elena Zioga <elena@arrikto.com>
* vwa(front): Support all-namespaces
The VWA will now be able to work with the "All namespaces" option of
the CentralDashboard.
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
* twa(front): Support all-namespaces
The TWA will now be able to work with the "All namespaces" option of
the CentralDashboard.
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
* wa(front): Add cypress attributes
Add more attributes for elements to be selectable when running e2e
tests.
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
* jwa(e2e): Add e2e tests for all-namespaces
Add a new e2e test that checks if the Namespaces column is shown
when selecting all-namespaces.
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
* dashboard: Allow all-namespaces for vwa/twa
The dashboard will be allowing the VWA and TWA to work with
all-namespaces, now that we added this functionality.
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
* jwa(front): Upgrade @angular/material package (kubeflow/kubeflow#6462)
* Upgrade @angular/material package to align the mat-chip x button.
Signed-off-by: Elena Zioga <elena@arrikto.com>
* vwa(front): Upgrade @angular/material package (kubeflow/kubeflow#6462)
* Upgrade @angular/material package to align the mat-chip x button.
Signed-off-by: Elena Zioga <elena@arrikto.com>
* twa(front): Upgrade @angular/material package (kubeflow/kubeflow#6462)
* Upgrade @angular/material package to align the mat-chip x button.
Signed-off-by: Elena Zioga <elena@arrikto.com>
Signed-off-by: Elena Zioga <elena@arrikto.com>
* updated base images in Volume Web component for multiple arch
* updated base images in Tensorboard Web component for multiple arch
* updated base images in Jupyter Web component for multiple arch
* updated admission webhook component for multiple arch
* removed goarch depedency for multiarch building
* removed goarch depedency for multiarch building in admission webhook component
* removed goarch depedency & added powerPC case for multiarch building in access-management component
* removed goarch depedency for multiarch building in tensorboard controller
* removed goarch depedency for multiarch building in notebook Controller
* Removing empty computation to resolve future build issues
* vwa(front): Enable sorting in VWA (kubeflow/kubeflow#6460)
* Enable sorting functionality in VWA.
Signed-off-by: Elena Zioga <elena@arrikto.com>
* twa(front): Enable sorting in TWA (kubeflow/kubeflow#6460)
* Enable sorting functionality in TWA.
Signed-off-by: Elena Zioga <elena@arrikto.com>
* web-apps(front): Fix unit tests
* Fix unit tests.
Signed-off-by: Elena Zioga <elena@arrikto.com>
Signed-off-by: Elena Zioga <elena@arrikto.com>
* wa(front): Use es2019 to have .flat()
Add es2019 to the tsconfig.compilerOptions.lib array in order for the
tslint linter to not complain about the use of flat().
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
* wa(front): all-namespaces requests helper
Add a helper function in the backend.service that can take care of
creating the observable that will make requests for all namespaces.
Refs arrikto/dev#1529
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
* wa(front): Disable toolbar + button on all-namespaces
Add helper methods to toolbar buttons to disable/enable them and add a
tooltip if the user selected all-namespaces.
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
* wa(front): Common logic for dynamic ns column
We want to show a `namespace` column when the user selects
all-namespaces, to make it easier to identify the different objects.
To not replicate the logic of adding and removing a column if all
namespaces was selected we moved this logic in the common table
component.
We also add an option to the component's config to disable/enable this
behavior.
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
* jwa(front): Utilize common code for all-namespaces
Update the JWA's code to work with the common code introduced to
supporting all-namespaces. This includes changes for:
* The Namespace column in the main table
* Helpers for performing requests in all namespaces
* Dynamically enabling/disabling the `+ new` button
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
* frontend: Update the linting GH Action
Ensure we run `ng lint` to check if the code is properly linted.
Previously we just did `ng lint --fix` which would try to fix the code,
and not complain about it. But this means that we don't actually check
if the code is linted.
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
* wa(front): Fix linting issues in common code
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
* gh-actions: Lint apps in parallel
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
* vwa(front): Use ng serve for local dev
Add proxy rules to connect the webpack dev server with the backend
* twa(front): Use ng serve for local dev
Refs arrikto/dev#1597
* vwa(back): Fix the install-deps make rule
Use the new common code path when installing the common packages.
* wa(front): Disable Angular analytics
Edit the angular.json file of all our frontend components to not send
Angular analytics. This way we won't be seeing a y/N input each time we
try to build the frontend, which could also block a CI/CD system.
* wa(front): Add exponential-backoff service
Create an Angular Service that handles the polling. Specifically the
polling function has as input an observable responsible for fetching the
data. It will return a final observable, which will be using the
fetch-observable, that will only be emitting the final data.
This service will take care of:
1. Checking if the new data is new and reset the polling
2. Cancelling in-flight requests, if someone terminates the subscription
* vwa(front): Use the new Polling Service
The frontend code of VWA will now be using the new Poller Service which
has a pure RxJS implementation underneath. This will make it simpler to
cancel in-flight requests and also moves the reset logic into the common
code.
* jwa(front): Use the new Polling Service
The frontend code of JWA will now be using the new Poller Service which
has a pure RxJS implementation underneath. This will make it simpler to
cancel in-flight requests and also moves the reset logic into the common
code.
* twa(front): Use the new Polling Service
The frontend code of TWA will now be using the new Poller Service which
has a pure RxJS implementation underneath. This will make it simpler to
cancel in-flight requests and also moves the reset logic into the common
code.
* jwa(front): Upgrade @kubernetes/client-node module
* Upgrade @kubernetes/client-node module, so that to include
quantityToScalar function directly from kubernetes js module.
* Set allowSyntheticDefaultImports flag to true to allow 'import x
from y' when a module doesn't have a default export.
Signed-off-by: Elena Zioga <elena@arrikto.com>
* vwa(front): Upgrade @kubernetes/client-node module
* Upgrade @kubernetes/client-node module, so that to include
quantityToScalar function directly from kubernetes js module.
* Set allowSyntheticDefaultImports flag to true to allow 'import x
from y' when a module doesn't have a default export.
Signed-off-by: Elena Zioga <elena@arrikto.com>
* twa(front): Upgrade @kubernetes/client-node module
* Upgrade @kubernetes/client-node module, so that to include
quantityToScalar function directly from kubernetes js module.
* Set allowSyntheticDefaultImports flag to true to allow 'import x
from y' when a module doesn't have a default export.
Signed-off-by: Elena Zioga <elena@arrikto.com>
Signed-off-by: Elena Zioga <elena@arrikto.com>
* web-apps(front): Rename Age header in WAs
* Rename Age header to Created at.
Signed-off-by: Elena Zioga <elena@arrikto.com>
* web-apps(front): Right-align date columns in WAs
* Make date columns to be right-aligned.
Signed-off-by: Elena Zioga <elena@arrikto.com>
Signed-off-by: Elena Zioga <elena@arrikto.com>
* build: Update components makefiles for building
We'll create a top-level Makefile under components/ dir
that has the following rules:
* build-all:
To build all images locally
* push-all:
* We can use a specific REGISTRY and retag the images
* Push all the images
This top-level Makefile will run the sub-Makefiles that every
component has for building and pushing the images.
We modified every sub-Makefile as follows:
* We don't use a registry in images by default
* Removed unused rules and vars
* Use the --dirty flag of git describe in TAG
--dirty[=<mark>]
Describe the working tree. It means describe HEAD and
appends <mark> (-dirty by default) if the working tree
is dirty.
Signed-off-by: Apotolos Gerakaris <apoger@arrikto.com>
* build: Create makefiles for notebook servers
The common starting point of building the notebook-server
images are the following 4 *base* images:
- base
- codeserver
- jupyter
- rstudio
All other server images need to build on top of them. We'll
dynamically pass the base images in every Dockerfile by
using an ARG IMG. We can set the value of this ARG during
docker build with the --build-arg CLI argument.
This way we build both the base images with a tag locally,
and then we pass that image as arg via the Makefile and build the rest
So we modified our building procedure as follows:
1. Build the base image since everything starts from there
2. Pass the base image as an ARG in the Dockerfiles of
jupyter, codeserver, rstudio images and build on top
3. Pass the base images in all other server images and build
on top
For that we will:
1. Create a Makefile for each of the notebook servers, in each folder
a. Each makefile will be responsible for building the bases and use args for passing them on
2. Use the central Makefile to call each Makefile from above
Signed-off-by: Apotolos Gerakaris <apoger@arrikto.com>
* cherry-pick: Notebook server upstream fixes
Relevant upstream PR: https://github.com/kubeflow/kubeflow/pull/6466/files
Signed-off-by: Apotolos Gerakaris <apoger@arrikto.com>
* build: Fix Makefiles
- Remove build-gcp and build-gcr rules as we don't use them anywhere in
the project
- Fix code conficts
Signed-off-by: Apotolos Gerakaris <apoger@arrikto.com>
* build: Fix Dockerfiles for notbook-server images
We remove the previous logic of using already built images as bases.
The users must use only the Makefiles to pass the appropriate BASE_IMG
and build the images correctly.
Thus, we have Makefiles everywhere that:
- Can build any base image
- If an image requires another notebook base, then we first build that one using its makefile,
and then use it as docker ARG for building the next one
Signed-off-by: Apotolos Gerakaris <apoger@arrikto.com>
* build: Fix notebook-controller Makefile
Removed a misplaced "|" char that breaks the Makefile
Signed-off-by: Apotolos Gerakaris <apoger@arrikto.com>
* build: Update GH action workflows
* Update workflow for notebook-server images:
- Add a step for building all images by using the
central-Makefile under components/example-notebook-servers/ dir.
- Add a step for pushing all images by using the
central-Makefile under components/example-notebook-servers/ dir.
* Update workflow for all Kubeflow images:
- Add a step for building & pushing all images by using the
top-level Makefile under components/ dir.
Signed-off-by: Apotolos Gerakaris <apoger@arrikto.com>
* build: Remove completely ECR references from images
Replace everywhere the "public.ecr.aws/j1r0q0g6/notebooks/notebook-servers"
prefix with "kubeflownotebookswg"
Signed-off-by: Apotolos Gerakaris <apoger@arrikto.com>
* build: Fix GH actions for Kubeflow components
Fix GH actions to use the updated make rules
when building the Kubeflow component images.
Remove the "docker.io" prefix when building with
GH action workflows
Signed-off-by: Apotolos Gerakaris <apoger@arrikto.com>