Commit Graph

11 Commits

Author SHA1 Message Date
Athanasios Markou fbf5110f01 notebooks: Extend Notebook Controller to expose idleness for Jupyter (kubeflow/kubeflow#6297)
* notebooks: Update image's tag in make

Modify Makefile to update properly the TAG
based on the git TAG.

Signed-off-by: Athanasios Markou <athamark@arrikto.com>
Reviewed-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* notebooks: Expose last-activity

Extend the notebook-controller to:
* cull idle Notebook Servers based on their new `last-activity`
  annotation
* expose the last activity of each Notebook Server as an annotation
  on the metadata of the corresponding CR object

Modify notebook_controller.go to:
* update the Last Activity of each Notebook Server that has a
  Running pod
* delete the Last Activity Annotation for every Notebook Server
  that does not have a Running pod

Extend culler.go to:
* perform culling based on the new `last-activity` annotation and
  not based on the `/api/status` endpoint.
* update the last activity of a Notebook Server, based on the
  kernels' execution states.

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
Reviewed-by: Athanasios Markou <athamark@arrikto.com>

* notebooks: Introduce a DEV env var

We introduce a DEV ENV var to allow admins
develop and test on their local machine their
custom Notebook Controller.
We provide information and instructions inside
the components/notebook-controller/README.md.

Signed-off-by: Athanasios Markou <athamark@arrikto.com>
Reviewed-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* notebooks: Add unit tests for last-activity

* Introduce new tests for allKernelsAreIdle()
* Extend the tests for NotebookIsIdle() and for
  NotebookNeedsCulling().

Signed-off-by: Athanasios Markou <athamark@arrikto.com>
Reviewed-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>

* review: UpdateNotebookLastActivityAnnotation()

Ensure that UpdateNotebookLastActivityAnnotation() does not return
"true". This function should not return any value.

Signed-off-by: Athanasios Markou <athamark@arrikto.com>
2022-02-07 15:19:17 +00: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
Naveen e2555c4797 Upgrading the `go` compiler version. (kubeflow/kubeflow#5394)
Upgrade go version of the notebook-controller to 1.15, across the
Dockerfile, Makefile and README. We used the same Golang version as our Kubernetes
dependency, after @Jeffwan's suggestion.
2021-01-12 04:10:25 -08:00
Naveen bc8df5407e Implemented functional tests using ginkgo for notebook controller (kubeflow/kubeflow#5378)
* Implemented functional tests using ginkgo

The notebook controller can be tested using sigs.k8s.io/controller-runtime/pkg/envtest which comes as part of kubebuilder. With this we should be able to measurable test coverage.

* Fixed the incorrect test condition and included fix to download the envtest binaries.

Fixed the incorrect test condition and included fix to download the envtest binaries.

* Some tweaks based on review.

* Removed the check-license as it was blocking the test.
Included some of the tweaked yaml's files that were being generated.
2020-11-11 05:57:49 -08:00
Jeremy Lewi 0895c4d135 Fix docker builds of notebook and tensorboard controller (kubeflow/kubeflow#4664)
* Fix docker builds of notebook and tensorboard controller

* The notebook-controllers and tensorboard-controllers now depend on
  the go package components/common

* We need to rewrite the Dockerfiles so that the context is now

  ${KUBEfLOW_REPO}/common

  * so that components/common can be included in the context and copied
    to the Dockerfile

* Create skaffold configs to make it easier to do remote builds with Kaniko

  * The skaffold configs are currently written assuming the kubeflow-ci cluster
    is used to build the images. This could be generalized in the future.

* Remove the code to build the notebook-controller with GCB; we can just
  use skaffold and kaniko to do efficient remote builds.

* Related to #4582 - Jupyter image doesn't build.

* Fix docker build rule.
2020-01-21 17:54:34 -08:00
Zhenghui Wang 71918b8b64 Add licensing info for Notebook Controller (kubeflow/kubeflow#4623)
* add files for third party licensing for notebook ctlr

* lint
2020-01-06 23:20:17 -08:00
Lun-Kai Hsu 2f2938bead Notebook v1beta1 (kubeflow/kubeflow#4105)
* add v1beta1

* add storage version

* wip

* add conversion

* setup webhook

* fix

* fix manifest

* webhook wip

* no webhook
2019-09-13 07:04:29 -07:00
Lun-Kai Hsu 8cad496a13 Migrate notebook CR to kubebuilder V2 (kubeflow/kubeflow#4013)
* wip

* can build

* tested: able to control notebook

* fix
2019-09-04 17:06:22 -07:00
Abolfazl Shahbazi 4c48320235 Update python code styles based on what's provided in .style.yapf (kubeflow/kubeflow#2447)
* Fix Python code styles based on Pep8 and flake8

* More syle fixes to Python code

* Update python code styles based on what's provided in .style.yapf

* Sync with master and update styles

* Sync with master

* More Python style fixes

* Changes per code review

* Sync with master and update the remaining files

* Add a .flake8 config file for future reference
2019-02-19 22:44:30 -08:00
Lun-Kai Hsu ffc9a1d674 Add build with GCB support to notebook controller (kubeflow/kubeflow#2486)
* fix

* fix

* ignore
2019-02-15 11:52:54 -08:00
Lun-Kai Hsu fa3b0b3b0b Golang notebook controller (kubeflow/kubeflow#2336)
* kubebuilder init

* replae dep with modules

* add notebook api

* notebook controller impl

* remove test

* fix dockerfile

* fix svc reconcile

* notebook controller ksonnet

* update generated crd

* add sample

* remove TODO

* make golang version an arg

* rename

* fix path

* add README

* Add todo in readme

* remove arg default
2019-02-05 16:43:39 -08:00