Commit Graph

27 Commits

Author SHA1 Message Date
apoger 6b3fd05ea2 Update KF manifests and gh-action workflows to use the tag=`latest` (kubeflow/kubeflow#6854)
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>
2022-12-20 15:59:18 +00:00
apoger 54ab6a815e Fix workflows for publishing images only when PR is merged (kubeflow/kubeflow#6842)
* Fix docker-publish workflows

* Remove workflow that builds/push all images

* Remove redundant files from manifests
2022-12-15 09:51:21 +00:00
apoger 0e3834305f notebook-controller: Extend tests for using images of each PR (kubeflow/kubeflow#6830)
* Introduce intergration test workflow for notebook-controller

Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>

* Publish Docker image only when PR is merged

Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>

* Remove kind & manifest gh-action workflows

Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>

* Update tag in manifests to v1.6.0

This change is required as images with v1.5.0 do not
exist in Dockerhub.

Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>

Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>
2022-12-12 14:16:28 +00:00
apoger 10e0e93085 Cherry-pick commits for using DockerHub for all images (kubeflow/kubeflow#6825)
cherry-picking: #6548
* Update all images to use DockerHub
* Update releasing script for dockerhub

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
Cherry-picked-by: Apostolos Gerakaris <apoger@arrikto.com>

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
Co-authored-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2022-12-08 15:37:10 +00:00
apoger 46f14d4e97 Use K8s 1.25 for the tests (kubeflow/kubeflow#6751)
* kind: Introduce config file for 1.25

* Add a new KinD configuration file for testing with K8s 1.25.3
* Install kind v0.17.0 for testing with K8s 1.25.3

Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>

* gh-actions: Use 1.25 for testing

Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>

* testing: Install Istio 1.16 for testing

Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>

* Test commit for enabling the tests

Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>

* notebook-controller: Fix Makefile

Remove the test rule as a prerequisite for running docker-build

Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>

Signed-off-by: Apostolos Gerakaris <apoger@arrikto.com>
2022-11-24 08:30:10 +00:00
jsitu777 3049459c18 change pull policy from always to ifNotPresent (kubeflow/kubeflow#6724) 2022-11-09 10:52:40 +00:00
Mathew Wicks 803c02a48f add manifest parameters for notebook culling (kubeflow/kubeflow#6689) 2022-11-08 06:38:38 +00:00
Midhun Nair 40ef0ffe74 Fix #6528: Mirroring Pod conditions to Notebook (kubeflow/kubeflow#6619)
* Fix #6528: Mirroring Pod conditions to Notebook

* Added missing fields which are part of PodConditions into NotebookConditions

* Added suggested changes
2022-08-26 10:25:49 +00:00
apoger 939e1e22ca Introduce a mechanism to build all Kubeflow images (kubeflow/kubeflow#6555)
* 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>
2022-07-01 17:54:06 +00:00
Jeongwook Park bba1bf22ee notebooks: Allow notebook controller to patch events (kubeflow/kubeflow#6523) 2022-06-20 12:25:37 +00:00
Samu 0215857aa9 Support K8s 1.22 in notebook controller (kubeflow/kubeflow#6374)
Fix https://github.com/kubeflow/kubeflow/issues/6366

Migrating to Kubebuilder v3 leads to the following changes:
- Add .dockerignore file.
- Upgrade Go version from v1.15 to v1.17.
- Adapt Makefile.
- Add image (build + push) target to makefile.
- Upgrade EnvTest to use K8s v1.22.
- Update PROJECT template.
- Migrate CRD apiVersion from v1beta to v1.
- Add livenessProbe and readinessProbe to controller manager.
- Upgrade controller-runtime from v0.2.0 to v0.11.0.

Other changes:
- Build image using public.ecr.aws registry instead of gcr.io.
- Update README.md documentation.
- Update 3rd party licences.
- Fix notebook.spec description.
- Add 3 sample notebooks (v1, v1alpha1 and v1beta1).

Signed-off-by: Samuel Veloso <svelosol@redhat.com>
2022-05-03 15:49:01 +00:00
Kimonas Sotirchos a61650ee88 release: Images for the 1.5.0 tag (kubeflow/kubeflow#6398)
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2022-03-09 22:37:11 +00:00
Kimonas Sotirchos 9ba5be1c1c releasing: Create v1.5.0-rc.2 images (kubeflow/kubeflow#6394)
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2022-03-04 17:55:59 +00:00
Kimonas Sotirchos fff5155e1e releasing: Update tags for v1.5.0-rc.1 (kubeflow/kubeflow#6343)
Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2022-02-10 18:57:15 +00:00
Kimonas Sotirchos 64903665dc Update images for the 1.5 rc0 release (kubeflow/kubeflow#6319)
* Update the releasing version tag

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

* Run automated script for updating versions

Signed-off-by: Kimonas Sotirchos <kimwnasptd@arrikto.com>
2022-01-27 14:16:10 +00:00
Tobia De Koninck b223e29a9d fix(notebooks) make culling work with multi-user (kubeflow/kubeflow#5128) (kubeflow/kubeflow#5980) 2022-01-21 11:25:19 +00: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
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 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
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
Zhenghui Wang 89acff862c Add Notebook Controller v1 spec (kubeflow/kubeflow#4649)
* add v1 spec

* change kubeflow.org_nootebooks.yaml
2020-01-13 19:43:08 -08:00
Jerome Brette b5ff201a8c Migrate kustomize.go to Kustomize3 (kubeflow/kubeflow#4055)
* Migrate to kustomize3: Phase 1. Update kustomization.yaml

* Migrate to kustomize3: Phase 2: Update kustomize.go

- Update kustomize.go to match new package structure.
- Update module dependencies.

* Migrate to kustomize3: Phase 3: Implements code review

- As per request, revert kustomization.yaml back to deprecated syntax.
- As per request, revert kustomize.go to use deprecated .Bases field.
- Note: patchesStrategicMerge: will be turned into a deprecated field pretty soon.
- Rerun go mod tidy

* Migrate to kustomize3: Phase 4: Activate legacy order transformer
2019-09-20 21:21:25 -07: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
Lun-Kai Hsu e377455ce4 Notebook controller fixes (kubeflow/kubeflow#2463)
* fix

* enable e2e test

* fix

* fix

* fix logging for pytest

* fix

* fix

* fix

* fix

* fix

* fix

* address review

* review comment
2019-02-15 00:09:02 -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