Upgrading the Mission Control Agent in Kubernetes

In most cases, for Kubernetes deployments of PubSub+ Cloud in a Customer-Controlled Region, the Mission Control Agent is self-upgrading, so no action is required. Note that this may depend on the version of the Mission Control Agent that you have. You can contact Solace to see if your Mission Control Agent is self-upgrading. If your Mission Control Agent is not self-upgrading, you can upgrade it in conjunction with Solace by performing the steps described on this page.

Upgrades to the Mission Control Agent are necessary for these reasons:

  • To pick up the most recent security updates (maintenance releases).
  • To be able to upgrade event broker services to a more recent release.
  • To pick up functionality or features, because they often require an updated Mission Control Agent.

For information about event broker services and upgrades, see Upgrading Event Broker Services in PubSub+ Cloud.

Before You Begin

Review the following information before you start upgrading the Mission Control Agent:

  • The procedures listed must be executed in conjunction with Solace to help you to keep your Mission Control Agents up-to-date. Before you begin any procedure to upgrade your Mission Control Agent, contact Solace

    You must know the version number of the Helm chart that you are updating from because it determines which of the following procedures to use:

  • The following are the descriptions for the variables in the procedures to upgrade the Mission Control Agent:

    • <data_center_values.yaml>—The YAML file that was previously used to deploy the Mission Control Agent to your environment; this file should be the same as the one in production if you aren't changing anything other upgrading your Mission Control Agent.
    • <namespace>—The namespace for Mission Control Agent that you created when you had first deployed, such as solace.
    • <release_name>—The name of the cloud-release. This is the value you used to deploy the release that you've specified, such as cloud-agent-rel.
    • <version_of_helm_chart_upgrade_from>—The name and the version of the Helm chart that's provided by Solace. Contact Solace for information from your deployment if you don't have this.
    • <new_version_of_helm_chart_upgrade_to>—The name and the version of the Helm chart to upgrade to. Contact Solace for this information. This can be an URL or a network location.
  • If you need to determine the namespace values and releasename, but you don't remember them, you can run the following commands to find the information when you connect to your Kubernetes cluster:

    • If you don't know the <namespace> or <release_name>, use this command:

      helm ls
    • If you know the <namespace> is solace and <release_name> is cloud-agent-rel, but want to find a specific release to upgrade using Helm chart version solace-cloud-ca-0.10.1, you can use this command:

      helm ls -n <namespace> | grep <release_name> \
           | awk '{print $9}' <version_of_helm_chart_upgrade_from>

      Based on the example data, the command would be this:

      helm ls -n solace | grep cloud-agent-rel \
           | awk '{print $9}' solace-cloud-ca-0.10.1

      You can also do this using the jq command where the <namespace> is solace using the following command:

      You might need to first install jq before you can run the command [e.g., brew install jq (macOS), apt-get install jq or yum install jq (Linux)].

      helm ls -n <namespace> -o json | \
           jq '.[] | select(.name=="<version_of_helm_chart_upgrade_from>").chart'

      Based on the example data, the command would be this:

      helm ls -n solace -o json \ 
           | jq '.[] | select(.name=="solace-cloud-ca-0.10.1").chart'

Upgrading with Helm Chart Prior to Version 0.10.1

Before you start this procedure, ensure that you review the information in the Before You Begin. Use the steps in this section only if you're updating with a Helm chart version that's earlier than 0.10.1. The examples below use variables set to the following values:

  • <namespace> as solace
  • <release-name> as cloud-agent-rel
  • <version_of_helm_chart_upgrade_from> as solace-cloud-ca-0.10.0 (this older release is specific to you)
  • <new_version_of_helm_chart_upgrade_to> as https://URL.fromSolace.com/solace-cloud-ca-new.tgz (note that the location is just an example and is not a valid URL. Contact Solace for this information.)
  • <data_center_values.yaml>as values.yaml

If you're updating a Helm chart version that's earlier than 0.10.1, use the following steps to upgrade your Mission Control Agent:

  1. Connect to the Kubernetes cluster to that you want upgrade.
  2. Check that the <data_center_values.yaml> file specific to your data center is the same as the one in production for the same data center.
  3. Upgrade the Helm chart using the command:

    helm upgrade <release-name> <version_of_helm_chart_upgrade_from> --namespace <namespace> --values <data_center_values.yaml>

    For example:

    helm upgrade cloud-agent-rel solace-cloud-ca-0.10.0 --namespace solace --values values.yaml
  4. Delete the Mission Control Agent deployment using the following command:

    helm delete --namespace <namespace> <release_name>

    For example:

    helm delete --namespace solace cloud-agent-rel
  5. Re-install the Mission Control Agent Helm deployment with the following command:

    helm install <release-name> <new_version_of_helm_chart_upgrade_to> \
                 --namespace <namespace> --values <data_center_values.yaml>

    For example:

    helm install cloud-agent-rel \
    https://URL.fromSolace.com/solace-cloud-ca-newchart.tgz --namespace solace --values values.yaml
  6. Verify that the Mission Control Agent is running using the kubectl command.

     kubectl get pods --namespace <namespace>

    For example, if you namespace was solace, you would run this command:

     kubectl get pods --namespace solace

    Your Mission Control Agent is now in the running state.

Upgrading with Helm Chart Version 0.10.1 or later

Before you start this procedure, ensure that you review the information in the Before You Begin. Use the steps in this section only if you're updating with a Helm chart version that's 0.10.1 or later. The examples below use these variables set to the following values:

  • <namespace> as solace
  • <release-name> as cloud-agent-rel
  • <new_version_of_helm_chart_upgrade_to> as https://URL.fromSolace.com/solace-cloud-ca-new.tgz (note that the location is just an example and is not a valid URL. Contact Solace for this information.)
  • <data_center_values.yaml> as values.yaml:

If you're upgrading from a Helm chart version that's 0.10.1 or later, use the following steps to upgrade your Mission Control Agent.

  1. Connect to the Kubernetes cluster that you want to upgrade.
  2. Check that the values.yaml file specific to your data center is the same as the one in production for the same data center.
  3. Upgrade the Helm chart using this command:

    helm upgrade <release_name> \
         <new_version_of_helm_chart_upgrade_to> \
         --namespace <namespace> --values <data_center_values.yaml>

    For example:

    helm upgrade cloud-agent-rel \
         https://URL.fromSolace.com/solace-cloud-ca-new.tgz \
          --namespace solace --values values.yaml
  4. Verify that the Mission Control Agent is running using the kubectl command:

     kubectl get pods --namespace <namespace>

    For example, if your namespace was solace, you would run this command:

     kubectl get pods --namespace solace

    Your Mission Control Agent is now in the running state.