docs/content/en/installation/upgrades/index.md
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.
<p style="text-align:center"> <a href="./images/upgrading-meshery.svg"> </a> <i><small>Figure: Meshery components</small></i> </p>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).
Docker Deployment: Watchtower updates this component in accordance with the user’s release channel subscription.</td>
</tr>
<tr>
<td>Load Generators</td>
</tr>
<tr>
<td>Database</td>
</tr>
<tr>
<td rowspan="2" class="childcomponent">Meshery Operator</td>
<td>MeshSync</td>
<td>Meshery Operator manages the lifecycle of this component and its sub-components.</td>
</tr>
<tr>
<td>Meshery Broker</td>
<td>Meshery Operator manages the lifecycle of this event bus component.</td>
</tr>
<tr>
<td class="childcomponent">mesheryctl</td>
<td></td>
<td><code>mesheryctl</code> manages the lifecycle of Meshery Server.
<ul>
<li><code>system start</code> calls system update by default, which updates the server and existing adapters, but doesn’t update <code>meshery.yaml</code>. Unless the <code>skipUpdate</code> flag is used, operators are also updated here.</li>
<li><code>system reset</code> retrieves <code>docker-compose.yaml</code> from GitHub (use a Git tag to reset to the right Meshery version).</li>
<li><code>system restart</code> also updates operators, unless the <code>skipUpdate</code> flag is used.</li>
<li><code>system update</code> updates operators in case of both Docker and Kubernetes deployments.</li>
<li><code>system context</code> manages <code>config.yaml</code>, which manages <code>meshery.yaml</code>.</li>
<li><code>mesheryctl</code> should generally check for the latest release and inform the user.</li>
</ul>
</td>
</tr>
<tr>
<td rowspan="2" class="childcomponent"><a style="color:white;" href="/extensibility/providers">Remote Providers</a></td>
<td>Meshery Cloud</td>
<td>Process Extension: Integrators manage the lifecycle of their Remote Providers. The process is unique per provider.</td>
</tr>
<tr>
<td>Meshery Extensions</td>
<td>Static Extension: Integrators manage the lifecycle of their Meshery Extensions. The process is unique per provider.</td>
</tr>
Sub-components deploy as a unit; however, they do not share the same version number.
In order to pull the latest images for Meshery Server, Adapters, and UI, execute the following command:
<pre class="codeblock-pre"><div class="codeblock"> <div class="clipboardjs">mesheryctl system update</div></div> </pre>If you wish to update a running Meshery deployment with the images you just pulled, you'll also have to execute:
<pre class="codeblock-pre"><div class="codeblock"> <div class="clipboardjs">mesheryctl system restart</div></div> </pre>Use kubectl apply or helm to upgrade the Meshery application manifests in your Kubernetes cluster.
The Meshery command-line client, mesheryctl, is available in different package managers. Use the instructions relevant to your environment.
mesheryctl using Homebrewmesheryctl using BashUpgrade mesheryctl and run Meshery on Mac or Linux with this script:
mesheryctl using ScoopTo upgrade mesheryctl, execute the following command:
{{< related-discussions tag="meshery" >}}