Skip to content

Commit 6efde4f

Browse files
Add application upgrade docs (#237)
* Add application upgrade docs An overview of the core concepts behind the upgrade flow. * Update pages/getting-started/understanding-upgrades.md Co-authored-by: Klink <[email protected]> * Update pages/getting-started/understanding-upgrades.md Co-authored-by: Klink <[email protected]> * Update pages/getting-started/understanding-upgrades.md Co-authored-by: Klink <[email protected]> * Apply suggestions from code review Co-authored-by: Klink <[email protected]> --------- Co-authored-by: Klink <[email protected]>
1 parent 206d738 commit 6efde4f

File tree

4 files changed

+61
-0
lines changed

4 files changed

+61
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
---
2+
title: Understanding The Plural Upgrade Processs
3+
description: >-
4+
A brief overview of how upgrades work within Plural
5+
---
6+
7+
## Overview
8+
9+
The purpose of this doc is to help users understand the nuts-and-bolts of how upgrades work with Plural. There are a few main concepts you need to get a grasp of:
10+
11+
- The states an installation of an app can be in as versions change
12+
- Release channels and how they control upgrades
13+
- The individual upgrade queue for a cluster
14+
- Cluster Promotions and how they control upgrades
15+
16+
## Installation States
17+
18+
Any Plural user can have a set of installations bound to them. These include an installation of a specific app (e.g. Airbyte) and submodules for that app (e.g. a helm chart at some version, and a terraform module at that version). At any given point in time that installation can be:
19+
20+
- Synced/Unsynced - This basically means the installation has changed versions in our API but has not yet been applied in your infrastructure. Generally running `plural deploy` for that app will mark it as synced.
21+
- Locked/Unlocked - This state is used when a manual change is needed. Some changes – like kubernetes upgrades or heavy app migrations – need to be applied manually and not by our console, and this state is meant to pause upgrades for that app until you explicitly mark it as having been applied with `plural repos unlock <app>`.
22+
23+
These states are all visible in our [cluster view](https://app.plural.sh/overview/clusters) in [app.plural.sh](https://app.plural.sh) as shown here:
24+
25+
![](/assets/inst-locked-unlocked.png)
26+
27+
## Release Channels
28+
29+
An app can have any number of release channels which are basically named tags for specific versions of an app. In general these will be:
30+
31+
- latest - always the last version managed by our system
32+
- stable - a channel we frequently maintain based on integration tests we’ve written for apps
33+
- <vsn> - a channel for specific app versions
34+
35+
You can toggle any release channel in the [/clusters](https://app.plural.sh/overview/clusters) page of [app.plural.sh](https://app.plural.sh). This will often result in a lot of your installation being rewired, which will then flush to your console. Here’s an example of the upgrade channels for an airbyte installation:
36+
37+
![](/assets/upgrade-channel.png)
38+
39+
## The Upgrade Queue
40+
41+
When a new version of a helm chart or terraform module is pushed into a release channel, our API will update your installation for you and then push an upgrade into your upgrade queue for the console to apply for you. This is an ordered list, which is meant to be dependency-ordered to properly guide the console to safely apply an upgrade.
42+
43+
That said, the source of truth of what you install is your terraform/helm installation in our API, and this is really a sequence of commands the console is meant to execute on your behalf.
44+
45+
You can see an upgrade queue for a cluster in the [clusters tab](https://app.plural.sh/overview/clusters) in app.plural.sh at any point in time as well.
46+
47+
## Cluster Promotions
48+
49+
Cluster promotions are a mechanism to control all upgrades to a given cluster to allow for dev -> staging -> prod separation. It’s a useful risk management mechanism especially if you’re using apps like airflow that has custom code you inject in the airflow instance that needs to be tested for yourself alongside any given version.
50+
51+
You must be a Pro or Enterprise user of Plural to access promotions, but if you are, it’s a pretty simple process to setup new promotions, this video will give you a walkthrough:
52+
53+
{% embed url="https://www.youtube.com/watch?v=ZGXZmqelHB0&ab_channel=Plural" aspectRatio="16 / 9" /%}
54+
55+
The way the promotion mechanism works is it defers all upgrades for the cluster up to a given point in time. When you promote from a source cluster, it will move that waterline to whatever the source cluster’s waterline was (or the current time if it doesn’t have a source cluster of its own). This allows you to set up long promotion chains like `dev -> staging -> gamma -> prod` as you might like.
56+
57+
This can snowball changes which might cause some confusion if some of those changes were manual changes that result in a `LOCKED` installation. We’ll still deliver emails about those as before, and you’ll be able to see the locked state in the `/clusters` view.
338 KB
Loading

public/assets/upgrade-channel.png

291 KB
Loading

src/NavData.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ const rootNavData: NavMenu = deepFreeze([
7676
href: '/getting-started/admin-console',
7777
title: 'Installing Plural Console',
7878
},
79+
{
80+
href: '/getting-started/understanding-upgrades',
81+
title: 'Understanding Application Upgrades',
82+
},
7983
],
8084
},
8185
{

0 commit comments

Comments
 (0)