Skip to content
Kubernetes Universal Declarative Operator (KUDO) Tutorial
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
unit1
unit2
unit3
unit4
LICENSE
README.md v0.5.0 updates Aug 20, 2019

README.md

kudo tutorial

Developing Kubernetes operators using KUDO, the Kubernetes Universal Declarative Operator. KUDO provides a declarative approach to building production-grade Kubernetes Operators covering the entire application lifecycle.

install kudo

Run the following three commands to install kudo.

kubectl create -f https://raw.githubusercontent.com/kudobuilder/kudo/v0.5.0/docs/deployment/00-prereqs.yaml
kubectl create -f https://raw.githubusercontent.com/kudobuilder/kudo/v0.5.0/docs/deployment/10-crds.yaml
kubectl create -f https://raw.githubusercontent.com/kudobuilder/kudo/842c7f19a0a361751f0dab330faf3be147c9c4b3/docs/deployment/20-deployment.yaml

More on the kudo install at kudo.dev .

Kudo comes with its own kubectl CLI plugin. On Mac OS X you can install it using brew.

brew tap kudobuilder/tap
brew install kudo-cli

More on the kudo CLI install at kudo.dev .

install and operate kudo operators

Install and operate your first kudo operator using kafka as the sample.

develop kudo operators

kudo operator programming model

As a developer of a kudo operator you have to author three types of YAML artifacts in the following file folder structure.

operator.yaml
params.yaml
templates/
     <template>.yaml
     ...

In the following we describe the roles that each of the YAML artifacts plays and what they capture.

operator.yaml

The operator file defines the operator behavior.

It has a name (e.g kafka), and a version.

Tasks list the resource templates that get applied together.

Plans orchestrate tasks through phases and steps. Plans consists of one or more phases. Phases consists of one or more steps. Steps contain one or more tasks. Both phases and also steps can be configured with an execution strategy, either serial or parallel.

params.yaml

The params file defines the parameters that can be used to configure an instance created by the operator. A parameter definition has a name, default value, display name, and description.

template.yaml

A template file defines the resources that can be applied by operator tasks. Samples are config maps, service, deployment, stateful set, ... .

unit 1: parameters, templates, tasks, and plans in action

  • showcasing the core operator concepts

unit 2: a stateful service

  • showcasing stateful set, and headless service templates
  • showcasing containers, and init containers
  • showcasing persistent volumes
  • showcasing instance update, showing scaling

unit 3: update and upgrade plans

  • showcasing update and upgrade Plans
  • showcasing controlled parameter updates

unit 4: custom plans

  • showcasing backup and restore
You can’t perform that action at this time.