Machine Learning Toolkit for Kubernetes

Overview

Kubeflow the cloud-native platform for machine learning operations - pipelines, training and deployment.

Documentation

Please refer to the official docs at kubeflow.org.

Working Groups

The Kubeflow community is organized into working groups (WGs) with associated repositories, that focus on specific pieces of the ML platform.

Quick Links

Get Involved

Please refer to the Community page.

Comments
  • adds apply -f to kfctl

    adds apply -f to kfctl

    Implements case 1 and case 2 in the new kfctl semantics Design doc reference

    • [x] make platform args optional
    • [x] implement new semantics for build and apply

    Current workflow for kfctl -

    New sematics single command install:

    # move into empty directory
    kfctl apply -f <path to config file / URL>
    

    New semantics build, edit, apply:

    # move into empty directory
    kfctl build -f <path to config file / URL>
    kfctl apply
    

    Old semantics:

    kfctl init kf-app --config <path to config file / URL> 
    cd kf-app
    kfctl generate <platform>
    kfctl apply <platform>
    

    /cc @yanniszark @jlewi @kkasravi

    Related to: #3518


    This change is Reviewable

    size/L lgtm approved cla: yes 
    opened by swiftdiaries 101
  • Kubeflow Install Error

    Kubeflow Install Error

    Trying to install Kubeflow v.70 on on-prem cluster (kubernetes v15.7/Ubuntu 18.04) but getting below error:

    [email protected]:/opt/kubeflow/kf-test# kfctl apply -V -f ${CONFIG_FILE} INFO[0000]


    Notice anonymous usage reporting enabled using spartakus To disable it If you have already deployed it run the following commands: cd $(pwd) kubectl -n ${K8S_NAMESPACE} delete deploy -l app=spartakus

    For more info: https://www.kubeflow.org/docs/other-guides/usage-reporting/


    filename="coordinator/coordinator.go:120" INFO[0000] Deleting cachedir /opt/kubeflow/kf-test/.cache/manifests because Status.ReposCache is out of date filename="kfconfig/types.go:464" INFO[0000] Fetching https://github.com/kubeflow/manifests/archive/v0.7-branch.tar.gz to /opt/kubeflow/kf-test/.cache/manifests filename="kfconfig/types.go:485" Error: failed to build kfApp from URI /opt/kubeflow/kf-test/kfctl_existing_arrikto.yaml: couldn't generate KfApp: (kubeflow.error): Code 500 with message: could not sync cache. Error: (kubeflow.error): Code 400 with message: couldn't download URI https://github.com/kubeflow/manifests/archive/v0.7-branch.tar.gz Error Error opening a gzip reader for /tmp/getter093015857/archive: EOF Usage: kfctl apply -f ${CONFIG} [flags]

    Flags: -f, --file string Static config file to use. Can be either a local path: export CONFIG=./kfctl_gcp_iap.yaml or a URL: export CONFIG=https://raw.githubusercontent.com/kubeflow/manifests/v0.7-branch/kfdef/kfctl_gcp_iap.0.7.0.yaml export CONFIG=https://raw.githubusercontent.com/kubeflow/manifests/v0.7-branch/kfdef/kfctl_existing_arrikto.0.7.0.yaml export CONFIG=https://raw.githubusercontent.com/kubeflow/manifests/v0.7-branch/kfdef/kfctl_aws.0.7.0.yaml export CONFIG=https://raw.githubusercontent.com/kubeflow/manifests/v0.7-branch/kfdef/kfctl_k8s_istio.0.7.0.yaml kfctl apply -V --file=${CONFIG} -h, --help help for apply -V, --verbose verbose output default is false

    failed to build kfApp from URI /opt/kubeflow/kf-test/kfctl_existing_arrikto.yaml: couldn't generate KfApp: (kubeflow.error): Code 500 with message: could not sync cache. Error: (kubeflow.error): Code 400 with message: couldn't download URI https://github.com/kubeflow/manifests/archive/v0.7-branch.tar.gz Error Error opening a gzip reader for /tmp/getter093015857/archive: EOF

    The Kubeflow installation was working fin when tried it a few days ago. Trying to install it in a new cluster and getting this error. Can you please help?

    Thanks, Job Varkey

    priority/p0 platform/onprem kind/bug area/enterprise_readiness 
    opened by jobvarkey 84
  • Release KF 1.1

    Release KF 1.1

    /kind process

    We need to identify who will be driving the 1.1 release. These folks should then

    • Identify timelines for the release
      • e.g. cutoff dates for branch cuts
      • Target dates for RCs

    This would probably be a good opportunity to update some of the processes and policies around releases. https://github.com/kubeflow/kubeflow/blob/master/docs_dev/releasing.md

    Area | release czar | Tracking Issue --- | --- | --- aws | @Jeffwan | ~~#5057~~ | centraldashboard | | ~~#5068~~ docs | | kubeflow/website#1984 fairing | @jinchihe | ~~kubeflow/fairing#503~~ | feast | @woop | | gcp | @jlewi | kubeflow/gcp-blueprints#46 | katib | @andreyvelich | kubeflow/katib#1211 | kfctl | @krishnadurai, @crobby | kubeflow/kfctl#352 | kfserving | @yuzisun @animeshsingh | kubeflow/kfserving#648 | manifests | @krishnadurai | kubeflow/manifests#1252 metadata | | minikf | @vkoukis | | multiuser | @yanniszark @bmorphism | #5067, #5068 notebooks | @kimwnasptd , @jtfogarty | #5060, #5068 | pipelines | @Bobgy | kubeflow/pipelines#3961 | training | @johnugeorge @andreyvelich @Jeffwan | kubeflow/common#97

    Target Dates

    • Branch cut June 19
    kind/feature priority/p0 kind/process area/engprod 
    opened by jlewi 73
  • Fire off TFJob from Jupyter Notebook

    Fire off TFJob from Jupyter Notebook

    We'd like to make it super easy to go from writing code in a notebook to training that model distributed.

    Experience might be something like

    • User writes code in notebook and executes in Jupyter lab
    • User clicks a button which allows user to fill in various settings e.g. number of GPUs
    • User clicks train

    Under the hood this would cause

    • A docker image to be built
    • A TFJob/PyTorch/K8s Job to be created and fired off.

    I think the biggest challenge is that we probably don't want to execute all code in the notebook. Typically, there's some amount of refactoring that needs to be done to convert a notebook into a python module suitable for execution in a bash job.

    As a concrete example

    Here's the notebook for our GitHub Issue summarization example

    Here's the corresponding python module used when training in a K8s job.

    The python module only executes a subset of cells in particular those to

    1. Define model architecture
    2. train the model

    Rather than try to auto-convert a notebook like the github issue example, I think we should require users structure their code to facilitate the conversion.

    My suggestion would be to allow any functions defined in the notebook to be used as entry points. So for the GitHub issues summarization the user would have a cell like the following

    from keras.callbacks import CSVLogger, ModelCheckpoint
    
    def train_model(output)
      script_name_base = 'tutorial_seq2seq'
      csv_logger = CSVLogger('{:}.log'.format(script_name_base))
      model_checkpoint = ModelCheckpoint('{:}.epoch{{epoch:02d}}- 
      val{{val_loss:.5f}}.hdf5'.format(script_name_base),
                                                      save_best_only=True)
    
      batch_size = 1200
      epochs = 7
      history = seq2seq_Model.fit([encoder_input_data, decoder_input_data], 
      np.expand_dims(decoder_target_data, -1),
               batch_size=batch_size,
               epochs=epochs,
               validation_split=0.12, callbacks=[csv_logger, model_checkpoint])
    
       seq2seq_Model.save(output)
    
    train('seq2seq_model_tutorial.h5')
    

    If user structures their code this way, we should be able to manually create and invoke a suitable container entry point. Something like the following

    • Use nbconvert to convert from ipynb to python code
    • Post process the python code
      • Strip out any statements not inside a function (except imports)
      • Create a CLI for the functions using a library like PyFire
    • Build a Docker image that is Notebook image + code

    A variant of this idea would be to use metaml (by @wbuchwalter ). metaml uses metaparticle to allow people to annotate their python code with information needed to then run it on K8s (e.g. distributed using TFJob). If we went this approach I think the flow would be

    • Run nbconvert to go from ipynb -> py
    • Use metaparticle/metaml tool chain to build the docker image and submit the job.

    @willingc @yuvipanda Is there existing tooling in the Jupyter community other than nbconvert to convert notebooks to code suitable for asynchronous batch execution?

    /cc @wbuchwalter @gaocegege @yuvipanda @willingc

    priority/p1 area/jupyter area/0.4.0 
    opened by jlewi 67
  • Add Tolerations to PodDefault

    Add Tolerations to PodDefault

    I want to add tolerations to the pods for my Jupyter server. I am able to inject other things like Labels and Annotations, this would allow me to also use PodDefault to inject tolerations.


    This change is Reviewable

    size/L lgtm approved cla: yes ok-to-test 
    opened by wdhorton 60
  • Kubeflow main page namespace selection

    Kubeflow main page namespace selection

    /kind bug

    When trying to change namespace on Kubeflow main page, the drop down of namespaces is showing behind the left blue pane, which completely obstructs the list

    • Kubeflow version: 0.6
    • kfctl version: kfctl v0.6.0-0-g71aea0a9
    • Kubernetes platform: OpenShift
    • Kubernetes version: kubernetes v1.13.4+c62ce01
    priority/p0 kind/bug 
    opened by blublinsky 53
  • User None is not authorized to list ... for namespace: anonymous

    User None is not authorized to list ... for namespace: anonymous

    /kind bug

    What steps did you take and what happened: Installed kubeflow 1.0. While trying to create notebook server I am getting errors like:

    User None is not authorized to list kubeflow.org.v1beta1.notebooks for namespace: anonymous
    

    and

    User None is not authorized to list .v1.persistentvolumeclaims for namespace: anonymous
    

    What did you expect to happen: Successfully create notebook servers

    Anything else you would like to add: [Miscellaneous information that will assist in solving the issue.]

    Environment:

    • Kubeflow version: (version number can be found at the bottom left corner of the Kubeflow dashboard): 1.0
    • kfctl version: (use kfctl version): 1.0-rc3
    • Kubernetes platform: (e.g. minikube) AWS kops
    • Kubernetes version: (use kubectl version): 1.15.1
    • OS (e.g. from /etc/os-release): Ubuntu 18.04
    priority/p0 platform/onprem kind/bug area/kfctl 
    opened by mfojtak 50
  • * spec.validation.openAPIV3Schema.properties[spec].type: Required value: must not be empty for specified object fields; with Kubernetes 1.16

    * spec.validation.openAPIV3Schema.properties[spec].type: Required value: must not be empty for specified object fields; with Kubernetes 1.16

    /kind bug

    What steps did you take and what happened: [A clear and concise description of what the bug is.]

    Executed the workaround in https://github.com/kubeflow/kubeflow/issues/3810#issuecomment-527687504

    get errors like the below

    no matches for kind "deployment" in version "extensions/v1beta1" error: unable to recognize "STDIN": no matches for kind "Deployment" in version "apps/v1beta2"

    What did you expect to happen:

    all the pods to show up in kubectl get pods -n kubeflow

    Anything else you would like to add: [Miscellaneous information that will assist in solving the issue.]

    Environment: Kubeflow version: (version number can be found at the bottom left corner of the Kubeflow dashboard): kfctl version: (use kfctl version): kfctl v0.6.2-0-g47a0e4c7 Kubernetes platform: (e.g. minikube) Kubernetes version: (use kubectl version): Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:13:54Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:50Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"} OS (e.g. from /etc/os-release): NAME="Ubuntu" VERSION="18.04.3 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.3 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic

    priority/p1 kind/bug area/seldon 
    opened by cyrilthank 49
  • Add Kaggle notebook Dockerfile

    Add Kaggle notebook Dockerfile

    Related to #1057 - pytorch notebook image Related to #258 - Kaggle image PTAL /cc @jlewi /cc @ankushagarwal /cc @johnugeorge

    Launched for me but obviously not exhaustively tested. Created a contrib dir to give it that YMMV vibe.

    Notes (IMHO):

    • py3 only
    • we should just manually build/push to gcr.io once per release, no other support
    • definitely should not be in any argo or release workflows
    • waaaay too big an image, there may be some slimming that could be done with my mods but almost certainly it would remain north of 20 Gb

    This change is Reviewable

    size/M lgtm approved 
    opened by pdmack 48
  • Adds central UI

    Adds central UI

    Adds a Central UI dashboard which provides links to all other components (jobs dashboard, jupyterhub) as a separate component.
    Addresses Issue #146.

    Depends on #11. A secure proxy is needed for the links to point to their respective components.

    screen shot


    This change is Reviewable

    size/XL 
    opened by swiftdiaries 46
  • Kubeflow v1.2 release

    Kubeflow v1.2 release

    /kind process

    Time line:

    • RC Release: Nov 7
    • Official Release: Nov 16

    WGs and projects

    Area | release czar | Tracking Issue --- | --- | --- centraldashboard | | https://github.com/kubeflow/kubeflow/pull/5412 docs |@RFMVasconcelos | kubeflow/website#2322 fairing | @jinchihe | | feast | @woop | | katib | @andreyvelich | https://github.com/kubeflow/manifests/pull/1593 | kfctl | @Jeffwan | https://github.com/kubeflow/kfctl/issues/421 | kfserving | @yuzisun @animeshsingh @cliveseldon | https://github.com/kubeflow/manifests/pull/1600 https://github.com/kubeflow/manifests/pull/1575 | manifests | @Jeffwan | kubeflow/manifests#1597 metadata | | notebooks | @kimwnasptd , @jtfogarty | | pipelines | @Bobgy | https://github.com/kubeflow/manifests/pull/1605 | training | @johnugeorge @gaocegege @terrytangyuan | |

    Platforms Platforms | release czar | Tracking Issue --- | --- | --- aws | @PatrickXYS | | azure | @aronchick | | ibm | @animeshsingh @adrian555 @shawnzhu | | gcp | @jlewi @Bobgy | | minikf | @vkoukis | |

    kind/feature priority/p1 area/docs platform/aws community/maintenance kind/process effort/2-weeks+ area/1.2.0 
    opened by Jeffwan 45
  • [WIP] Re-Introducing the Volumes Viewer

    [WIP] Re-Introducing the Volumes Viewer

    Volumes Viewer

    About two years ago, @DavidSpek proposed a pvcviewer. We've been using and enjoying this feature quite a lot since then and I'm convinced this feature needs to find its way to Kubeflow's core. Unfortunately, the PR staled and never got merged even though it sparked serious interest among the community.

    This is my attempt to move forward with this feature, making it available for all users.

    PVCViewer

    Pre-Existing Work

    @DavidSpek provided a functional prototype of the volumes viewer. His work comprises a pvcviewer resource definition, a resource controller and changes to the volumes UI. His changes already got partially merged into the volumes UI but are only available within the rok distribution.

    The initial controller was based off the tensorboard controller and was WIP in many regards.

    My Work

    I've re-implemented the volumes viewer, and made it compatible with the current volumes UI's master.

    Also, the controller has been re-written from scratch and is well-tested. It now comprises new features, such as restarting pods on RWO-Nodename changes.

    API

    I've included an example of a viewer object. The API is similar to what @kimwnasptd descibed in another thread. Creating a VolumesViewer currently looks like this (comments included explaining its functionality).

    apiVersion: kubeflow.org/v1alpha1
    kind: VolumesViewer
    metadata:
      name: volumesviewer-sample
      namespace: kubeflow-user-example-com
    spec:
      # The podTemplate is applied to the deployment.Spec.Template.Spec
      # and thus, represents the core viewer's application
      podTemplate:
        #...
      service:
        # Specifies the application's target port used by the Service
        targetPort: 8080
        # If defined, an istio VirtualService is created, pointing to the Service
        virtualService:
          # The base prefix is suffixed by '/namespace/name' to create the
          # VirtualService's prefix and a unique URL for each started viewer
          basePrefix: "/volumesviewer"
          # You may specify the VirtualService's rewrite.
          # If not set, the prefix's value is used
          rewrite: "/"
          # By default, no timeout is set
          # timeout: 30s
      rwoScheduling:
        # If set to true, the controller detects RWO-Volumes referred to by the
        # podTemplate and uses affinities to schedule the viewer to nodes
        # where the volume is currently mounted. This enables the viewer to
        # access RWO-Volumes, even though they might already be mounted.
        enabled: true
        # Using the rwoScheduling feature, the viewer might block other application
        # from (re-starting). Setting restart to true instructs the controller to
        # re-compute the affinity in case Pods start using the viewer's RWO-Volumes.
        # Thus, the viewer might restart on another node without blocking new Pods.
        restart: true
    

    How to install

    Using the current kubeflow master:

    1. Install the kustomize applications
      • kustomize build components/crud-web-apps/volumes/manifests/overlays/istio | kubectl apply -f -
      • kustomize build components/volumes-viewer/config/overlays/kubeflow | kubectl apply -f -
    2. Build the container images and set them accordingly (alternatively, use my prebuilt images):
      • kubectl -n kubeflow set image deploy/volumes-web-app-deployment volumes-web-app=tobiasgoerke/kubeflow-volumes-web-app:test-v2
      • kubectl -n kubeflow set image deploy/volumes-viewer-controller-manager manager=tobiasgoerke/kubeflow-volumes-viewer:test-v2

    Outlook and Future Work

    • There is a generic viewer controller managed by the pipelines WG. The volumes viewer would integrate into this controller nicely. However, attempts to integrate the viewer have failed and it seems the viewer itself is not moving forward, too. Thus, I've decided to create a new controller (like @DavidSpek did in his PR) and call the integration into the pipelines WG optional and out-of-scope. In case this PR gets merged, I'll rename the VolumesViewer controller and push for it to be accepted as a generic viewer. This would enable the volumes viewer, notebooks, tensorboard etc. to use a common implementation and controller. For this PR, the CRD and controller could be dropped then, leaving us with only changes to the volumes UI. I've designed this PR with this possible step in mind so that a generic viewer would only require one file to change.
    • I've created a PR in the filebrowser project which enables Filebrowser to support the tus.io protocol for resumable and chunked uploads. This comes in very handy with big uploads that may get disrupted or proxies that block large requests. This PR is currently in review.
    size/XXL do-not-merge/work-in-progress 
    opened by TobiasGoerke 1
  • jwa(front): Auto update mount path

    jwa(front): Auto update mount path

    Fix an issue in JWA's form and change the volume's mount path when the volume's name changes. This feature is already working for workspace volumes. Also, add one more e2e test for the volume's mount path.

    size/L lgtm 
    opened by tasos-ale 2
  • Support Pod Defaults in Tensorboard controller

    Support Pod Defaults in Tensorboard controller

    This PR adds functionality for adding pod default related labels for tensorboard pods in tensorboard controller. This can be used for various things like configuring cloud storage parameters using environment variables(#6493), service account, tolerations etc.

    User experience:

    1. User creates a tensorboard CR with required labels (metadata.labels)
    2. Controller will create the deployment with labels on the pod copied from the tensorboard CR
    3. Admission webhook will take care of injecting necessary configurations according to poddefault

    Updated the image version because v2.1.0 did not work with IAM roles. Using the latest version would require building and maintaining an image because some functionality is moved out to a different package(tensorflow-io). This package is not installed by default in tensorflow image and I would like to focus on completing the core functionality first.

    @kimwnasptd @kandrio @elikatsis

    Is there anyone who can help with implementing the webapp frontend related changes or I would appreciate if anyone can give me a quick intro on the frontend Angular part of the code so I can make the changes myself?

    size/S 
    opened by surajkota 1
  • make: Build KF images in parallel

    make: Build KF images in parallel

    This PR addresses https://github.com/kubeflow/kubeflow/issues/6872

    Currently there is a single build-all rule in the top-level Makefile under components/ dir that calls all sub-makefiles for building all KF images in a serial manner. This makes the whole process very time-consuming as we can't use the -j option of make to run jobs in parallel.

    Changes to the top-level Makefile for building all KF images:

    • Create a single rule for each directory containing a sub-makefile
    • Have each directory rule as a dependency to the build-all rule in the central Makefile

    This way every directory rule can run in parallel with other rules.

    Similarly, the central makefile for building all the example-notebook-servers images calls each sub-Makefile for each of the notebook servers in a serial manner.

    Changes to the central Makefile for building all notebook-server-images:

    • Split the single target rule into multiple rules which perform recursive make calls (sub-makefiles) to build all the notebook-server-images.
    • Use the variable MAKE for recursive make commands instead of explicit make command:
      • https://www.gnu.org/software/make/manual/html_node/MAKE-Variable.html#MAKE-Variable

    Signed-off-by: Apostolos Gerakaris [email protected]

    size/L 
    opened by apo-ger 1
  • Build Kubeflow images in parallel

    Build Kubeflow images in parallel

    /kind feature

    https://github.com/kubeflow/kubeflow/pull/6555 introduced a mechanism for building all Kubeflow images via a top-level central-Makefile. The central-Makefile has a build-all rule that calls all the sub-Makefiles of the different components in a serial manner. This makes the whole process very time-consuming since we can't use the -j option of make to run jobs in parallel.

    We could speed-up this process by:

    • creating a single rule for each directory containing a sub-Makefile.
    • having each directory rule as a dependency to the build-all rule in the central Makefile

    This way every directory rule can run in parallel with other rules.

    The same applies for the central Makefile for building all notebook-server-images. In this case though we should follow a slightly different approach as we need to build the images in a specific order since most of the Dockerfiles expect a base image to build on top. The following graph shows the dependencies for building the images: image

    So, we could split the single docker-build-all rule into multiple rules which perform recursive make calls to sub-Makefiles to build all the notebook-server-images. We can introduce target rules for the following sub-Makefiles:

    • jupyter-pytorch-full:
      • jupyter-pytorch-full-cpu
      • jupyter-pytorch-full-cuda
    • jupyter-scipy
    • jupyter-tensorflow-full:
      • jupyter-tensorflow-full-cpu
      • jupyter-tensorflow-full-cuda
    • codeserver-python
    • rstudio-tidyverse

    This way we ensure that all notebook-server-images will be built as each sub-Makefile is responsible for building all the required base images.

    kind/feature 
    opened by apo-ger 0
  • set_cpu_limit not acting like set_gpu_limit

    set_cpu_limit not acting like set_gpu_limit

    What steps did you take and what happened: When trying to set limitation on cpu like this: op.set_cpu_limit(16) on ContainerOp and compile it using: kfp.compiler.Compiler().compile(my_pipeline, 'my-pipeline.zip') I get: TypeError: expected string or bytes-like object which is different when using gpu limit: op.set_gpu_limit(16) that compile well and working

    What did you expect to happen: I expect those two function to act similarly.

    Anything else you would like to add: I solved it by using op.set_cpu_limit('16')

    Environment: kfp==1.6.2 python 3.8

    opened by ShaharSheli 0
Releases(v1.6.0)
  • v1.6.0(Sep 7, 2022)

    KF 1.6 release 🎉

    What's new ✨

    • Expose notebook idleness in Notebook management web app https://github.com/kubeflow/kubeflow/pull/6544 @kimwnasptd
    • Notebook Controller QPS and Burst https://github.com/kubeflow/kubeflow/pull/6453 @mofanke
    • Don't show Notebook groups if they don't have any images https://github.com/kubeflow/kubeflow/pull/6482 @haoxins
    • Upgrade Kubebuilder for Profiles Controller https://github.com/kubeflow/kubeflow/pull/6491 @apo-ger

    What's fixed 🐛

    • Reload certificates in PodDefaults webhook https://github.com/kubeflow/kubeflow/pull/6581 @manolis-andr
    • Notebooks controller and K8s 1.22 https://github.com/kubeflow/kubeflow/pull/6374 @samuelvl
    • PodDefaults and K8s 1.22 https://github.com/kubeflow/kubeflow/pull/6459 @aaron-arellano
    • TensorBoard and K8s 1.22 https://github.com/kubeflow/kubeflow/pull/6406 @alembiewski
    • Allow Notebook Controller to patch events https://github.com/kubeflow/kubeflow/pull/6523 @henrysecond1

    Upgrade notes ⏫

    • The project is using DockerHub hosted images instead of ECR ones https://github.com/kubeflow/kubeflow/pull/6548. Users will need to update their ovelays accordingly
    Source code(tar.gz)
    Source code(zip)
  • v1.5.0(Mar 10, 2022)

    KF 1.5 release 🎉

    What's new ✨

    • notebooks: Extend Notebook Controller to expose idleness for Jupyter #6297 @athamark
    • jwa: Rework the Storage API of the web app #6321 @kimwnasptd
    • Change namespace label for Katib metrics collector injection #6225 @andreyvelich
    • Tell user to select a namespace to access namespaced menu item #6181 @toshi-k
    • frontend: Use responsive tables instead of cards #6316 @kimwnasptd
    • Fix(manifests): Upgrade rbac.authorization.k8s.io from v1beta1 to v1 #6261 @haoxins
    • Synchronize jupyter-web-application role with clusterrole #6241 @juliusvonkohout

    What's fixed 🐛

    • Secure access to KFAM #6077 @DavidSpek
    • fix(backend): tensorboard-controller does not work because of missing permissions #6216 @juliusvonkohout
    • fix(notebooks) make culling work with multi-user #5980 @LEDfan
    • notebooks: Graceful handling of events #6338 @kimwnasptd
    • notebooks: Fix endless restarts #6341 @kimwnasptd
    • Centraldashboard/add uncaughtexception handler #6203 @haoxins
    • fix dashboard sending malformed headers to kfam #6186 @thesuperzapper

    Upgrade notes ⏫

    1. Update the Jupyter web apps configmap with the new storage structure https://github.com/kubeflow/kubeflow/pull/6321
    2. Notebook Controller is using different ENV Vars for culling https://github.com/kubeflow/kubeflow/blob/master/components/proposals/20220121-jupyter-notebook-idleness.md#upgrade-notes
    3. The Profile Controller is adding different Katib metrics labels https://github.com/kubeflow/kubeflow/pull/6225
    Source code(tar.gz)
    Source code(zip)
  • v1.5.0-rc.1(Feb 14, 2022)

    First RC of the KF 1.5 release 🎉

    What's new ✨

    • notebooks: Extend Notebook Controller to expose idleness for Jupyter #6297 @athamark
    • jwa: Rework the Storage API of the web app #6321 @kimwnasptd
    • Change namespace label for Katib metrics collector injection #6225 @andreyvelich
    • Tell user to select a namespace to access namespaced menu item #6181 @toshi-k
    • frontend: Use responsive tables instead of cards #6316 @kimwnasptd
    • Fix(manifests): Upgrade rbac.authorization.k8s.io from v1beta1 to v1 #6261 @haoxins
    • Synchronize jupyter-web-application role with clusterrole #6241 @juliusvonkohout

    What's fixed 🐛

    • Secure access to KFAM #6077 @DavidSpek
    • fix(backend): tensorboard-controller does not work because of missing permissions #6216 @juliusvonkohout
    • fix(notebooks) make culling work with multi-user #5980 @LEDfan
    • notebooks: Graceful handling of events #6338 @kimwnasptd
    • notebooks: Fix endless restarts #6341 @kimwnasptd
    • Centraldashboard/add uncaughtexception handler #6203 @haoxins
    • fix dashboard sending malformed headers to kfam #6186 @thesuperzapper

    Upgrade notes ⏫

    1. Update the Jupyter web apps configmap with the new storage structure https://github.com/kubeflow/kubeflow/pull/6321
    2. Notebook Controller is using different ENV Vars for culling https://github.com/kubeflow/kubeflow/blob/master/components/proposals/20220121-jupyter-notebook-idleness.md#upgrade-notes
    3. The Profile Controller is adding different Katib metrics labels https://github.com/kubeflow/kubeflow/pull/6225
    Source code(tar.gz)
    Source code(zip)
  • v1.5.0-rc.0(Feb 14, 2022)

    First RC of the KF 1.5 release 🎉

    What's new ✨

    • Change namespace label for Katib metrics collector injection #6225 @andreyvelich
    • Tell user to select a namespace to access namespaced menu item #6181 @toshi-k
    • frontend: Use responsive tables instead of cards #6316 @kimwnasptd

    What's fixed 🐛

    • Secure access to KFAM #6077 @DavidSpek
    • fix(backend): tensorboard-controller does not work because of missing permissions #6216 @juliusvonkohout
    • fix(notebooks) make culling work with multi-user #5980 @LEDfan
    • Centraldashboard/add uncaughtexception handler #6203 @haoxins
    • fix dashboard sending malformed headers to kfam #6186 @thesuperzapper
    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Oct 11, 2021)

    Web apps:

    • Migrate to Angular 12 from 8: https://github.com/kubeflow/kubeflow/pull/6004 @DavidSpek

    Internationalization progress:

    • Internationalization to web apps https://github.com/kubeflow/kubeflow/pull/5880 @wg102, @Jose-Matsuda
    • Use Angular's i18n solution https://github.com/kubeflow/kubeflow/pull/6065 @kimwnasptd

    Central Dashboard:

    • Namespaced menu items https://github.com/kubeflow/kubeflow/pull/5995 @toshi-k
    • Make it possible to add Namespaced menu items #5871 @toshi-k
    • Scrollable side-bar https://github.com/kubeflow/kubeflow/pull/5964 @toshi-k
    • Add support for Models web app https://github.com/kubeflow/kubeflow/pull/6085 @kimwnasptd

    Jupyter web app

    • Jupyter web app fix for autoscaling GPU nodegroups https://github.com/kubeflow/kubeflow/pull/6171 @kimwnasptd
    • Fix limits calculation when limitFactor is none in Jupyter web app #6058 @kimwnasptd
    • Make jupyter-web-app parse workspace volume MountPath #5952 @anencore94
    • JWA: Don't override assets with logos ConfigMap #5942 @kimwnasptd
    • Add fonts as assets to service #5691 @saffaalvi @wg102
    • The number of gpu must be set as string #5891 @juliusvonkohout

    Notebooks

    • Remove virtualservice timeout to prevent websocket disconnect #6126 @abe-hpe
    • Correct missing predicates in controller watches#5873 @filintod
    • Improve the README of the example Notebook servers https://github.com/kubeflow/kubeflow/pull/6165 @thesuperzapper

    TensorBoards

    • tensorboard-controller: fix binding issue #5925 @DavidSpek

    PodDefaults

    • Bump Golang version for PodDefaults, TensorBoard Controller and KFAM https://github.com/kubeflow/kubeflow/pull/6180 @kimwnasptd
    • Use namespace from Admission Review in PodDefaults https://github.com/kubeflow/kubeflow/pull/6052 @henrysecond1
    • Add support for ServiceAccountName and AutomountServiceAccountName to PodDefaults #5939 @hopper-signifyd

    Other improvements

    • Add kustomize tests in CI/CD https://github.com/kubeflow/kubeflow/pull/5919 @DavidSpek
    • Format checks for the Volumes web app https://github.com/kubeflow/kubeflow/pull/5820 @kimwnasptd
    • Make i18n work with prefixes https://github.com/kubeflow/kubeflow/pull/6034 @kimwnasptd
    • Allow user to add/delete labels to user namespace using ConfigMap #5761 @zijianjoy
    Source code(tar.gz)
    Source code(zip)
  • v1.4-rc.0(Sep 14, 2021)

  • v1.3.1-rc.0(Jun 25, 2021)

  • v1.3.0(May 27, 2021)

  • v1.2.0(Nov 20, 2020)

    To deploy Kubeflow, please follow the instruction

    • kfctl https://github.com/kubeflow/kfctl/releases/tag/v1.2.0
    • manifest https://github.com/kubeflow/manifests/releases/tag/v1.2.0

    Changelog

    1.2.0 (2020-11-20)

    Please check full change log here

    Source code(tar.gz)
    Source code(zip)
  • v1.2-rc.0(Nov 9, 2020)

    Please help test v1.2 kubeflow release.

    The binaries are the same as published in https://github.com/kubeflow/kfctl/releases/tag/v1.2-rc.0

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Nov 9, 2020)

    Kubeflow v1.1.0 stable release. (It was release on July 29, 2020) I make up this release to make it more clear because lots of people check kubeflow/kubeflow release page to find latest version.

    Note: The binaries are the same as published in https://github.com/kubeflow/kfctl/releases/tag/v1.1.0

    Source code(tar.gz)
    Source code(zip)
  • v1.0(Mar 9, 2020)

  • v0.7.0(Nov 4, 2019)

  • v0.7.0-rc.8(Nov 2, 2019)

  • v0.6.2(Aug 26, 2019)

    Change logs since V0.6.1

    • Add application overlay for tf-training (v0.6)
    • Backend changes for Central Dashboard to support multi-user isolation
    • Multi-User Isolation 2.0 - Manage Users
    • [Central Dashboard v2] Multi-User Isolation PR
    • [Central-Dashboard v2] MUI Basic Auth Support
    • [Central-Dashboard v2] MUI Style and Nomenclature
    • Pin kubeflow/manifests and kubeflow/kubeflow commits on the v0.6-branch
    • Fix the default poddefaults add-gcp-secret
    • Fix the error link description when using kfctl install
    • kfctl: existing_arrikto: direct all 5556 traffic to Dex
    • [Centraldashboard v2] Correctly update Kubeflow Dashboard version from Kubeflow Resource
    • add wait time for default profile to 15min
    Source code(tar.gz)
    Source code(zip)
    kfctl_v0.6.2_darwin.tar.gz(27.36 MB)
    kfctl_v0.6.2_linux.tar.gz(27.01 MB)
  • v0.6.2-rc.2(Aug 22, 2019)

  • v0.6.2-rc.1(Aug 21, 2019)

    Change logs since v0.6.2-rc.0

    • kfctl: pin configs to v0.6-branch (#3867)
    • update config file on v0.6 branch (#3892)
    • Pin kubeflow/manifests and kubeflow/kubeflow commits on the v0.6-branch (#3894)
    • Fix the default poddefaults add-gcp-secret in v0.6-branch (#3926)
    • Fix the error link description when using kfctl install. (#3942)
    • Create a kfctl_gcp_iap file to use as an RC for 0.6.2 (#3919)
    • kfctl: existing_arrikto: direct all 5556 traffic to Dex (#3293)
    • Incorrect indentation at line 106 in kfctl_existing_arrikto.0.6.yaml causing deployment to fail when using this config. (#3961)
    Source code(tar.gz)
    Source code(zip)
    kfctl_v0.6.2-rc.1_darwin.tar.gz(27.36 MB)
    kfctl_v0.6.2-rc.1_linux.tar.gz(27.40 MB)
  • v0.6.2-rc.0(Aug 8, 2019)

  • v0.6.1(Jul 27, 2019)

    The second release of v0.6

    Change logs since v0.6.0:

    • Fix metadata UI routing issue (#3714)
    • Paper-menu-dropdown is aligned left (#3743)
    • Create PodDefault if platform is GCP (#3741)
    • Add AWS kfctl(golang) support and 0.6 support (#3695)
    • Fix ip discovery and cert creation on AWS for existing_arrikto config (#3760)
    • Add istio namespace for cloud endpoint
    • Fix basic auth DNS setup

    Kubeflow v0.6:

    • introduces a new Metadata component, along with a Metadata API and initial corresponding clients.
    • introduces multi-user authentication & authorization with SSO.
    • extends the Kubeflow Pipelines’ DSL to seamlessly support the use of Persistent Volumes and Volume Snapshots as distinct Kubeflow Pipelines resources.
    • includes a number of new features and bug fixes within the Pipelines system, such as preemptible VMs, streamlined run creation, improved visualization of pipeline metadata, and support for default experiments.
    Source code(tar.gz)
    Source code(zip)
    kfctl_v0.6.1_linux.tar.gz(29.59 MB)
    kfctl_v0.6.1_darwin.tar.gz(18.16 MB)
  • v0.6.1-rc.2(Jul 27, 2019)

  • v0.6.1-rc.1(Jul 24, 2019)

Owner
Kubeflow
Kubeflow is an open, community driven project to make it easy to deploy and manage an ML stack on Kubernetes
Kubeflow
Light-Head R-CNN

Light-head R-CNN Introduction We release code for Light-Head R-CNN. This is my best practice for my research. This repo is organized as follows: light

jemmy li 835 Dec 06, 2022
Attention-guided gan for synthesizing IR images

SI-AGAN Attention-guided gan for synthesizing IR images This repository contains the Tensorflow code for "Pedestrian Gender Recognition by Style Trans

1 Oct 25, 2021
Time-stretch audio clips quickly with PyTorch (CUDA supported)! Additional utilities for searching efficient transformations are included.

Time-stretch audio clips quickly with PyTorch (CUDA supported)! Additional utilities for searching efficient transformations are included.

Kento Nishi 22 Jul 07, 2022
An implementation for the loss function proposed in Decoupled Contrastive Loss paper.

Decoupled-Contrastive-Learning This repository is an implementation for the loss function proposed in Decoupled Contrastive Loss paper. Requirements P

Ramin Nakhli 71 Dec 04, 2022
Atomistic Line Graph Neural Network

Table of Contents Introduction Installation Examples Pre-trained models Quick start using colab JARVIS-ALIGNN webapp Peformances on a few datasets Use

National Institute of Standards and Technology 91 Dec 30, 2022
K-Means Clustering and Hierarchical Clustering Unsupervised Learning Solution in Python3.

Unsupervised Learning - K-Means Clustering and Hierarchical Clustering - The Heritage Foundation's Economic Freedom Index Analysis 2019 - By David Sal

David Salako 1 Jan 12, 2022
LogAvgExp - Pytorch Implementation of LogAvgExp

LogAvgExp - Pytorch Implementation of LogAvgExp for Pytorch Install $ pip instal

Phil Wang 31 Oct 14, 2022
Weakly Supervised Learning of Instance Segmentation with Inter-pixel Relations, CVPR 2019 (Oral)

Weakly Supervised Learning of Instance Segmentation with Inter-pixel Relations The code of: Weakly Supervised Learning of Instance Segmentation with I

Jiwoon Ahn 472 Dec 29, 2022
The audio-video synchronization of MKV Container Format is exploited to achieve data hiding

The audio-video synchronization of MKV Container Format is exploited to achieve data hiding, where the hidden data can be utilized for various management purposes, including hyper-linking, annotation

Maxim Zaika 1 Nov 17, 2021
A reimplementation of DCGAN in PyTorch

DCGAN in PyTorch A reimplementation of DCGAN in PyTorch. Although there is an abundant source of code and examples found online (as well as an officia

Diego Porres 6 Jan 08, 2022
[NeurIPS 2021] PyTorch Code for Accelerating Robotic Reinforcement Learning with Parameterized Action Primitives

Robot Action Primitives (RAPS) This repository is the official implementation of Accelerating Robotic Reinforcement Learning via Parameterized Action

Murtaza Dalal 55 Dec 27, 2022
Check out the StyleGAN repo and place it in the same directory hierarchy as the present repo

Variational Model Inversion Attacks Kuan-Chieh Wang, Yan Fu, Ke Li, Ashish Khisti, Richard Zemel, Alireza Makhzani Most commands are in run_scripts. W

Jackson Wang 15 Dec 26, 2022
[NeurIPS 2021] ORL: Unsupervised Object-Level Representation Learning from Scene Images

Unsupervised Object-Level Representation Learning from Scene Images This repository contains the official PyTorch implementation of the ORL algorithm

Jiahao Xie 55 Dec 03, 2022
Model parallel transformers in Jax and Haiku

Mesh Transformer Jax A haiku library using the new(ly documented) xmap operator in Jax for model parallelism of transformers. See enwik8_example.py fo

Ben Wang 4.8k Jan 01, 2023
Spam your friends and famly and when you do your famly will disown you and you will have no friends.

SpamBot9000 Spam your friends and family and when you do your family will disown you and you will have no friends. Terms of Use Disclaimer: Please onl

DJ15 0 Jun 09, 2022
一个多模态内容理解算法框架,其中包含数据处理、预训练模型、常见模型以及模型加速等模块。

Overview 架构设计 插件介绍 安装使用 框架简介 方便使用,支持多模态,多任务的统一训练框架 能力列表: bert + 分类任务 自定义任务训练(插件注册) 框架设计 框架采用分层的思想组织模型训练流程。 DATA 层负责读取用户数据,根据 field 管理数据。 Parser 层负责转换原

Tencent 265 Dec 22, 2022
rastrainer is a QGIS plugin to training remote sensing semantic segmentation model based on PaddlePaddle.

rastrainer rastrainer is a QGIS plugin to training remote sensing semantic segmentation model based on PaddlePaddle. UI TODO Init UI. Add Block. Add l

deepbands 5 Mar 04, 2022
Official implementation of deep-multi-trajectory-based single object tracking (IEEE T-CSVT 2021).

DeepMTA_PyTorch Officical PyTorch Implementation of "Dynamic Attention-guided Multi-TrajectoryAnalysis for Single Object Tracking", Xiao Wang, Zhe Che

Xiao Wang(王逍) 7 Dec 03, 2022
MMGeneration is a powerful toolkit for generative models, based on PyTorch and MMCV.

Documentation: https://mmgeneration.readthedocs.io/ Introduction English | 简体中文 MMGeneration is a powerful toolkit for generative models, especially f

OpenMMLab 1.3k Dec 29, 2022
EFENet: Reference-based Video Super-Resolution with Enhanced Flow Estimation

EFENet EFENet: Reference-based Video Super-Resolution with Enhanced Flow Estimation Code is a bit messy now. I woud clean up soon. For training the EF

Yaping Zhao 19 Nov 05, 2022