×

A Subscription custom resource (CR) that subscribes the namespace to metallb-system by default, automatically sets the installPlanApproval parameter to Automatic. This means that when Red Hat-provided Operator catalogs include a newer version of the MetalLB Operator, the MetalLB Operator is automatically upgraded.

If you need to manually control upgrading the MetalLB Operator, set the installPlanApproval parameter to Manual.

Manually upgrading the MetalLB Operator

To manually control upgrading the MetalLB Operator, you must edit the Subscription custom resource (CR) that subscribes the namespace to metallb-system. A Subscription CR is created as part of the Operator installation and the CR has the installPlanApproval parameter set to Automatic by default.

Prerequisites
  • You updated your cluster to the latest z-stream release.

  • You used OperatorHub to install the MetalLB Operator.

  • Access the cluster as a user with the cluster-admin role.

Procedure
  1. Get the YAML definition of the metallb-operator subscription in the metallb-system namespace by entering the following command:

    $ oc -n metallb-system get subscription metallb-operator -o yaml
  2. Edit the Subscription CR by setting the installPlanApproval parameter to Manual:

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: metallb-operator
      namespace: metallb-system
    # ...
    spec:
       channel: stable
       installPlanApproval: Manual
       name: metallb-operator
       source: redhat-operators
       sourceNamespace: openshift-marketplace
    # ...
  3. Find the latest OKD 4 version of the MetalLB Operator by entering the following command:

    $ oc -n metallb-system get csv
    Example output

    NAME                       DISPLAY            VERSION    REPLACES    PHASE
    metallb-operator.v4.0   MetalLB Operator   4.0                 Succeeded
  4. Check the install plan that exists in the namespace by entering the following command.

    $ oc -n metallb-system get installplan
    Example output that shows install-tsz2g as a manual install plan

    NAME            CSV                                     APPROVAL    APPROVED
    install-shpmd   metallb-operator.v4.0-202502261233   Automatic   true
    install-tsz2g   metallb-operator.v4.0-202503102139   Manual      false
  5. Edit the install plan that exists in the namespace by entering the following command. Ensure that you replace <name_of_installplan> with the name of the install plan, such as install-tsz2g.

    $ oc edit installplan <name_of_installplan> -n metallb-system
    1. With the install plan open in your editor, set the spec.approval parameter to Manual and set the spec.approved parameter to true.

      After you edit the install plan, the upgrade operation starts. If you enter the oc -n metallb-system get csv command during the upgrade operation, the output might show the Replacing or the Pending status.

Verification
  1. Verify the upgrade was successful by entering the following command:

    $ oc -n metallb-system get csv
    Example output

    NAME                                        DISPLAY                 VERSION                           REPLACE                                 PHASE
    metallb-operator.v<latest>.0-202503102139   MetalLB Operator        4.0-202503102139               metallb-operator.v4.0-202502261233   Succeeded