Introduced by CoreOS in 2016, and now championed by Red Hat and a large portion of the Kubernetes community, the Operator pattern enables a fundamentally new way to automate infrastructure and application management tasks using Kubernetes as the automation engine. With Operators, developers and Kubernetes administrators can gain the automation advantages of public cloud-like services, including provisioning, scaling, and backup/restore, while enabling the portability of the services across Kubernetes environments regardless of the underlying infrastructure.
As the Operator concept has experienced growing interest across upstream communities and software providers, the number of Operators available has increased. However, it remains challenging for developers and Kubernetes administrators to find available Operators, including those that meet their quality standards. With the introduction of OperatorHub.io, we are helping to address this challenge by introducing a common registry to publish and find available Operators. At OperatorHub.io, developers and Kubernetes administrators can find curated Operator-backed services for a base level of documentation, active communities or vendor-backing to show maintenance commitments, basic testing, and packaging for optimized life-cycle management on Kubernetes.
With the introduction of OperatorHub.io, we look forward to continuing to work across the industry in enabling the creation of more Operators as well as the evolution of existing Operators. It is important to note that we expect the set of Operators that currently reside in OperatorHub.io to be only the start and anticipate more to be contributed over time.
"At Google Cloud, we have invested in building and qualifying community developed operators, and are excited to see more than 40 percent of Google Kubernetes Engine (GKE) clusters running stateful applications today. Operators play an important role in enabling lifecycle management of stateful applications on Kubernetes," said Aparna Sinha, Group Product Manager, Google Cloud. "The creation of OperatorHub.io provides a centralized repository that helps users and the community to organize around Operators. We look forward to seeing growth and adoption of OperatorHub.io as an extension of the Kubernetes community."
"Use of Kubernetes Operators is growing both inside Microsoft and amongst our customers, and we look forward to working with Red Hat and the broader community on this important technology," said Gabe Monroy, Lead Program Manager, Containers, Microsoft Azure.
What is an Operator?
Operators are a method of packaging, deploying and managing a Kubernetes-native application. We define a Kubernetes application as an application that is both deployed on Kubernetes and managed using the Kubernetes APIs and kubectl tooling.
Operators benefit Kubernetes users in that they can help to automate the sometimes routine, mundane and complex tasks required for an application to run on Kubernetes. An Operator can automate updates, backups and scaling by using Kubernetes CLI and can scan for things out of place, helping to enable a no-ops experience.
The Operator Framework is an open source toolkit that provides an SDK, lifecycle management, metering and monitoring capabilities enabling developers to build, test and publish Operators. Operators can be implemented in several programming and automation languages, including Go, Helm and Ansible.
Operators follow a maturity model that ranges from basic functionality to having specific operational logic for an application. Operators’ capabilities differ in sophistication depending on how much intelligence has been added into the Operator itself. Advanced Operators are designed to handle upgrades more seamlessly and be able to react to failures automatically. The set of Operators at OperatorHub.io span the maturity scale and we expect that others will evolve on that scale over time.
What does listing of an Operator on OperatorHub.io mean?
It means that the launch partners, at the onset, are working together to check the Operators added to OperatorHub.io against a series of basic tests. To be listed, Operators must successfully show cluster lifecycle features, packaging that can be maintained through the Operator Framework’s Operator Lifecycle Management, and acceptable documentation for its intended users.
Some examples of Operators that are currently listed in OperatorHub.io include: Amazon Web Services Operator, Couchbase Autonomous Operator, CrunchyData’s PostgreSQL, etcd Operator, Jaeger Operator for Kubernetes, Kubernetes Federation Operator, MongoDB Enterprise Operator, Percona MySQL Operator, PlanetScale’s Vitess Operator, Prometheus Operator, and Redis Operator.
"We are pleased to have our Couchbase Autonomous Operator included among a set up of curated and tested Kubernetes-native Operators for the launch of OperatorHub.io. Couchbase’s inclusion represents interest from the community to run complex applications at scale - like our NoSQL data platform - by leveraging the automation of common Couchbase operational tasks," said Anthony Farinha, Senior Director, Strategic Partnerships, Couchbase. "With the Operator Hub listing, this is an easier way for the community to find and make use of Operators that are generally available or in development."
"MongoDB customers continually state they are looking to modernize applications and automate infrastructure management as they digitize their business," said Alan Chhabra, SVP MongoDB. "We’re excited to be included in OperatorHub.io as a supported Operator for customers building cloud-native apps using Kubernetes. The Kubernetes MongoDB Enterprise Operator can allow users to deploy and manage MongoDB clusters from the Kubernetes API, without having to manually configure them."
"Participating in the Operator program championed by Red Hat and others, enables Redis Labs to help developers and enterprises more easily orchestrate their Redis Enterprise deployments," said Rod Hamlin, VP of Global Strategic Alliances, Redis Labs. "The launch of OperatorHub.io is particularly valuable as it brings together a curated registry of tested Operators to enable application installs and updates, while helping administrators make services portable and more manageable. As one of the programs’ early design partners, Redis Labs is able to bring higher quality database services to Kubernetes clusters - in different environments."
If you are interested in creating your own Operator, we recommend checking out the Operator Framework to get started.
Want to add your Operator to OperatorHub.io? Follow these steps
If you have an existing Operator, follow the contribution guide. Each OperatorHub.io entry contains the Custom Resource Definitions (CRDs), access control rules and references to the container image needed to install and more securely run your Operator, plus other info like a description of its features and supported Kubernetes versions.
After testing out the Operator on your own cluster, submit a PR to the community registrywith all of your YAML files following this directory structure. At first this will be reviewed manually, but automation is on the way. After it’s merged by the maintainers, it will show up on OperatorHub.io for installation.
Operators and the road ahead
An important goal for Red Hat is to lower the barrier for bringing applications to Kubernetes. We believe that Operator-backed services play a critical role in lowering this barrier by enabling application owners to use services that can provide the flexibility of cloud services across Kubernetes environments. We hope that the introduction of OperatorHub.io will further lower this barrier by making it easier for application owners to find the Operator-backed services that they are looking for.
Want to learn more?
Attend one of the upcoming Kubernetes Operator Framework hands-on workshops at ScaleX in Pasadena on March 7 and at the OpenShift Commons Gathering on Operating at Scale in Santa Clara on March 11
Listen in on the recorded OpenShift Commons Briefing on "All Things Operators" with Daniel Messer and Diane Mueller