Upgrade Guide

Upgrading Meshery Server, Adapters, and UI

Various components of Meshery will need to be upgraded as new releases become available. Meshery is comprised of a number of components including a server, adapters, UI, and CLI. As an application, Meshery is a composition of different functional components.


Figure: Meshery components

Some of the components must be upgraded simultaneously, while others may be upgraded independently. The following table depicts components, their versions, and deployment units (deployment groups).

Versioning of Meshery components

Components Sub-component Considering or Updating
Meshery Adapters Any and All Adapters Docker Deployment: Watchtower updates this component in accordance with the user’s release channel subscription.
Meshery Server Meshery UI Manages lifecycle of Meshery Operator; Adapters, UI, Load Generators, Database.

Docker Deployment: Watchtower updates this component in accordance with the user’s release channel subscription.
Load Generators
Database
Meshery Operator MeshSync Meshery Operator manages the lifecycle of this component and its sub-components.
Meshery Broker Meshery Operator manages the lifecycle of this event bus component.
`mesheryctl` mesheryctl manages the lifecycle of Meshery Server.

  • system start calls system update by default, which updates server and existing adapters, but doesn’t update meshery.yaml. Unless the skipUpdate flag is used, operators are also updated here.
  • system reset retrieving docker-compose.yaml from GitHub (use git tag to reset to the right Meshery version).
  • system restart also updates operators, unless the skipUpdate flag is used.
  • system update updates operators in case of both docker and kubernetes deployments.
  • system context manages config.yaml, which manages meshery.yaml.
  • mesheryctl should generally be checking for latest release and informing user.
Remote Providers Meshery Cloud Process Extension: Integrators manage the lifecycle of their Remote Providers. Process is unique per provider.
Meshery Cloud Static Extension: Integrators manage the lifecycle of their Meshery Extensions. Process is unique per provider.

Sub-components deploy as a unit, however, they do not share the same version number.

Meshery Docker Deployments

In order to pull the latest images for Meshery Server, Adapters, and UI, execute the following command:

mesheryctl system update

If you wish to update a running Meshery deployment with the images you just pulled, you’ll also have to execute:

mesheryctl system restart

Meshery Kubernetes Deployments

Use kubectl apply or helm to upgrade the Meshery application manifests in your Kubernetes cluster.

Upgrading Meshery CLI

The Meshery command line client, mesheryctl, is available in different package managers. Use the instructions relevant to your environment.

Upgrading mesheryctl using Homebrew

To upgrade `mesheryctl`, execute the following command:

brew upgrade mesheryctl

Upgrading mesheryctl using Bash

Upgrade mesheryctl and run Meshery on Mac or Linux with this script:

 
curl -L https://meshery.io/install | DEPLOY_MESHERY=false bash -

Upgrading mesheryctl using Scoop

To upgrade mesheryctl, execute the following command:

 
scoop update mesheryctl