Bird
Raised Fist0
Kubernetesdevops~5 mins

OperatorHub for community operators in Kubernetes - Commands & Configuration

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
OperatorHub is a place where you can find and install Kubernetes operators made by the community. Operators help you manage complex applications on Kubernetes automatically, saving you time and effort.
When you want to add new capabilities to your Kubernetes cluster without writing complex scripts.
When you need to deploy and manage databases or middleware with automatic updates and backups.
When you want to try community-built operators for popular software like Prometheus or Elasticsearch.
When you want to simplify managing application lifecycle tasks like upgrades and scaling.
When you want to share your own operator with others in the Kubernetes community.
Commands
This command lists all available operators from OperatorHub in the 'olm' namespace where Operator Lifecycle Manager stores them.
Terminal
kubectl get packagemanifests -n olm
Expected OutputExpected
NAME PACKAGE CHANNEL CURRENTCSV AGE prometheus-operator prometheus-operator stable prometheus-operator.v0.47.0 10d etcd etcd stable etcdoperator.v0.9.4 10d elasticsearch elasticsearch-operator stable elasticsearch-operator.v1.2.0 10d
This command installs the Prometheus operator from OperatorHub by applying its installation manifest directly from the web.
Terminal
kubectl create -f https://operatorhub.io/install/prometheus.yaml
Expected OutputExpected
namespace/monitoring created serviceaccount/prometheus-operator created clusterrole.rbac.authorization.k8s.io/prometheus-operator created clusterrolebinding.rbac.authorization.k8s.io/prometheus-operator created deployment.apps/prometheus-operator created
This command checks that the Prometheus operator pods are running in the 'monitoring' namespace after installation.
Terminal
kubectl get pods -n monitoring
Expected OutputExpected
NAME READY STATUS RESTARTS AGE prometheus-operator-5f7d9f7d7b-abcde 1/1 Running 0 2m
This command lists the ClusterServiceVersions (CSVs) which show the installed operator versions and their status.
Terminal
kubectl get csv -n monitoring
Expected OutputExpected
NAME DISPLAY VERSION REPLACES PHASE prometheus-operator.v0.47.0 Prometheus Operator 0.47.0 prometheus-operator.v0.46.0 Succeeded
Key Concept

If you remember nothing else from this pattern, remember: OperatorHub lets you easily find and install community operators to automate managing apps on Kubernetes.

Common Mistakes
Trying to install an operator without Operator Lifecycle Manager (OLM) installed.
Operators from OperatorHub require OLM to manage their lifecycle, so installation will fail or operators won't work properly.
First install OLM on your cluster before installing operators from OperatorHub.
Applying operator manifests from unknown or untrusted sources.
This can lead to security risks or unstable operators running in your cluster.
Always use official OperatorHub URLs or verified sources to install operators.
Not checking the operator pod status after installation.
The operator might fail to start or crash, causing your app management to break silently.
Always verify operator pods are running and healthy with kubectl get pods.
Summary
Use 'kubectl get packagemanifests -n olm' to see available community operators.
Install an operator by applying its manifest from OperatorHub.
Verify operator pods and ClusterServiceVersions to ensure successful installation.

Practice

(1/5)
1. What is OperatorHub in Kubernetes?
easy
A. A tool to monitor Kubernetes cluster health
B. A marketplace for community-made Kubernetes operators
C. A command to deploy pods automatically
D. A storage solution for Kubernetes volumes

Solution

  1. Step 1: Understand the purpose of OperatorHub

    OperatorHub is designed as a marketplace where community developers share Kubernetes operators.
  2. Step 2: Compare options with the definition

    Only A marketplace for community-made Kubernetes operators correctly describes OperatorHub as a marketplace for community-made operators.
  3. Final Answer:

    A marketplace for community-made Kubernetes operators -> Option B
  4. Quick Check:

    OperatorHub = Marketplace for operators [OK]
Hint: Remember: OperatorHub = community operator marketplace [OK]
Common Mistakes:
  • Confusing OperatorHub with monitoring tools
  • Thinking OperatorHub manages storage
  • Assuming OperatorHub deploys pods directly
2. Which command lists available operators from OperatorHub?
easy
A. kubectl show operatorhub
B. kubectl list operators
C. kubectl get packagemanifests
D. kubectl get operators

Solution

  1. Step 1: Recall the command to view OperatorHub operators

    The correct command is 'kubectl get packagemanifests' to list available operators.
  2. Step 2: Eliminate incorrect commands

    Other options are not valid kubectl commands for this purpose.
  3. Final Answer:

    kubectl get packagemanifests -> Option C
  4. Quick Check:

    List operators = kubectl get packagemanifests [OK]
Hint: Use 'kubectl get packagemanifests' to list operators [OK]
Common Mistakes:
  • Using 'kubectl get operators' which is invalid
  • Trying 'kubectl list operators' which does not exist
  • Confusing with 'kubectl show operatorhub'
3. What happens when you create a Subscription resource pointing to an OperatorHub operator?
medium
A. The cluster restarts immediately
B. The operator is listed but not installed
C. The operator is removed from the cluster
D. The operator is installed and updates are managed automatically

Solution

  1. Step 1: Understand Subscription resource role

    Creating a Subscription tells Kubernetes to install the operator and manage updates.
  2. Step 2: Analyze each option

    Only The operator is installed and updates are managed automatically correctly describes installation and update management. Others describe unrelated or incorrect effects.
  3. Final Answer:

    The operator is installed and updates are managed automatically -> Option D
  4. Quick Check:

    Subscription = install + auto-update operator [OK]
Hint: Subscription resource installs and updates operators [OK]
Common Mistakes:
  • Thinking Subscription only lists operators
  • Assuming Subscription removes operators
  • Believing Subscription causes cluster restart
4. You tried to install an operator by creating a Subscription but it did not install. What is a likely cause?
medium
A. The Subscription resource is missing the correct channel or package name
B. The Kubernetes cluster is offline
C. OperatorHub is not installed on the cluster
D. You used 'kubectl get packagemanifests' instead of 'kubectl apply'

Solution

  1. Step 1: Check Subscription resource correctness

    If the Subscription lacks the right channel or package name, the operator won't install.
  2. Step 2: Evaluate other options

    Cluster offline would prevent all commands; OperatorHub is a service, not installed; wrong command usage is unrelated to Subscription creation.
  3. Final Answer:

    The Subscription resource is missing the correct channel or package name -> Option A
  4. Quick Check:

    Subscription details must be correct to install operator [OK]
Hint: Check Subscription fields: channel and package name [OK]
Common Mistakes:
  • Assuming OperatorHub must be installed separately
  • Confusing command usage with resource correctness
  • Ignoring Subscription spec details
5. You want to install a community operator from OperatorHub that requires a specific namespace and approval strategy. How do you ensure this during installation?
hard
A. Create a Subscription with 'installPlanApproval' set to 'Manual' and specify the target namespace
B. Run 'kubectl install operator --namespace target' directly
C. Modify the OperatorHub source code to add namespace and approval
D. Use 'kubectl get packagemanifests' with flags for namespace and approval

Solution

  1. Step 1: Understand Subscription customization

    Subscription resource supports 'installPlanApproval' to control approval and allows specifying target namespace.
  2. Step 2: Evaluate other options

    Direct kubectl install command does not exist; modifying OperatorHub source is unnecessary; 'kubectl get packagemanifests' only lists operators.
  3. Final Answer:

    Create a Subscription with 'installPlanApproval' set to 'Manual' and specify the target namespace -> Option A
  4. Quick Check:

    Subscription controls approval and namespace settings [OK]
Hint: Set 'installPlanApproval' and namespace in Subscription YAML [OK]
Common Mistakes:
  • Trying to install operators with non-existent kubectl commands
  • Editing OperatorHub code instead of Subscription
  • Using 'kubectl get' commands to install