1 of 19

Operator Framework as CNCF Incubation project

Proposed by Red Hat on behalf of Operator Framework community��Daniel Messer�dmesser@redhat.com

1

2 of 19

The third wave of Kubernetes applications is advanced distributed systems.

These systems require active care and lifecycle management to function well.

The tools within the Operator Framework aid developers when building, testing, publishing and updating these systems.

2

3 of 19

3

3

Components of the

https://github.com/operator-framework

Build

Run

Publish

HUB.IO

4 of 19

Several open source Operators debuted, including etcd, Prometheus and Vault

Operator concept introduced by CoreOS

4

2016

History of the Operator Framework

5 of 19

Operator SDK, Operator Lifecycle Manager (OLM) and Operator Metering introduced under the Apache 2.0 license

Red Hat & CoreOS introduce the Operator Framework

Operator Lifecycle Manager is one of the researched technologies in SIG-Cluster-Lifecycle

Discussions begin around the add-on model for Kubernetes

Rook.io storage Operator, CrunchyData PostgreSQL Operator and others

Early adoption by popular OSS projects

Popular workloads like Redis, Tensorflow and MongoDB embrace the Operator pattern for running on top of Kubernetes

Operators unlock additional stateful workloads on Kubernetes

Monthly community meetings with good participation

Operator SIG started under OpenShift Commons

5

2019 H1

2018

2017

6 of 19

10,000+ forks of the Operator SDK

Commercial products delivered via Operator

Many CNCF projects delivered via Operator

Enterprise Kubernetes users building in-house Operators

Packed sessions at Kubecon in Barcelona and Seattle

Widespread mindshare and adoption

Vendor-neutral home for the community to share Kubernetes Operators packaged with Operator Framework

Red Hat, Microsoft, Google and AWS launch OperatorHub.io

6

Today

2019 H1

7 of 19

Definition of a Kubernetes Operator

OPERATOR

An Operator is a Kubernetes API extension in the form of a controller to automate domain-specific workflow actions through custom resource definitions.

8 of 19

Why the Operator Framework?

Enabling people to write, manage and use Operators at scale.

Developers�Writing an Operator comes with a set of repetitive constructs that the SDK can scaffold.

Cluster Admins�Operators contain global resources and rich privileges which should be handled with care.

Cluster Users�Operators should be easily discoverable as a cohesive set of services on clusters.

9 of 19

Operator SDK

“No code” Operator

Perfect for Ops

Full power & features

Testing framework

Verification & Scorecard

KUBERNETES

OPERATOR

Operator SDK supports creating Operators from Helm Charts or Ansible Playbooks as well with rich scaffolding using controller-runtime.

As part of the SDK a developer gets unit-testing and integration test tools.

10 of 19

Operator Lifecycle Manager

Central Lifecycle Management for Operator

OPERATOR

LIFECYCLE MANAGER

YourOperator v1.1.2

YourOperator v1.1.3

YourOperator v1.2.0

YourOperator v1.2.2

Subscription for YourOperator

Time

Version

YourApp v3.0

YourApp v3.1

Operator Catalog

OLM is a central place to safely discover, deploy and use Operators at scale on cluster. It handles automatic updates of Operators and their dependencies.

11 of 19

Operator Metadata and Packaging

ClusterServiceVersion

Operator Deployment

RBAC

API Dependencies

Update Path

Metadata� +

CRDs

=

Discoverability on cluster

Deployment / Updates on cluster

Catalog Metadata

12 of 19

OperatorHub.io

Joint effort between:

  • Red Hat
  • Amazon
  • Microsoft
  • Google

Launched February 2019 (blog post)

Curated for quality/completeness

  • Automated testing
  • PR-based review process

Supports Operators of all types: Go, Helm, Ansible, Java

13 of 19

13

13

Operator Framework Community

10.6k

SDK clones

3.2k

Project stars

55

Project releases

38

Unique

Organizations contributing

207

Combined individual

contributors

623

Subscribers on�SIG Mailing List

14 of 19

14

14

User Feedback/Response

been working with operator-sdk since v0.2. I really like it and no issues so far (besides some breaking changes during upgrades which was expected for a v0.x)

We are big fans, contributors and users of the #Kubernetes Operator framework (made 10+) and just have updated our #Vault Operator to the latest and greatest (SDK improvements, switching to kubernetes-sigs/controller-runtime, logging abstraction, etc)

First alpha release of the NATS Streaming Operator for #Kubernetes, built using the SDK from the Operator Framework

Wow! The Operator SDK is already spawning new projects like this

@EnvoyProxy Operator.

15 of 19

Look for an Operator for the type of stateful app you are deploying, to make it easier to manage and deploy that application.

Again, the recommendation is...if you have a sufficiently complicated stateful application, use an Operator.

15

“”

Saad Ali

Senior Software Engineer, Google @ Kubecon EU 2019

Watch the keynote video

16 of 19

The third wave of Kubernetes applications is advanced distributed systems.

16

17 of 19

sig-app-delivery alignment

Application definition, including description, parameter and configuration

Guidance and practice for application design and development

Application bundling and deployment

Package management

Application delivery workflow and strategy

Configuration source driven workflow

Release management

Operator-SDK scaffolding and composition of basic Operator structure and metadata

Operator Lifecycle Manager bundle and package format definition

CRD-driven Operator deployment and discovery

Operator Lifecycle update model

sig-app-delivery

18 of 19

18

18

Aligned with other CNCF projects

  • SIG Cluster Lifecycle
    • Discussed as part of the add-ons subproject
    • Operator Framework maintainers are participating
    • kube-builder
  • Recommendation to use Operators for important cluster capabilities
    • On-cluster storage
    • Popular databases and other workloads
  • Operators for existing CNCF projects
    • Nats
    • Envoy
    • Vitess
    • Etcd
  • Driving consensus with related projects
    • Kudo SDK & Operator testing from D2IQ
    • Helm & running Helm Hub review queue
    • Rook.io
    • Jaeger
    • Prometheus

19 of 19

Questions?

19