## Table of Contents

- [Table of Contents](#table-of-contents)
- [Definition](#definition)
- [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)
    - [Dynamic Configuration](#dynamic-configuration)
    - [Operational Automation](#operational-automation)
    - [Domain Knowledge](#domain-knowledge)
  - [Operator Components in Kubernetes](#operator-components-in-kubernetes)
    - [Kubernetes Controllers](#kubernetes-controllers)
    - [Custom Resources and Custom Resource Definitions](#custom-resources-and-custom-resource-definitions)
    - [Control Loop](#control-loop)
  - [Operator Capabilities](#operator-capabilities)
    - [Install an Application / Take Ownership of an Application](#install-an-application--take-ownership-of-an-application)
    - [Upgrade an Application](#upgrade-an-application)
    - [Backup](#backup)
    - [Recovery from backup](#recovery-from-backup)
    - [Auto-Remediation](#auto-remediation)
    - [Monitoring/Metrics - Observability](#monitoringmetrics---observability)
    - [Scaling](#scaling)
    - [Auto-Scaling](#auto-scaling)
    - [Auto-Configuration tuning](#auto-configuration-tuning)
    - [Uninstalling / Disconnect](#uninstalling--disconnect)
- [Security](#security)
  - [Operator Developer](#operator-developer)
    - [Transparency and Documentation](#transparency-and-documentation)
    - [Operator Scope](#operator-scope)
    - [Vulnerability Analysis](#vulnerability-analysis)
  - [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)
  - [Juju - Model-driven Operator Framework](#juju---model-driven-operator-framework)
- [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)
- [Well known Operators \& patterns](#well-known-operators--patterns)
  - [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)
  - [Operator data modelling](#operator-data-modelling)
  - [References](#references-1)
- [Conclusion](#conclusion)
- [Related Work](#related-work)
  - [References](#references-2)
- [Acknowledgements](#acknowledgements)
  - [V1.1](#v11)
    - [Contributors](#contributors)
    - [Reviewers](#reviewers)
  - [V1.0](#v10)
    - [Contributors](#contributors-1)
    - [Reviewers](#reviewers-1)