Chapter 3. 3scale operator-based upgrade guide: from 2.11 to 2.12


Upgrade Red Hat 3scale API Management from version 2.11 to 2.12, in an operator-based installation to manage 3scale on OpenShift 4.x.

To automatically obtain a micro-release of 3scale, make sure automatic updates is on. To check this, see Setting up the 3scale operator for micro releases.

Important

In order to understand the required conditions and procedure, read the entire upgrade guide before applying the listed steps. The upgrade process disrupts the provision of the service until the procedure finishes. Due to this disruption, make sure to have a maintenance window.

3.1. Prerequisites to perform the upgrade

This section describes the required configurations to upgrade 3scale from 2.11 to 2.12 in an operator-based installation.

  • An OpenShift Container Platform (OCP) 4.6, 4.7, 4.8, 4.9, or 4.10 cluster with administrator access.
  • 3scale 2.11 previously deployed via the 3scale operator.
  • Make sure the latest CSV of the threescale-2.11 channel is in use. To check it:

    • If the approval setting for the subscription is automatic you should already be in the latest CSV version of the channel.
    • If the approval setting for the subscription is manual make sure you approve all pending InstallPlans and have the latest CSV version.
    • Keep in mind if there is a pending install plan, there might be more pending install plans, which will only be shown after the existing pending plan has been installed.

3.2. Upgrading from 2.11 to 2.12 in an operator-based installation

To upgrade 3scale from version 2.11 to 2.12 in an operator-based deployment:

  1. Log in to the OCP console using the account with administrator privileges.
  2. Select the project where the 3scale-operator has been deployed.
  3. Click Operators > Installed Operators.
  4. Select Red Hat Integration - 3scale > Subscription > Channel.
  5. Edit the channel of the subscription by selecting threescale-2.12 and save the changes.

    This will start the upgrade process.

  6. Query the pods' status on the project until you see all the new versions are running and ready without errors:

    $ oc get pods
    Note
    • The pods might have temporary errors during the upgrade process.
    • The time required to upgrade pods can vary from 5-10 minutes.
  7. After new pod versions are running, confirm a successful upgrade by logging in to the 3scale Admin Portal and checking that it works as expected.
  8. Check the status of the APIManager objects and get the YAML content by running the following command. <myapimanager> represents the name of your APIManager:

    $ oc get apimanager <myapimanager> -o yaml
    • The new annotations with the values should be as follows:

      apps.3scale.net/apimanager-threescale-version: "2.12"
      apps.3scale.net/threescale-operator-version: "0.9.0"

After you have performed all steps, 3scale upgrade from 2.11 to 2.12 in an operator-based deployment is complete.

3.2.1. Upgrading the external MySQL version to 8.0

If your 3scale deployment has the external databases mode enabled and uses MySQL 8.0, set the authentication plugin to mysql_native_password for 3scale 2.12.

Add the following to the MySQL configuration file.

[mysqld]
default_authentication_plugin=mysql_native_password

3.2.2. Removing unused MessageBus variables

If your 3scale deployment has the external databases mode enabled, you must manually remove the MESSAGE_BUS_* field from the system-redis secret.

  1. Remove MESSAGE_BUS_* fields from the system-redis secret. If the secret is not managed by external controller, update manually using the following commands:

    $ oc patch secret/system-redis --type=json -p "[{'op': 'remove', 'path': '/data/MESSAGE_BUS_URL'}]"
    $ oc patch secret/system-redis --type=json -p "[{'op': 'remove', 'path': '/data/MESSAGE_BUS_NAMESPACE'}]"
    $ oc patch secret/system-redis --type=json -p "[{'op': 'remove', 'path': '/data/MESSAGE_BUS_SENTINEL_HOSTS'}]"
    $ oc patch secret/system-redis --type=json -p "[{'op': 'remove', 'path': '/data/MESSAGE_BUS_SENTINEL_ROLE'}]"
  2. Verify MESSAGE_BUS_* fields do not exist. The following command should return empty:

    $ oc get secret system-redis -o yaml | grep MESSAGE_BUS

3.2.3. Upgrading with external system-database using PostgreSQL 10 and PostgreSQL 13

This upgrade supports external system-database using PostgreSQL 10. You should complete your 3scale upgrade first, then upgrade to PostgreSQL 13.

Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.