Bird
Raised Fist0
Kubernetesdevops~20 mins

OperatorHub for community operators in Kubernetes - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
OperatorHub Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
What is the primary purpose of OperatorHub in Kubernetes?

OperatorHub is a key resource in Kubernetes for managing operators. What is its main role?

AIt is a tool to monitor Kubernetes cluster health metrics.
BIt provides a centralized catalog to discover and install Kubernetes Operators.
CIt manages user authentication and authorization in Kubernetes.
DIt automates container image builds and pushes to registries.
Attempts:
2 left
💡 Hint

Think about where you find and add new operators to your cluster.

💻 Command Output
intermediate
1:30remaining
Output of listing community operators from OperatorHub CLI

What is the expected output of the following command?

kubectl get packagemanifests -n olm
AA list of available operators with their names, versions, and descriptions.
BAn error stating 'packagemanifests' resource not found.
CA list of all namespaces in the cluster.
DA list of running pods in the 'olm' namespace.
Attempts:
2 left
💡 Hint

Consider what 'packagemanifests' represent in Operator Lifecycle Manager (OLM).

Configuration
advanced
2:00remaining
Configuring OperatorHub to enable a community operator source

You want to enable a community operator source in OperatorHub by editing the OperatorHub custom resource. Which snippet correctly enables the community operators source?

Kubernetes
apiVersion: operators.coreos.com/v1
kind: OperatorHub
metadata:
  name: cluster
spec:
  sources:
  - name: community-operators
    disabled: false
A
spec:
  sources:
  - name: community-operators
    disabled: false
B
spec:
  sources:
  - name: community-operators
    enabled: true
C
spec:
  sources:
  - name: community-operators
    active: true
D
spec:
  sources:
  - name: community-operators
    status: enabled
Attempts:
2 left
💡 Hint

Check the correct field name to enable a source in OperatorHub spec.

Troubleshoot
advanced
2:00remaining
Troubleshooting why a community operator is not visible in OperatorHub UI

You installed a community operator source but it does not appear in the OperatorHub UI. What is the most likely cause?

AThe Kubernetes cluster version is too new for OperatorHub to work.
BThe user does not have permission to view pods in the 'olm' namespace.
CThe operator image is missing from the container registry.
DThe community operator source is disabled in the OperatorHub configuration.
Attempts:
2 left
💡 Hint

Check the OperatorHub source settings first.

🔀 Workflow
expert
3:00remaining
Steps to add a new community operator to OperatorHub catalog

Arrange the correct order of steps to add a new community operator to the OperatorHub catalog.

A1,3,2,4
B2,1,3,4
C1,2,3,4
D3,1,2,4
Attempts:
2 left
💡 Hint

Think about building, publishing, cataloging, then submitting.

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