# CNCF Operator White Paper - Final Version

Table of Contents
=================

* [Table of Contents](#table-of-contents)
    * [Executive Summary](#executive-summary)
    * [Introduction](#introduction)
        * [The Goal of this document](#the-goal-of-this-document)
        * [Target Audience / Minimum Level of Experience](#target-audience--minimum-level-of-experience)
    * [Foundation](#foundation)
        * [Operator Design Pattern](#operator-design-pattern)
        * [Operator Characteristics](#operator-characteristics)
        * [Operator Components in Kubernetes](#operator-components-in-kubernetes)
        * [Operator Capabilities](#operator-capabilities)
    * [Security](#security)
        * [Operator Developer](#operator-developer)
        * [Application Developer (Operator\-"Users")](#application-developer-operator-users)
    * [Operator Frameworks for Kubernetes](#operator-frameworks-for-kubernetes)
        * [CNCF Operator Framework](#cncf-operator-framework)
        * [Kopf](#kopf)
        * [kubebuilder](#kubebuilder)
        * [Metacontroller \- Lightweight Kubernetes Controllers as a Service](#metacontroller---lightweight-kubernetes-controllers-as-a-service)
    * [Operator Lifecycle Management](#operator-lifecycle-management)
        * [Upgrading the Operator](#upgrading-the-operator)
        * [Upgrading the Declarative State](#upgrading-the-declarative-state)
        * [Managing Relations of CRDs](#managing-relations-of-crds)
    * [Use Cases for an Operator](#use-cases-for-an-operator)
        * [Prometheus Operator](#prometheus-operator)
        * [Operator for GitOps](#operator-for-gitops)
    * [Successful Patterns](#successful-patterns)
        * [Management of a single type of application](#management-of-a-single-type-of-application)
        * [Operator of Operators](#operator-of-operators)
        * [One CRD per Controller](#one-crd-per-controller)
        * [Where to publish and find Operators](#where-to-publish-and-find-operators)
        * [Further reading](#further-reading)
    * [Designing Operators](#designing-operators)
        * [Requirement Analysis](#requirement-analysis)
        * [Custom or third\-party Operator](#custom-or-third-party-operator)
        * [Use the right Tool](#use-the-right-tool)
        * [Use the right programming language](#use-the-right-programming-language)
        * [Design your Operator the according to your needs](#design-your-operator-the-according-to-your-needs)
        * [References](#references)
    * [Emerging Patterns of the Future](#emerging-patterns-of-the-future)
        * [Operator Lifecycle Management](#operator-lifecycle-management-1)
        * [Policy\-Aware Operators](#policy-aware-operators)
        * [References](#references-1)
    * [Conclusion](#conclusion)
    * [Related Work](#related-work)
    * [Acknowledgements](#acknowledgements)
        * [Contributors](#contributors)
        * [Reviewers](#reviewers)