Operator Lifecycle Book
===
# Foundational Concepts
[What is an Operator?]()
[Why would I use OLM?]()
[What does OLM allow me to do?]()
[Operators on cluster]()
# Under the hood
[Operands]()
[Operator bundles]()
[Operator catalogs]()
[Subscriptions]()
[Operator dependencies and requirements]()
[Operator update graphs and channels]()
[Operator versioning and release strategies]()
[Operand support matrices]()
[Operator install modes]()
[Operator scoping]()
# Basic Use Cases
How do I install OLM?
How do I package my Operator for OLM?
How do I validate the package?
How do I install my Operator with OLM?
How do I make my Operator part of a catalog?
How do I list Operators available to install?
How do I uninstall an Operator?
How do I discover the presence/availability of an Operator?
How do I troubleshoot a failing installation?
How do I uninstall OLM?
# Advanced Use Cases
When do I need to update my Operator?
How do I create an updated version of my Operator?
How do I test an update before shipping?
How do I ship an updated version of my Operator?
How do I approve an update?
How do I scope down an Operator?
How can I install an Operator when I am not cluster admin?
How do I rely on other Operators with my Operator?
How can I configure / customize my Operator deployment?
How can I set / override defaults to amend runtime behavior of my Operator?
What annotations can I use to drive UIs?
How do I change which users are able to use an Operator?
How do I “hide” particular CRDs not intended for consumption by an end-user?
How do I ship webhooks?
When and how should a running Operator express that it is not upgradeable?
When should an Operator upgrade its Operands?
How should an Operator Author create and package an Operator for a singleton operand?
## Running it
###### tags: `Book`
{"metaMigratedAt":"2023-06-14T23:01:11.297Z","metaMigratedFrom":"Content","title":"Operator Lifecycle Book","breaks":false,"contributors":"[{\"id\":\"7d53b2b1-e174-405b-bf93-46a8f67f2aeb\",\"add\":2279,\"del\":467}]"}