Code Monkey home page Code Monkey logo

katib-operators's Introduction

Katib Operators

Overview

This bundle encompasses the Kubernetes python operators (a.k.a. charms) for Katib (see CharmHub).

The Katib operators are python scripts that wrap the latest released Katib manifests, providing lifecycle management for each application, handling events (install, upgrade, integrate, remove).

Install the Katib operators on your K8s cluster

1. Install the Juju OLM

snap install juju --classic

Alternatively, you can brew install juju on macOS or download the Juju installer for Windows.

2. Point Juju to your Kubernetes cluster

juju add-k8s myk8scloud --cluster=foo --kubeconfig=path/to/config 

If you are on ASK, EKS, or GKE, append --aks, --eks, or --gke.

For more, see Juju docs.

3. Create a Juju controller and bootstrap to your cluster

juju bootstrap myk8scloud my-controller

further reading on this step can be found in the juju docs.

4. Create a Juju model

A Juju model is a blank canvas where your charm operators will be deployed. While creating a model, you can specify a name, e.g. kf, and your applications will be deployed into a Kubernetes namespace with the name you define at this point.

Create a Juju model with the command:

juju add-model kf

5. Deploy the Katib bundle

To install Katib, run:

juju deploy katib

You can also install each application individually, like this:

juju deploy <application>

where <application> is one of katib-controller, katib-ui, or katib-db-manager.

Note: As a default, when you juju deploy an application or the full Katib bundle, you will deploy the latest pushed commit of Katib, even if unreleased updates are already available in the Kubeflow manifests. If you would like to try the latest available charm run:

juju deploy foo --channel=edge

6. (optional) Relate the Katib bundle with your Kubeflow

If you aim to use Katib within an existing Kubeflow deployment in order to use it within the Kubeflow dashboard, you will have to integrate katib-ui to istio-pilot with the following command:

juju relate istio-pilot katib-ui

Setting Custom Images for Katib Controller

Katib controller comes with a set of preconfigured images that are used in Katib workloads. This is the list of default images used in charm.

{
    "default_trial_template": "docker.io/kubeflowkatib/mxnet-mnist:v0.16.0-rc.1",
    "early_stopping__medianstop": "docker.io/kubeflowkatib/earlystopping-medianstop:v0.16.0-rc.1",
    "enas_cpu_template": "docker.io/kubeflowkatib/enas-cnn-cifar10-cpu:v0.16.0-rc.1",
    "metrics_collector_sidecar__stdout": "docker.io/kubeflowkatib/file-metrics-collector:v0.16.0-rc.1",
    "metrics_collector_sidecar__file": "docker.io/kubeflowkatib/file-metrics-collector:v0.16.0-rc.1",
    "metrics_collector_sidecar__tensorflow_event": "docker.io/kubeflowkatib/tfevent-metrics-collector:v0.16.0-rc.1",
    "pytorch_job_template__master": "docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.16.0-rc.1",
    "pytorch_job_template__worker": "docker.io/kubeflowkatib/pytorch-mnist-cpu:v0.16.0-rc.1",
    "suggestion__random": "docker.io/kubeflowkatib/suggestion-hyperopt:v0.16.0-rc.1",
    "suggestion__tpe": "docker.io/kubeflowkatib/suggestion-hyperopt:v0.16.0-rc.1",
    "suggestion__grid": "docker.io/kubeflowkatib/suggestion-optuna:v0.16.0-rc.1",
    "suggestion__hyperband": "docker.io/kubeflowkatib/suggestion-hyperband:v0.16.0-rc.1",
    "suggestion__bayesianoptimization": "docker.io/kubeflowkatib/suggestion-skopt:v0.16.0-rc.1",
    "suggestion__cmaes": "docker.io/kubeflowkatib/suggestion-goptuna:v0.16.0-rc.1",
    "suggestion__sobol": "docker.io/kubeflowkatib/suggestion-goptuna:v0.16.0-rc.1",
    "suggestion__multivariate_tpe": "docker.io/kubeflowkatib/suggestion-optuna:v0.16.0-rc.1",
    "suggestion__enas": "docker.io/kubeflowkatib/suggestion-enas:v0.16.0-rc.1",
    "suggestion__darts": "docker.io/kubeflowkatib/suggestion-darts:v0.16.0-rc.1",
    "suggestion__pbt": "docker.io/kubeflowkatib/suggestion-pbt:v0.16.0-rc.1",
}

These images can be overridden in the charm configuration under custom_images in the charms/katib-controller/config.yaml file. Whenever you leave the image field empty in the config, the default image will be used. You can specify your own images with the config by filling one or multiple entries. The config accepts either YAML or JSON entries. For example.

juju config katib-controller custom_images='{"default_trial_template": "custom:1.0", "early_stopping__medianstop": "cuustom:2.1"}'

These images are being used in .j2 files under charms/katib-controller/src/templates/.j2.

katib-operators's People

Contributors

nohaihab avatar dnplas avatar i-chvets avatar renovate[bot] avatar misohu avatar ca-scribner avatar beliaev-maksim avatar natalian98 avatar domfleischmann avatar kimwnasptd avatar agathanatasha avatar orfeas-k avatar phoevos avatar

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.