Operator Framework as CNCF Incubation project
Proposed by Red Hat on behalf of Operator Framework community��Daniel Messer�dmesser@redhat.com
1
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
3
Components of the
https://github.com/operator-framework
Build
Run
Publish
HUB.IO
Several open source Operators debuted, including etcd, Prometheus and Vault
Operator concept introduced by CoreOS
4
2016
History of the Operator Framework
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
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
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.
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.
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.
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.
Operator Metadata and Packaging
ClusterServiceVersion
Operator Deployment
RBAC
API Dependencies
Update Path
Metadata� +
CRDs
=
Discoverability on cluster
Deployment / Updates on cluster
Catalog Metadata
OperatorHub.io
Joint effort between:
Launched February 2019 (blog post)
Curated for quality/completeness
Supports Operators of all types: Go, Helm, Ansible, Java
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
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.
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
“”
The third wave of Kubernetes applications is advanced distributed systems.
16
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
18
Aligned with other CNCF projects
Questions?
19