Perform an Upgrade

Upgrades include either upgrading the Operator, or upgrading the SingleStore YAML configuration files.

As new versions of the Kubernetes API are released, some of these object manifests will need to be updated to match the updates to the Kubernetes API. When upgrading the Kubernetes version and the Operator, SingleStore recommends updating all of these object definitions to ensure that they are utilizing the proper Kubernetes API version for these objects.

SingleStore recommends using the latest object definition files when performing an upgrade and upgrading one component at a time.

Version Compatibility

Before performing an upgrade, verify that the Operator version is compatible with the target engine version. Always upgrade the Operator before upgrading the engine.

Operator and Engine Compatibility Matrix

Engine Version

Minimum Operator Version

Recommended Operator Version

9.0.x – 9.1.x

4.14.0

Latest version

8.9.x

3.258.0

Latest version

Note

SingleStore recommends always using the latest Operator version.

Upgrade the Operator

Note

Please confirm that the cluster is stable before performing the upgrade.

Typically, upgrading the Operator will cause the cluster to restart.

  1. Edit the sdb-operator.yaml file and update spec.template.spec.containers[0].image with a later version of Operator image.

    Note: When upgrading from Operator 1.2.5 or earlier, be sure to include the required --cluster-id field and a value to this file. Refer to the sdb-operator.yaml file for additional information.

  2. Apply the upgrade.

    kubectl apply -f sdb-operator.yaml

Upgrade the SingleStore Engine

Note

To upgrade to SingleStore version 8.1 and later, you must first upgrade the Operator to version 3.40.3 or later.

Please confirm that the cluster is stable before performing the upgrade. Reviewing the Operator log to confirm that there are no general Operator operations in progress is recommended.

  1. Edit the sdb-cluster.yaml file and replace spec.nodeImage.repository and spec.nodeImage.tag with a later version of the node image.

  2. Apply the upgrade.

    kubectl apply -f sdb-cluster.yaml

Should an upgrade to SingleStore version 8.1 either stall or fail:

  1. Update spec.template.spec.containers[0].image to singlestore/operator:3.40.3-d2c54262.

  2. Delete the leaf-ag1 StatefulSet.

Warning

It is only possible to upgrade to a later SingleStore engine image. The engine upgrade cannot be rolled back.

Upgrade Best Practices

Upgrade Order

  1. Verify that the cluster is stable before starting the upgrade.

  2. Back up all databases.

  3. Upgrade the Operator to a version that is compatible with the target engine version.

  4. Verify that the Operator is reconciling successfully by checking the Operator logs. Refer to View the Operator Logs for more information.

  5. Upgrade the engine by updating the nodeImage fields in the CR file and applying it.

Rollback

  • Operator: Revert sdb-operator.yaml to the previous image and reapply it.

  • Engine: Engine downgrades are not supported. Restore from a backup if necessary. A backup can only be restored to the same engine version or a later version.

Last modified:

Was this article helpful?

Verification instructions

Note: You must install cosign to verify the authenticity of the SingleStore file.

Use the following steps to verify the authenticity of singlestoredb-server, singlestoredb-toolbox, singlestoredb-studio, and singlestore-client SingleStore files that have been downloaded.

You may perform the following steps on any computer that can run cosign, such as the main deployment host of the cluster.

  1. (Optional) Run the following command to view the associated signature files.

    curl undefined
  2. Download the signature file from the SingleStore release server.

    • Option 1: Click the Download Signature button next to the SingleStore file.

    • Option 2: Copy and paste the following URL into the address bar of your browser and save the signature file.

    • Option 3: Run the following command to download the signature file.

      curl -O undefined
  3. After the signature file has been downloaded, run the following command to verify the authenticity of the SingleStore file.

    echo -n undefined |
    cosign verify-blob --certificate-oidc-issuer https://oidc.eks.us-east-1.amazonaws.com/id/CCDCDBA1379A5596AB5B2E46DCA385BC \
    --certificate-identity https://kubernetes.io/namespaces/freya-production/serviceaccounts/job-worker \
    --bundle undefined \
    --new-bundle-format -
    Verified OK

Try Out This Notebook to See What’s Possible in SingleStore

Get access to other groundbreaking datasets and engage with our community for expert advice.