From c761f5c2e2bbdc8b3ecf459b559fdbd916feec41 Mon Sep 17 00:00:00 2001 From: mikeCRL Date: Mon, 16 Dec 2024 11:52:17 -0500 Subject: [PATCH 1/8] Various updates --- .../common/upgrade/major-version-upgrade-cloud.md | 2 +- src/current/_includes/common/upgrade/overview.md | 2 +- .../common/upgrade/upgrade-high-level-standard.md | 12 ++++++++++++ src/current/_includes/v24.3/upgrade-requirements.md | 2 +- src/current/cockroachcloud/cluster-management.md | 6 ++++-- .../cockroachcloud/upgrade-cockroach-version.md | 7 ++++++- src/current/cockroachcloud/upgrade-policy.md | 4 ++-- 7 files changed, 27 insertions(+), 8 deletions(-) create mode 100644 src/current/_includes/common/upgrade/upgrade-high-level-standard.md diff --git a/src/current/_includes/common/upgrade/major-version-upgrade-cloud.md b/src/current/_includes/common/upgrade/major-version-upgrade-cloud.md index 21481e212b7..e7c72befed1 100644 --- a/src/current/_includes/common/upgrade/major-version-upgrade-cloud.md +++ b/src/current/_includes/common/upgrade/major-version-upgrade-cloud.md @@ -13,7 +13,7 @@ This section shows how to perform a major-version upgrade for a cluster in Cockr For details, refer the [CockroachDB Cloud Support Policy]({% link cockroachcloud/upgrade-policy.md %}#cockroachdb-cloud-support-policy). - To check whether major-version upgrades are available, click the three-dot **Action** menu. If upgrades are available, **Upgrade major version** will be enabled. Click it. In the dialog, if only one newer major version upgrade is available, it is selected automatically. If multiple upgrades are available, the latest Regular release is selected by default. If you intend to upgrade the cluster, keep this dialog open while completing the next steps. Otherwise, close the dialog. + To check whether major-version upgrades are available, click the three-dot **Actions** menu. If upgrades are available, **Upgrade major version** will be enabled. Click it. In the dialog, if only one newer major version upgrade is available, it is selected automatically. If multiple upgrades are available, the latest Regular release is selected by default. If you intend to upgrade the cluster, keep this dialog open while completing the next steps. Otherwise, close the dialog. 1. Before beginning a major-version upgrade, review its [Release notes]({% link releases/index.md %}), as well as the release notes for any skipped Innovation Releases. If any backward-incompatible changes or new features impact the cluster's workloads, you may need to make adjustments before beginning the upgrade. 1. A CockroachDB {{ site.data.products.standard }} or {{ site.data.products.basic }} cluster remains fully available while it is upgraded. For a multi-node CockroachDB {{ site.data.products.advanced }} cluster, nodes are upgraded one at a time in a rolling fashion so the cluster remains available, with one node unavailable at a time. A single-node {{ site.data.products.advanced }} cluster will be unavailable while the cluster is upgraded and restarted. If necessary, prepare for the upgrade by communicating ahead of time with your users, and plan to begin the upgrade during a time when the impact on the cluster's workload will be minimized. 1. To begin a major-version upgrade, go back to the dialog in the CockroachDB {{ site.data.products.cloud }} Console. If multiple upgrades are available, select the desired version. Review the details, then click **Start upgrade**. The dialog closes, and the **Version** column in the **Cluster List** page changes to **Upgrading**. When the upgrade has finished but has not yet been finalized, the **Version** column reports that the new version is **pending**. diff --git a/src/current/_includes/common/upgrade/overview.md b/src/current/_includes/common/upgrade/overview.md index d0748be0975..58492f89084 100644 --- a/src/current/_includes/common/upgrade/overview.md +++ b/src/current/_includes/common/upgrade/overview.md @@ -3,7 +3,7 @@ CockroachDB offers the following types of upgrades: - **Major-version upgrades**: A [major-version upgrade]({% link releases/index.md %}#major-releases) moves a cluster from one major version of CockroachDB to another, such as from v24.2 to v24.3. A major-version upgrade may include new features, updates to cluster setting defaults, and backward-incompatible changes. Performing a major-version upgrade requires an additional step to finalize the upgrade. {% if page.path contains "cockroachcloud" %} - As of 2024, every second major version is an [Innovation release]({% link cockroachcloud/upgrade-policy.md %}#innovation-releases). For CockroachDB {{ site.data.products.standard }} and CockroachDB {{ site.data.products.advanced }}, innovation releases offer shorter support windows and can be skipped. Innovation releases are required for CockroachDB {{ site.data.products.basic }}, and are applied automatically. + As of 2024, there are four major versions per year, where every second release is an [Innovation release]({% link cockroachcloud/upgrade-policy.md %}#innovation-releases). For CockroachDB {{ site.data.products.standard }} and CockroachDB {{ site.data.products.advanced }}, innovation releases offer shorter [support windows]({% link cockroachcloud/upgrade-policy.md %}#cockroachdb-cloud-support-policy) and can be skipped. Innovation releases are required for CockroachDB {{ site.data.products.basic }}, and are applied automatically. {% else %} As of 2024, every second major version is an [Innovation release]({% link releases/release-support-policy.md %}#innovation-releases). Innovation releases offer shorter support windows and can be skipped. {% endif %} diff --git a/src/current/_includes/common/upgrade/upgrade-high-level-standard.md b/src/current/_includes/common/upgrade/upgrade-high-level-standard.md new file mode 100644 index 00000000000..f67f16dd8ec --- /dev/null +++ b/src/current/_includes/common/upgrade/upgrade-high-level-standard.md @@ -0,0 +1,12 @@ +{% if page.path contains "cockroachcloud" %} +When you initiate a major-version upgrade, CockroachDB {{ site.data.products.cloud }} performs the following high-level steps, which are described in detail in the following sections. +{% else %} +A major-version upgrade involves the following high-level steps, which are described in detail in the following sections. +{% endif %} + +1. On one node at a time: + 1. Replace the previous `cockroach` binary or container image with the new binary. + 1. Restart the `cockroach` process and verify that the node has rejoined the cluster. +1. When all nodes have rejoined the cluster: + 1. For a patch upgrade within the same major version, the upgrade is complete. + 1. For a major-version upgrade, the upgrade is not complete until it is [finalized](#finalize-a-major-version-upgrade-manually). Auto-finalization is enabled by default, and begins as soon as all nodes have rejoined the cluster using the new binary. If you need the ability to [roll back a major-version upgrade](#roll-back-a-major-version-upgrade), you can disable auto-finalization and finalize the upgrade manually. Certain features and performance improvements, such as those that require changes to system schemas or objects, are not available until the upgrade is finalized. Refer to the {% if page.path contains 'cockroachcloud' %} [{{ site.current_cloud_version }} Release Notes]({% link releases/{{ site.current_cloud_version }}.md %}){% else %}[{{ page.version.version }} Release Notes]({% link releases/{{ page.version.version }}.md %}).{% endif %}. diff --git a/src/current/_includes/v24.3/upgrade-requirements.md b/src/current/_includes/v24.3/upgrade-requirements.md index d729ee9c6ee..9a8c738b936 100644 --- a/src/current/_includes/v24.3/upgrade-requirements.md +++ b/src/current/_includes/v24.3/upgrade-requirements.md @@ -3,4 +3,4 @@ CockroachDB v24.3 is a Regular release. To upgrade to it, you must be running ei - [v24.2]({% link v24.2/upgrade-cockroach-version.md %}), the previous Innovation release. - [v24.1]({% link v24.1/upgrade-cockroach-version.md %}), the previous Regular release. -Before continuing, upgrade to an appropriate version. +If your cluster is running an earlier version, upgrade to one of these versions before proceeding. \ No newline at end of file diff --git a/src/current/cockroachcloud/cluster-management.md b/src/current/cockroachcloud/cluster-management.md index 868eee11751..ccaeb0b4dce 100644 --- a/src/current/cockroachcloud/cluster-management.md +++ b/src/current/cockroachcloud/cluster-management.md @@ -64,15 +64,17 @@ To learn more, refer to [Plan a CockroachDB {{ site.data.products.standard }} cl By default, major-version and patch upgrades are automatically applied to CockroachDB {{ site.data.products.standard }} clusters. To control when a cluster is upgraded to a new major version, you can disable automatic major-version upgrades. Patch upgrades are always applied automatically. {{site.data.alerts.callout_danger}} -If you disable automatic major-version upgrades for a cluster, to maintain support for the cluster, you must manually upgrade it to a later major version before its current version reaches [End of Support (EOS)]({% link cockroachcloud/upgrade-policy.md %}). +If you disable automatic major-version upgrades for a cluster, to maintain support for the cluster, you must manually upgrade it to a later major version before its current version reaches [End of Support (EOS)]({% link cockroachcloud/upgrade-policy.md %}). If you have not upgraded a cluster's major version for more than one year, it will be upgraded automatically. {{site.data.alerts.end}} To disable automatic major-version upgrades for a CockroachDB {{ site.data.products.standard }} cluster: -1. On the [**Cluster Overview** page for the cluster](#view-cluster-overview), click **Action**, then select **Manual upgrade settings**. +1. On the [**Cluster Overview** page for the cluster](#view-cluster-overview), click **Actions**, then select **Manual upgrade settings**. 1. Read the information provided, then set **Manual upgrades** to **on**. 1. Click **Apply**. +For manual upgrades to a newer major version of CockroachDB, refer to [Upgrade a cluster in CockroachDB Cloud]({% link cockroachcloud/upgrade-cockroach-version.md %}). + ## Restore data from a backup Refer to [Managed Backups]({% link cockroachcloud/managed-backups.md %}) for instructions to restore your cluster from an automatic cluster backup. diff --git a/src/current/cockroachcloud/upgrade-cockroach-version.md b/src/current/cockroachcloud/upgrade-cockroach-version.md index e329e5e7813..991b681045b 100644 --- a/src/current/cockroachcloud/upgrade-cockroach-version.md +++ b/src/current/cockroachcloud/upgrade-cockroach-version.md @@ -11,9 +11,14 @@ This page describes how major-version and patch upgrades work and shows how to u {% include common/upgrade/overview.md %} +TODO: Convert this to a tab selection and show site.current_cloud_version minus two versions. {% include_cached {{ site.current_cloud_version }}/upgrade-requirements.md %} -{% include common/upgrade/upgrade-high-level.md %} +TODO: toggle between +Basic: +Standard: +{% include common/upgrade/upgrade-high-level-standard.md %} +Advanced: {% include common/upgrade/upgrade-high-level.md %} ### Availability during an upgrade diff --git a/src/current/cockroachcloud/upgrade-policy.md b/src/current/cockroachcloud/upgrade-policy.md index 7f479648d5f..7223bad4a9a 100644 --- a/src/current/cockroachcloud/upgrade-policy.md +++ b/src/current/cockroachcloud/upgrade-policy.md @@ -19,10 +19,10 @@ A cluster running an unsupported CockroachDB version is not eligible for Cockroa All CockroachDB {{ site.data.products.basic }} clusters, and CockroachDB {{ site.data.products.standard }} clusters by default, will automatically be upgraded to the next major version while the current one is still supported, to prevent the cluster from reaching EOS. -- If you [disable automatic major-version upgrades for CockroachDB {{ site.data.products.standard }}]({% link cockroachcloud/cluster-management.md %}#manage-cluster-upgrades), you are responsible for upgrading the cluster before its version reaches its EOS date to maintain uninterrupted support and SLA guarantees. +- If you [disable automatic major-version upgrades for CockroachDB {{ site.data.products.standard }}]({% link cockroachcloud/cluster-management.md %}#manage-cluster-upgrades), you are responsible for upgrading the cluster before its version reaches its EOS date to maintain uninterrupted support and SLA guarantees. Clusters that have not upgraded for one year will be upgraded automatically. - You are responsible for upgrading a CockroachDB {{ site.data.products.advanced }} cluster before its current version reaches its EOS date to maintain uninterrupted support and SLA guarantees. -When a CockroachDB {{ site.data.products.advanced }} cluster is nearing its EOS date, you will be reminded to upgrade the cluster at least 30 days before the EOS date to avoid losing support. {% capture who_can_upgrade %}A [Cluster Administrator]({% link cockroachcloud/authorization.md %}#cluster-administrator) can [upgrade a cluster]({% link cockroachcloud/upgrade-cockroach-version.md %}) directly from the CockroachDB Cloud Console. An [Org Administrator]({% link cockroachcloud/authorization.md %}#org-administrator) or [Folder Admin]({% link cockroachcloud/authorization.md %}#folder-admin) can grant the Cluster Administrator role.{% endcapture %}{{ who_can_upgrade }} +When a CockroachDB {{ site.data.products.advanced }} cluster is nearing its EOS date, you will be reminded to upgrade the cluster at least 30 days before the EOS date to avoid losing support. {% capture who_can_upgrade %}A user with the Cluster Administrator or Cluster Operator [role]({% link cockroachcloud/authorization.md %}) can [upgrade a cluster]({% link cockroachcloud/upgrade-cockroach-version.md %}) directly from the CockroachDB Cloud Console. An [Org Administrator]({% link cockroachcloud/authorization.md %}#org-administrator) can grant these roles.{% endcapture %}{{ who_can_upgrade }} ### Currently supported versions From 8ffeb175decf59dde34a150176d877cf1c68ded5 Mon Sep 17 00:00:00 2001 From: mikeCRL Date: Wed, 8 Jan 2025 17:10:59 -0500 Subject: [PATCH 2/8] Various improvements to conceptual info around upgrades --- .../upgrade/major-version-upgrade-cloud.md | 2 +- .../_includes/common/upgrade/overview.md | 54 ++++++++++++++++--- .../upgrade/prepare-to-upgrade-cloud.md | 2 +- .../common/upgrade/see-also-cloud.md | 1 + .../upgrade/upgrade-high-level-standard.md | 2 +- .../common/upgrade/upgrade-high-level.md | 10 ++-- .../upgrade-cockroach-version.md | 11 ++-- src/current/cockroachcloud/upgrade-policy.md | 30 ++++++----- 8 files changed, 78 insertions(+), 34 deletions(-) diff --git a/src/current/_includes/common/upgrade/major-version-upgrade-cloud.md b/src/current/_includes/common/upgrade/major-version-upgrade-cloud.md index e7c72befed1..05c93914efb 100644 --- a/src/current/_includes/common/upgrade/major-version-upgrade-cloud.md +++ b/src/current/_includes/common/upgrade/major-version-upgrade-cloud.md @@ -2,7 +2,7 @@ This section shows how to perform a major-version upgrade for a cluster in Cockr 1. Verify the cluster's current major version, and which versions it can be upgraded to: 1. Sign into [CockroachDB {{ site.data.products.cloud }}](https://cockroachlabs.cloud). - 1. From the **Clusters** page, find the cluster by name. If the cluster is in a folder, click the name of the folder to view its descendants. The cluster's major version and patch are shown in the **Version** column. + 1. From the **Clusters** page, find the cluster by name. If the cluster is in a folder, click the name of the folder to find the cluster. The cluster's major version and patch are shown in the **Version** column. 1. Check which upgrades are available to the cluster, if any. Beginning with v24.1, major versions alternate in type between Regular releases, which are required, and Innovation releases, which can be skipped. diff --git a/src/current/_includes/common/upgrade/overview.md b/src/current/_includes/common/upgrade/overview.md index 58492f89084..41759e79831 100644 --- a/src/current/_includes/common/upgrade/overview.md +++ b/src/current/_includes/common/upgrade/overview.md @@ -1,18 +1,60 @@ -CockroachDB offers the following types of upgrades: +### Types of upgrades -- **Major-version upgrades**: A [major-version upgrade]({% link releases/index.md %}#major-releases) moves a cluster from one major version of CockroachDB to another, such as from v24.2 to v24.3. A major-version upgrade may include new features, updates to cluster setting defaults, and backward-incompatible changes. Performing a major-version upgrade requires an additional step to finalize the upgrade. +- **Major-version upgrades**: A [major-version upgrade]({% link releases/index.md %}#major-releases), such as from v24.2 to v24.3, may include new features, updates to cluster setting defaults, and backward-incompatible changes. Performing a major-version upgrade requires an additional step to finalize the upgrade. {% if page.path contains "cockroachcloud" %} - As of 2024, there are four major versions per year, where every second release is an [Innovation release]({% link cockroachcloud/upgrade-policy.md %}#innovation-releases). For CockroachDB {{ site.data.products.standard }} and CockroachDB {{ site.data.products.advanced }}, innovation releases offer shorter [support windows]({% link cockroachcloud/upgrade-policy.md %}#cockroachdb-cloud-support-policy) and can be skipped. Innovation releases are required for CockroachDB {{ site.data.products.basic }}, and are applied automatically. + As of 2024, there are four major versions per year, where every second release is an [innovation release]({% link cockroachcloud/upgrade-policy.md %}#innovation-releases). For CockroachDB {{ site.data.products.standard }} and CockroachDB {{ site.data.products.advanced }}, innovation releases offer shorter [support windows]({% link cockroachcloud/upgrade-policy.md %}#cockroachdb-cloud-support-policy) and can be skipped. For CockroachDB {{ site.data.products.basic }}, all major version upgrades are applied automatically as they become available, including innovation releases. {% else %} As of 2024, every second major version is an [Innovation release]({% link releases/release-support-policy.md %}#innovation-releases). Innovation releases offer shorter support windows and can be skipped. {% endif %} -- **Patch upgrades**: A [patch upgrade]({% link releases/index.md %}#patch-releases) moves a cluster from one patch to another within a major version, such as from v24.2.3 to v24.2.4. Patch upgrades do not introduce backward-incompatible changes. +- **Patch upgrades**: A [patch upgrade]({% link releases/index.md %}#patch-releases) moves a cluster from one patch release to another within a major version, such as from v24.2.3 to v24.2.4. Patch upgrades do not introduce backward-incompatible changes. + + A major version of CockroachDB has two phases of patch releases: a series of **testing releases** (beta, alpha, and RC releases) followed by a series of **production releases** (vX.Y.0, vX.Y.1, and so on). A major version’s first production release (the .0 release) is also known as its GA release. {% if page.path contains "cockroachcloud" %} - Patch upgrades are automatically applied to CockroachDB {{ site.data.products.advanced }}, {{ site.data.products.standard }}, and {{ site.data.products.basic }} clusters. + For CockroachDB {{ site.data.products.advanced }}, {{ site.data.products.standard }}, and {{ site.data.products.basic }} clusters, all production patch releases for a major version are automatically applied, until the cluster is upgraded to a new major version. {% endif %} - A major version of CockroachDB has two phases of patch releases: a series of **testing releases** followed by a series of **production releases**. A major version’s initial production release is also known as its GA release. In the lead-up to a new major version's GA release, a series of Testing releases may be made available{% if page.path contains "cockroachcloud" %} to CockroachDB {{ site.data.products.advanced }} as Pre-Production Preview releases{% endif %} for testing and validation. Testing releases are intended for testing and experimentation only, and are not qualified for production environments or eligible for support or uptime SLA commitments. {% if page.path contains "cockroachcloud" %}If a cluster is upgraded to a Pre-Production Preview patch release, it will be automatically upgraded to subsequent patch releases within the major version, including newer Pre-Production Preview releases, the initial GA release, and subsequent patch releases.{% else %}{{site.data.alerts.callout_info}}A cluster cannot be upgraded from an alpha binary of a prior release or from a binary built from the `master` branch of the CockroachDB source code.{{site.data.alerts.end}}{% endif %} + - In the lead-up to a new major version's GA, a series of beta and RC releases {% if page.path contains "cockroachcloud" %}may be made available to CockroachDB {{ site.data.products.advanced }} as Pre-Production Preview releases{% else %}are made available{% endif %} for testing and validation. Testing releases are intended for testing and experimentation only, and are not qualified for production environments or eligible for support or uptime SLA commitments. + + {% if page.path contains "cockroachcloud" %}If a cluster is upgraded to a Pre-Production Preview release, it will be automatically upgraded to subsequent patch releases within the major version, including newer Pre-Production Preview testing releases, the GA release, and subsequent production patch releases.{% else %}{{site.data.alerts.callout_info}}A cluster cannot be upgraded from an alpha binary of a prior release or from a binary built from the `master` branch of the CockroachDB source code.{{site.data.alerts.end}}{% endif %} To learn more about CockroachDB major versions and patches, refer to the [Releases Overview]({% link releases/index.md %}#overview). + +{% if page.path contains "cockroachcloud" %} +### Upgrade differences across Cloud plans + +CockroachDB Cloud plan | Major version upgrades | Innovation releases +---------------------- | ---------------------- | ---------------------- +Basic | Automatic | Required +Standard | Automatic (default) or customer-initiated | Optional +Advanced | Customer-initiated | Optional + +For all Cloud plans: + +- All major versions that are Regular releases (as opposed to Innovation releases) are required upgrades during the period in which they are supported. +- Patch version upgrades occur automatically. +{% endif %} +### Compatible versions + +A cluster may always be upgraded to the next major release. Prior to v24.1, every major release is required. As of v24.1{% if page.path contains "cockroachcloud" %}, for CockroachDB {{ site.data.products.standard }} and CockroachDB {{ site.data.products.advanced }} clusters{% endif %}: + +- If a cluster is running a major version that is labeled a Regular release, it can be upgraded to either the subsequent major version (an Innovation release) or the one after (the next Regular release, once it is available—skipping the Innovation release). + +- If a cluster is running a major version that is labeled an Innovation release, it can be upgraded only to the next Regular release. + +```mermaid +graph LR + v241["v24.1
Regular"] --> v242["v24.2
Innovation"] + v241 --> v243["v24.3
Regular"] + v242 --> v243 + v243 --> v251["v25.1
Innovation"] + v243 --> v252["v25.2
Regular"] + v251 --> v252 + v252 --> v253["v25.3
Innovation"] + v252 --> v254["v25.4
Regular"] + v253 --> v254 + + %% Styling + classDef default fill:#fff,stroke:#333,stroke-width:2px +``` diff --git a/src/current/_includes/common/upgrade/prepare-to-upgrade-cloud.md b/src/current/_includes/common/upgrade/prepare-to-upgrade-cloud.md index e8a7d0ee480..becdd7a2a1f 100644 --- a/src/current/_includes/common/upgrade/prepare-to-upgrade-cloud.md +++ b/src/current/_includes/common/upgrade/prepare-to-upgrade-cloud.md @@ -2,4 +2,4 @@ Before beginning a major-version upgrade: 1. Review the cluster's [Metrics page]({% link cockroachcloud/metrics.md %}) to ensure that your cluster's compute and storage capacity is within acceptable values. The cluster must be able to tolerate some increase, in case the new version uses more resources for your workload. If any of these metrics is above healthy limits, consider increasing the cluster's resources before beginning your upgrade. 1. {% include {{ site.current_cloud_version }}/backups/recommend-backups-for-upgrade.md %} -1. Review the [{{ site.current_cloud_version }} Release Notes]({% link releases/{{ site.current_cloud_version }}.md %}), as well as the release notes for any skipped major version. Pay careful attention to the sections for backward-incompatible changes, deprecations, changes to default cluster settings, and features that are not available until the upgrade is finalized. +1. Review the [Release Notes for the major version]({% link cockroachcloud/upgrade-policy.md %}#currently-supported-versions) to which you plan to upgrade, as well as the release notes for any skipped major version. Pay careful attention to the sections for backward-incompatible changes, deprecations, changes to default cluster settings, and features that are not available until the upgrade is finalized. diff --git a/src/current/_includes/common/upgrade/see-also-cloud.md b/src/current/_includes/common/upgrade/see-also-cloud.md index de43e2b731a..feb6329b341 100644 --- a/src/current/_includes/common/upgrade/see-also-cloud.md +++ b/src/current/_includes/common/upgrade/see-also-cloud.md @@ -1,2 +1,3 @@ - [Cloud Upgrade Policy]({% link cockroachcloud/upgrade-policy.md %}) - [{{ site.current_cloud_version }} Release Notes]({% link releases/{{ site.current_cloud_version }}.md %}) +- Release notes for [additional supported versions]({% link cockroachcloud/upgrade-policy.md %}#currently-supported-versions) \ No newline at end of file diff --git a/src/current/_includes/common/upgrade/upgrade-high-level-standard.md b/src/current/_includes/common/upgrade/upgrade-high-level-standard.md index f67f16dd8ec..a6c7a91658c 100644 --- a/src/current/_includes/common/upgrade/upgrade-high-level-standard.md +++ b/src/current/_includes/common/upgrade/upgrade-high-level-standard.md @@ -9,4 +9,4 @@ A major-version upgrade involves the following high-level steps, which are descr 1. Restart the `cockroach` process and verify that the node has rejoined the cluster. 1. When all nodes have rejoined the cluster: 1. For a patch upgrade within the same major version, the upgrade is complete. - 1. For a major-version upgrade, the upgrade is not complete until it is [finalized](#finalize-a-major-version-upgrade-manually). Auto-finalization is enabled by default, and begins as soon as all nodes have rejoined the cluster using the new binary. If you need the ability to [roll back a major-version upgrade](#roll-back-a-major-version-upgrade), you can disable auto-finalization and finalize the upgrade manually. Certain features and performance improvements, such as those that require changes to system schemas or objects, are not available until the upgrade is finalized. Refer to the {% if page.path contains 'cockroachcloud' %} [{{ site.current_cloud_version }} Release Notes]({% link releases/{{ site.current_cloud_version }}.md %}){% else %}[{{ page.version.version }} Release Notes]({% link releases/{{ page.version.version }}.md %}).{% endif %}. + 1. For a major-version upgrade, the upgrade is not complete until it is [finalized](#finalize-a-major-version-upgrade-manually). Auto-finalization is enabled by default, and begins as soon as all nodes have rejoined the cluster using the new binary. If you need the ability to [roll back a major-version upgrade](#roll-back-a-major-version-upgrade), you can disable auto-finalization and finalize the upgrade manually. Certain features and performance improvements, such as those that require changes to system schemas or objects, are not available until the upgrade is finalized. Refer to the {% if page.path contains 'cockroachcloud' %}[Release Notes for the major version]({% link cockroachcloud/upgrade-policy.md %}#currently-supported-versions){% else %}[{{ page.version.version }} Release Notes]({% link releases/{{ page.version.version }}.md %}).{% endif %}. diff --git a/src/current/_includes/common/upgrade/upgrade-high-level.md b/src/current/_includes/common/upgrade/upgrade-high-level.md index f67f16dd8ec..42a56f94847 100644 --- a/src/current/_includes/common/upgrade/upgrade-high-level.md +++ b/src/current/_includes/common/upgrade/upgrade-high-level.md @@ -5,8 +5,12 @@ A major-version upgrade involves the following high-level steps, which are descr {% endif %} 1. On one node at a time: - 1. Replace the previous `cockroach` binary or container image with the new binary. - 1. Restart the `cockroach` process and verify that the node has rejoined the cluster. + 1. {% if page.path contains "cockroachcloud" %}The previous `cockroach` binary is replaced.{% else %}Replace the previous `cockroach` binary or container image with the new binary.{% endif %} + 1. {% if page.path contains "cockroachcloud" %}The `cockroach` process is restarted and the node rejoins the cluster.{% else %}Restart the `cockroach` process and verify that the node has rejoined the cluster.{% endif %} 1. When all nodes have rejoined the cluster: 1. For a patch upgrade within the same major version, the upgrade is complete. - 1. For a major-version upgrade, the upgrade is not complete until it is [finalized](#finalize-a-major-version-upgrade-manually). Auto-finalization is enabled by default, and begins as soon as all nodes have rejoined the cluster using the new binary. If you need the ability to [roll back a major-version upgrade](#roll-back-a-major-version-upgrade), you can disable auto-finalization and finalize the upgrade manually. Certain features and performance improvements, such as those that require changes to system schemas or objects, are not available until the upgrade is finalized. Refer to the {% if page.path contains 'cockroachcloud' %} [{{ site.current_cloud_version }} Release Notes]({% link releases/{{ site.current_cloud_version }}.md %}){% else %}[{{ page.version.version }} Release Notes]({% link releases/{{ page.version.version }}.md %}).{% endif %}. + 1. For a major-version upgrade, the upgrade is not complete until it is [finalized](#finalize-a-major-version-upgrade-manually). Certain features and performance improvements, such as those requiring changes to system schemas or objects, are not available until the upgrade is finalized. Refer to the {% if page.path contains 'cockroachcloud' %} [Release Notes for the major version]({% link cockroachcloud/upgrade-policy.md %}#currently-supported-versions){% else %}[{{ page.version.version }} Release Notes]({% link releases/{{ page.version.version }}.md %}){% endif %} for details. + + {% if page.path contains "cockroachcloud" %}In CockroachDB {{ site.data.products.cloud }}, the cluster is finalized automatically after approximately 72 hours. During this time, you can choose to roll back the upgrade or manually finalize the cluster.{% else %}For self-hosted CockroachDB, automatic finalization is enabled by default, and begins as soon as all nodes have rejoined the cluster using the new binary. If you need the ability to [roll back a major-version upgrade](#roll-back-a-major-version-upgrade), you can disable auto-finalization and finalize the upgrade manually.{% endif %} + + Once a major-version upgrade is finalized, the cluster cannot be rolled back to the prior major version. diff --git a/src/current/cockroachcloud/upgrade-cockroach-version.md b/src/current/cockroachcloud/upgrade-cockroach-version.md index 991b681045b..b56f566084f 100644 --- a/src/current/cockroachcloud/upgrade-cockroach-version.md +++ b/src/current/cockroachcloud/upgrade-cockroach-version.md @@ -11,14 +11,9 @@ This page describes how major-version and patch upgrades work and shows how to u {% include common/upgrade/overview.md %} -TODO: Convert this to a tab selection and show site.current_cloud_version minus two versions. -{% include_cached {{ site.current_cloud_version }}/upgrade-requirements.md %} +A list of [currently supported major versions]({% link cockroachcloud/upgrade-policy.md %}#currently-supported-versions) with links to their release notes is available in the CockroachDB Cloud [Upgrade Policy]({% link cockroachcloud/upgrade-policy.md %}). -TODO: toggle between -Basic: -Standard: -{% include common/upgrade/upgrade-high-level-standard.md %} -Advanced: {% include common/upgrade/upgrade-high-level.md %} +{% include common/upgrade/upgrade-high-level.md %} ### Availability during an upgrade @@ -28,7 +23,7 @@ For CockroachDB {{ site.data.products.advanced }}, nodes are upgraded one at a t ### Upgrades and maintenance windows -If you have [configured a maintenance window]({% link cockroachcloud/advanced-cluster-management.md %}) for a CockroachDB {{ site.data.products.advanced }} cluster, automatic patch upgrades are applied during the maintenance window. Major-version upgrades must be initiated manually. +If you have [configured a maintenance window]({% link cockroachcloud/advanced-cluster-management.md %}) for a CockroachDB {{ site.data.products.advanced }} cluster, automatic patch upgrades are applied during the maintenance window. Major-version upgrades are initiated manually. {{site.data.alerts.callout_info}} Maintenance operations that are critical for cluster security or stability may be applied outside of the maintenance window, and upgrades that begin in a maintenance window may not always be completed by the end of the window. diff --git a/src/current/cockroachcloud/upgrade-policy.md b/src/current/cockroachcloud/upgrade-policy.md index 7223bad4a9a..9b45499cfc9 100644 --- a/src/current/cockroachcloud/upgrade-policy.md +++ b/src/current/cockroachcloud/upgrade-policy.md @@ -28,10 +28,12 @@ When a CockroachDB {{ site.data.products.advanced }} cluster is nearing its EOS Version | Release Type | Support period | Release date | EOS date :------:|:------------:|:--------------:|:------------:|:---------: -v23.2 | Regular | 12 months | 2024-02-05 | 2025-02-05 -v24.1 | Regular | 12 months | 2024-05-20 | 2025-05-20 -v24.2 | Innovation | 6 months | 2024-08-12 | 2025-02-12 -v24.3 | Regular | 12 months | 2024-11-18 | 2025-11-18 +[v23.2]({% link releases/v23.2.md %}#v23-2-0-feature-highlights) | Regular | 12 months | 2024-02-05 | 2025-02-05 +[v24.1]({% link releases/v24.1.md %}#v24-1-0-feature-highlights) | Regular | 12 months | 2024-05-20 | 2025-05-20 +[v24.2]({% link releases/v24.2.md %}#v24-2-0-feature-highlights) | Innovation | 6 months | 2024-08-12 | 2025-02-12 +[v24.3]({% link releases/v24.3.md %}#v24-3-0-feature-highlights) | Regular | 12 months | 2024-11-18 | 2025-11-18 + +To review a version's release notes, click its link in the Version column. For expected future versions, refer to [Upcoming releases]({% link releases/index.md %}#upcoming-releases). @@ -43,11 +45,11 @@ Version | Release Type | Support period | Release date | EOS date ## Patch version upgrades -Patch version [releases](https://www.cockroachlabs.com/docs/releases), or "maintenance" releases, contain stable, backward-compatible improvements to the major versions of CockroachDB. +Patch version [releases]({% link releases/index.md %}), or "maintenance" releases, contain stable, backward-compatible improvements to major versions of CockroachDB. -For CockroachDB {{ site.data.products.advanced }} clusters, [Org Administrators]({% link cockroachcloud/authorization.md %}#org-administrator) can [set a weekly 6-hour maintenance window]({% link cockroachcloud/advanced-cluster-management.md %}#set-a-maintenance-window) during which available maintenance and patch upgrades will be applied. During the window, your cluster may experience restarts, degraded performance, and downtime for single-node clusters. Upgrades may not always be completed by the end of the window, and maintenance that is critical for security or stability may occur outside the window. Patch upgrades can also be [deferred for 60 days]({% link cockroachcloud/advanced-cluster-management.md %}#set-a-maintenance-window). If no maintenance window is configured, CockroachDB {{ site.data.products.advanced }} clusters will be automatically upgraded to the latest supported patch version as soon as it becomes available. +For CockroachDB {{ site.data.products.advanced }} clusters, [Org Administrators]({% link cockroachcloud/authorization.md %}#org-administrator) can [set a weekly 6-hour maintenance window]({% link cockroachcloud/advanced-cluster-management.md %}#set-a-maintenance-window) during which available maintenance and patch upgrades will be applied. During the window, your cluster may experience node restarts, reduced performance, and, for single-node clusters, downtime. Upgrades may not always be completed by the end of the window, and maintenance that is critical for security or stability may occur outside the window. Patch upgrades can also be [deferred for 60 days]({% link cockroachcloud/advanced-cluster-management.md %}#set-a-maintenance-window). If no maintenance window is configured, CockroachDB {{ site.data.products.advanced }} clusters will be automatically upgraded to the latest supported patch version as soon as it becomes available. -CockroachDB {{ site.data.products.basic }} and {{ site.data.products.standard }} clusters are subject to automatic upgrades to the latest supported patch version. +CockroachDB {{ site.data.products.basic }} and {{ site.data.products.standard }} clusters receive automatic upgrades to the latest supported patch version of their current major version. {{site.data.alerts.callout_danger}} Single-node clusters will experience some downtime while the node is restarted during cluster maintenance, including patch version upgrades. @@ -59,9 +61,9 @@ CockroachDB {{ site.data.products.advanced }} clusters are automatically upgrade A [Cluster Administrator]({% link cockroachcloud/authorization.md %}#cluster-administrator) can [set a weekly 6-hour maintenance window]({% link cockroachcloud/advanced-cluster-management.md %}#set-a-maintenance-window) for a CockroachDB {{ site.data.products.advanced }} cluster. During the maintenance window, patch upgrades may be applied, and the cluster may experience restarts, degraded performance, and, for single-node clusters, downtime. Upgrades may not always be completed by the end of the window, and maintenance that is critical for security or stability may occur outside of the window. A patch upgrade can be [deferred for 60 days]({% link cockroachcloud/advanced-cluster-management.md %}#set-a-maintenance-window). If no maintenance window is configured, a CockroachDB {{ site.data.products.advanced }} cluster will be upgraded automatically to the latest supported patch version soon after it becomes available. -### CockroachDB {{ site.data.products.standard }} and {{ site.data.products.basic }} automatic upgrades +### CockroachDB {{ site.data.products.standard }} and {{ site.data.products.basic }} automatic patch upgrades -CockroachDB {{ site.data.products.standard }} clusters default to automatic upgrades for both new patch versions and new major versions. If you [disable manual upgrades]({% link cockroachcloud/cluster-management.md %}#manage-cluster-upgrades), to maintain support for the cluster, you must manually upgrade it to a later major version before its current version reaches End of Support (EOS). +CockroachDB {{ site.data.products.standard }} clusters default to automatic upgrades for both new patch versions and new major versions. If you [disable automatic upgrades]({% link cockroachcloud/cluster-management.md %}#manage-cluster-upgrades), you must manually upgrade it to a later major version before its current version reaches End of Support (EOS). After one year, CockroachDB {{ site.data.products.standard }} clusters will be automatically upgraded to the next major version, even if set for manual upgrades. CockroachDB {{ site.data.products.basic }} clusters are automatically upgraded to new patch versions, as well as new major versions, to maintain support. @@ -72,8 +74,8 @@ Major version [releases]({% link releases/index.md %}) contain new functionality Major version upgrades are: - Automatic for CockroachDB {{ site.data.products.basic }}. -- Enabled by default on {{ site.data.products.standard }} clusters. -- Not enabled on CockroachDB {{ site.data.products.advanced }}. +- Automatic by default for {{ site.data.products.standard }}. +- Customer-initiated on CockroachDB {{ site.data.products.advanced }}. On CockroachDB {{ site.data.products.standard }} with manual upgrades, and on CockroachDB {{ site.data.products.advanced }}, a major-version upgrade can be initiated by an [Org Administrator]({% link cockroachcloud/authorization.md %}#org-administrator). Major versions labeled Regular releases are required upgrades, and Innovation releases are optional. When a new major version is available, you can [start an upgrade]({% link cockroachcloud/upgrade-cockroach-version.md %}) from the CockroachDB {{ site.data.products.cloud }} Console. The cluster will be upgraded to the latest patch release within that major version. @@ -82,8 +84,8 @@ On CockroachDB {{ site.data.products.standard }} with manual upgrades, and on Co As of v24.2, Cockroach Labs releases a major version of CockroachDB once per quarter, alternating between releases classified as a [Regular release or an Innovation release]({% link releases/index.md %}#release-types). Regular releases provide a longer support period and a longer period between upgrades, while Innovation releases offer a shorter support period and faster access to new features. -- Regular releases are not optional; they must be applied to CockroachDB {{ site.data.products.advanced }} and CockroachDB {{ site.data.products.standard }} clusters. They are applied automatically to CockroachDB {{ site.data.products.basic }} and {{ site.data.products.standard }} clusters. Regular releases are produced twice a year, alternating with Innovation Releases. They are supported for one year. It is supported to upgrade CockroachDB {{ site.data.products.advanced }} directly from one regular release to the next regular release and skip the intervening Innovation release. -- Innovation releases are optional and can be skipped for CockroachDB {{ site.data.products.advanced }} and CockroachDB {{ site.data.products.standard }} clusters but are required for CockroachDB {{ site.data.products.basic }}. Innovation releases are produced twice a year, alternating with Regular releases. An Innovation release is supported for 6 months, at which time the cluster must be upgraded to the next Regular Release. At a given time, only one Innovation release is typically supported. Upgrading a cluster directly from one Innovation release to the next Innovation release is not supported. +- Regular releases are not optional; they must be applied to CockroachDB {{ site.data.products.advanced }} and CockroachDB {{ site.data.products.standard }} clusters within their support periods. They are applied automatically to CockroachDB {{ site.data.products.basic }} and {{ site.data.products.standard }} clusters that are configured for automatic upgrades. Regular releases are produced twice a year, alternating with Innovation Releases. They are supported for one year. It is supported to upgrade CockroachDB {{ site.data.products.advanced }} directly from one regular release to the next regular release and skip the intervening Innovation release. +- Innovation releases are optional and can be skipped for CockroachDB {{ site.data.products.advanced }} and CockroachDB {{ site.data.products.standard }} clusters, but are required for CockroachDB {{ site.data.products.basic }}. Innovation releases are produced twice a year, alternating with Regular releases. An Innovation release is supported for 6 months, at which time the cluster must be upgraded to the next Regular Release. At a given time, only one Innovation release is typically supported. Upgrading a cluster directly from one Innovation release to the next Innovation release is not supported. {{site.data.alerts.callout_info}} To opt out of Innovation releases entirely and hide them from your CockroachDB organization, contact Support. @@ -98,7 +100,7 @@ To summarize the available major-version upgrade paths for CockroachDB {{ site.d ### Pre-production preview upgrades -Prior to the GA release of a major CockroachDB version, CockroachDB {{ site.data.products.cloud }} organizations can create new CockroachDB {{ site.data.products.advanced }} clusters on a Pre-Production Preview release or upgrade an existing cluster to a Pre-Production Preview. Pre-Production Preview releases are beta or release candidate (RC) builds that next major version of CockroachDB, and are provided for testing and experimentation. Upgrading to a Pre-Production Preview is a major-version upgrade. After a cluster is upgraded to a Pre-Production Preview release, it is automatically upgraded to all subsequent releases within the same major version—including additional beta and RC releases, the GA release, and subsequent production patch releases as [patch version upgrades](#patch-version-upgrades). Upgrading to a Pre-Production Preview follows the same procedure as updating to a Production release. To learn more, refer to [Upgrade to {{ site.current_cloud_version }}]({% link cockroachcloud/upgrade-cockroach-version.md %}). +Prior to the GA release of a major CockroachDB version, CockroachDB {{ site.data.products.cloud }} organizations can create new CockroachDB {{ site.data.products.advanced }} clusters on a Pre-Production Preview release or upgrade an existing cluster to a Pre-Production Preview. Pre-Production Preview releases are beta or release candidate (RC) builds that next major version of CockroachDB, and are provided for testing and experimentation. Upgrading to a Pre-Production Preview is a major-version upgrade. After a cluster is upgraded to a Pre-Production Preview release, it is automatically upgraded to all subsequent releases within the same major version—including additional beta and RC releases, the GA release, and subsequent production patch releases as [patch version upgrades](#patch-version-upgrades). Upgrading to a Pre-Production Preview follows the same procedure as updating to a Production release. To learn more, refer to [Upgrade a cluster in CockroachDB Cloud]({% link cockroachcloud/upgrade-cockroach-version.md %}). ### Rollback support From b00fa878824d000317afb73cdd0cf0dd8dd56231 Mon Sep 17 00:00:00 2001 From: mikeCRL Date: Fri, 10 Jan 2025 09:32:40 -0500 Subject: [PATCH 3/8] Remove new unneeded upgrade-high-level-standard include --- .../common/upgrade/upgrade-high-level-standard.md | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 src/current/_includes/common/upgrade/upgrade-high-level-standard.md diff --git a/src/current/_includes/common/upgrade/upgrade-high-level-standard.md b/src/current/_includes/common/upgrade/upgrade-high-level-standard.md deleted file mode 100644 index a6c7a91658c..00000000000 --- a/src/current/_includes/common/upgrade/upgrade-high-level-standard.md +++ /dev/null @@ -1,12 +0,0 @@ -{% if page.path contains "cockroachcloud" %} -When you initiate a major-version upgrade, CockroachDB {{ site.data.products.cloud }} performs the following high-level steps, which are described in detail in the following sections. -{% else %} -A major-version upgrade involves the following high-level steps, which are described in detail in the following sections. -{% endif %} - -1. On one node at a time: - 1. Replace the previous `cockroach` binary or container image with the new binary. - 1. Restart the `cockroach` process and verify that the node has rejoined the cluster. -1. When all nodes have rejoined the cluster: - 1. For a patch upgrade within the same major version, the upgrade is complete. - 1. For a major-version upgrade, the upgrade is not complete until it is [finalized](#finalize-a-major-version-upgrade-manually). Auto-finalization is enabled by default, and begins as soon as all nodes have rejoined the cluster using the new binary. If you need the ability to [roll back a major-version upgrade](#roll-back-a-major-version-upgrade), you can disable auto-finalization and finalize the upgrade manually. Certain features and performance improvements, such as those that require changes to system schemas or objects, are not available until the upgrade is finalized. Refer to the {% if page.path contains 'cockroachcloud' %}[Release Notes for the major version]({% link cockroachcloud/upgrade-policy.md %}#currently-supported-versions){% else %}[{{ page.version.version }} Release Notes]({% link releases/{{ page.version.version }}.md %}).{% endif %}. From cd4ca86baa55edef2df6640a7ae592123e33d89a Mon Sep 17 00:00:00 2001 From: mikeCRL Date: Fri, 10 Jan 2025 09:48:30 -0500 Subject: [PATCH 4/8] Refine upgrade instructions --- .../common/upgrade/major-version-upgrade-cloud.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/current/_includes/common/upgrade/major-version-upgrade-cloud.md b/src/current/_includes/common/upgrade/major-version-upgrade-cloud.md index 05c93914efb..7cf933c20c4 100644 --- a/src/current/_includes/common/upgrade/major-version-upgrade-cloud.md +++ b/src/current/_includes/common/upgrade/major-version-upgrade-cloud.md @@ -9,13 +9,13 @@ This section shows how to perform a major-version upgrade for a cluster in Cockr From a Regular release, you can upgrade to the next major release (an Innovation release) or the subsequent major release (another Regular release). From an Innovation release, you must upgrade to the next Regular release. - These releases also provide different support periods. - - For details, refer the [CockroachDB Cloud Support Policy]({% link cockroachcloud/upgrade-policy.md %}#cockroachdb-cloud-support-policy). + These releases also provide different support periods. For details on their support periods and which releases are Regular or Innovation releases, refer the [CockroachDB Cloud Support Policy]({% link cockroachcloud/upgrade-policy.md %}#cockroachdb-cloud-support-policy). To check whether major-version upgrades are available, click the three-dot **Actions** menu. If upgrades are available, **Upgrade major version** will be enabled. Click it. In the dialog, if only one newer major version upgrade is available, it is selected automatically. If multiple upgrades are available, the latest Regular release is selected by default. If you intend to upgrade the cluster, keep this dialog open while completing the next steps. Otherwise, close the dialog. + + In CockroachDB {{ site.data.products.standard }}, if the cluster is set to upgrade major versions automatically, the Actions menu will not show the **Upgrade major version** option. To change this setting, refer to [Manage cluster upgrades]({% link cockroachcloud/cluster-management.md %}#manage-cluster-upgrades). 1. Before beginning a major-version upgrade, review its [Release notes]({% link releases/index.md %}), as well as the release notes for any skipped Innovation Releases. If any backward-incompatible changes or new features impact the cluster's workloads, you may need to make adjustments before beginning the upgrade. -1. A CockroachDB {{ site.data.products.standard }} or {{ site.data.products.basic }} cluster remains fully available while it is upgraded. For a multi-node CockroachDB {{ site.data.products.advanced }} cluster, nodes are upgraded one at a time in a rolling fashion so the cluster remains available, with one node unavailable at a time. A single-node {{ site.data.products.advanced }} cluster will be unavailable while the cluster is upgraded and restarted. If necessary, prepare for the upgrade by communicating ahead of time with your users, and plan to begin the upgrade during a time when the impact on the cluster's workload will be minimized. -1. To begin a major-version upgrade, go back to the dialog in the CockroachDB {{ site.data.products.cloud }} Console. If multiple upgrades are available, select the desired version. Review the details, then click **Start upgrade**. The dialog closes, and the **Version** column in the **Cluster List** page changes to **Upgrading**. When the upgrade has finished but has not yet been finalized, the **Version** column reports that the new version is **pending**. +1. A CockroachDB {{ site.data.products.standard }} or {{ site.data.products.basic }} cluster always remains fully available while it is upgraded. For a multi-node CockroachDB {{ site.data.products.advanced }} cluster, nodes are upgraded one at a time in a rolling fashion so the cluster remains available, with one node unavailable at a time. A single-node {{ site.data.products.advanced }} cluster will be unavailable while the cluster is upgraded and restarted. If necessary, prepare for the upgrade by communicating ahead of time with your users, and plan to begin the upgrade during a time when the impact on the cluster's workload will be minimized. +1. To begin a major-version upgrade, go back to the dialog in the CockroachDB {{ site.data.products.cloud }} Console. If multiple upgrades are available, select the desired version. Review the details, then click **Start upgrade**. After several seconds, the dialog closes, and the **Version** column in the **Cluster List** page changes to **Upgrading**, indicating the version to which you are upgrading the cluster. When the upgrade has finished but has not yet been finalized, the **Version** column reports that the new version is **pending finalization**. -The upgrade is not complete until it is [finalized](#finalize-a-major-version-upgrade-manually). After the upgrade is finalized, the cluster can no longer be [rolled back](#roll-back-a-major-version-upgrade) to its previous major version. If you take no action, finalization occurs automatically after approximately 72 hours. +The upgrade is not complete until it is [finalized](#finalize-a-major-version-upgrade-manually). After the upgrade is finalized, the cluster can no longer be [rolled back](#roll-back-a-major-version-upgrade) to its previous major version. If you take no action, finalization occurs automatically, after approximately 72 hours. From 6b0678757752705db0a8455c71f7c4e7b0924d11 Mon Sep 17 00:00:00 2001 From: mikeCRL Date: Fri, 10 Jan 2025 10:04:05 -0500 Subject: [PATCH 5/8] Add automatic standard upgrade details --- src/current/cockroachcloud/cluster-management.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/current/cockroachcloud/cluster-management.md b/src/current/cockroachcloud/cluster-management.md index ccaeb0b4dce..3442fb2027e 100644 --- a/src/current/cockroachcloud/cluster-management.md +++ b/src/current/cockroachcloud/cluster-management.md @@ -61,6 +61,8 @@ To learn more, refer to [Plan a CockroachDB {{ site.data.products.standard }} cl ## Manage cluster upgrades +### Set major-version upgrades to automatic or manual + By default, major-version and patch upgrades are automatically applied to CockroachDB {{ site.data.products.standard }} clusters. To control when a cluster is upgraded to a new major version, you can disable automatic major-version upgrades. Patch upgrades are always applied automatically. {{site.data.alerts.callout_danger}} @@ -73,7 +75,15 @@ To disable automatic major-version upgrades for a CockroachDB {{ site.data.produ 1. Read the information provided, then set **Manual upgrades** to **on**. 1. Click **Apply**. -For manual upgrades to a newer major version of CockroachDB, refer to [Upgrade a cluster in CockroachDB Cloud]({% link cockroachcloud/upgrade-cockroach-version.md %}). +For manual upgrades to a newer major version of CockroachDB, refer to [Upgrade a cluster in CockroachDB Cloud]({% link cockroachcloud/upgrade-cockroach-version.md %}). + +### Automatic major-version upgrades + +When Manual upgrades is set to Off, a CockroachDB {{ site.data.products.standard }} cluster will automatically upgrade to a new major version. The version will be a production patch release (likely vXX.Y.1) that is made available soon after the initial GA release (vXX.Y.0). + +Before an upgrade is set to occur, a banner displayed in the Console informing you of the version to which the cluster will be upgraded. + +When the upgrade occurs, your cluster status will be listed as `Available (Maintenance)` and will remain operational. When the upgrade is complete, the new version will be indicated in the CockroachDB Cloud Console and you will receive an email notification. ## Restore data from a backup From 432f3361962d5bc923c1cf498134fa4688324b11 Mon Sep 17 00:00:00 2001 From: mikeCRL Date: Thu, 16 Jan 2025 11:21:27 -0500 Subject: [PATCH 6/8] Clarifications about upgrades --- src/current/_includes/common/upgrade/overview.md | 4 ++++ src/current/cockroachcloud/cluster-management.md | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/current/_includes/common/upgrade/overview.md b/src/current/_includes/common/upgrade/overview.md index 41759e79831..80a9abee38d 100644 --- a/src/current/_includes/common/upgrade/overview.md +++ b/src/current/_includes/common/upgrade/overview.md @@ -30,6 +30,10 @@ Basic | Automatic | Required Standard | Automatic (default) or customer-initiated | Optional Advanced | Customer-initiated | Optional +{{site.data.alerts.calout_info}} +For CockroachDB Basic clusters and CockroachDB Standard clusters that are set to upgrade automatically, major version upgrades are finalized immediately and cannot be rolled back. +{{site.data.alerts.end}} + For all Cloud plans: - All major versions that are Regular releases (as opposed to Innovation releases) are required upgrades during the period in which they are supported. diff --git a/src/current/cockroachcloud/cluster-management.md b/src/current/cockroachcloud/cluster-management.md index 3442fb2027e..3b8d0a28543 100644 --- a/src/current/cockroachcloud/cluster-management.md +++ b/src/current/cockroachcloud/cluster-management.md @@ -63,10 +63,14 @@ To learn more, refer to [Plan a CockroachDB {{ site.data.products.standard }} cl ### Set major-version upgrades to automatic or manual -By default, major-version and patch upgrades are automatically applied to CockroachDB {{ site.data.products.standard }} clusters. To control when a cluster is upgraded to a new major version, you can disable automatic major-version upgrades. Patch upgrades are always applied automatically. +By default, major-version and patch upgrades are automatically applied to CockroachDB {{ site.data.products.standard }} clusters. To control when a cluster is upgraded to a new major version and be provided a window to roll back a major version upgrade, you can disable automatic major-version upgrades. Patch upgrades are always applied automatically. + +{{site.data.alerts.calout_info}} +For clusters that have the default setting where automatic major version upgrades are enabled, each upgrade is finalized immediately and cannot be rolled back. +{{site.data.alerts.end}} {{site.data.alerts.callout_danger}} -If you disable automatic major-version upgrades for a cluster, to maintain support for the cluster, you must manually upgrade it to a later major version before its current version reaches [End of Support (EOS)]({% link cockroachcloud/upgrade-policy.md %}). If you have not upgraded a cluster's major version for more than one year, it will be upgraded automatically. +If you disable automatic major-version upgrades for a cluster, to maintain support for the cluster, you must manually upgrade it to a later major version before its current version reaches [End of Support (EOS)]({% link cockroachcloud/upgrade-policy.md %}). If you have not upgraded a cluster's major version for more than one year, it will be upgraded automatically. {{site.data.alerts.end}} To disable automatic major-version upgrades for a CockroachDB {{ site.data.products.standard }} cluster: From 28008daad7178b54060034ce414b98268602ee47 Mon Sep 17 00:00:00 2001 From: mikeCRL Date: Thu, 16 Jan 2025 11:28:39 -0500 Subject: [PATCH 7/8] Small clarification --- src/current/_includes/common/upgrade/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/current/_includes/common/upgrade/overview.md b/src/current/_includes/common/upgrade/overview.md index 80a9abee38d..b95331fc6d9 100644 --- a/src/current/_includes/common/upgrade/overview.md +++ b/src/current/_includes/common/upgrade/overview.md @@ -41,7 +41,7 @@ For all Cloud plans: {% endif %} ### Compatible versions -A cluster may always be upgraded to the next major release. Prior to v24.1, every major release is required. As of v24.1{% if page.path contains "cockroachcloud" %}, for CockroachDB {{ site.data.products.standard }} and CockroachDB {{ site.data.products.advanced }} clusters{% endif %}: +A cluster may always be upgraded to the next major release after its first production patch has been made available to the cluster by CockroachDB Cloud, as indicated in the Cloud Console. Prior to v24.1, every major release is required during its support window. As of v24.1{% if page.path contains "cockroachcloud" %}, for CockroachDB {{ site.data.products.standard }} and CockroachDB {{ site.data.products.advanced }} clusters{% endif %}: - If a cluster is running a major version that is labeled a Regular release, it can be upgraded to either the subsequent major version (an Innovation release) or the one after (the next Regular release, once it is available—skipping the Innovation release). From 7fd85946388e95d0c05ee580046a76fbabf20052 Mon Sep 17 00:00:00 2001 From: mikeCRL Date: Thu, 23 Jan 2025 17:57:17 -0500 Subject: [PATCH 8/8] Add diagram --- .../_includes/common/upgrade/overview.md | 24 ++++------------ .../cockroachcloud/cluster-management.md | 27 ++++++++++++++---- .../common/version-skipping-diagram.png | Bin 0 -> 112472 bytes .../common/version-skipping-diagram.tldraw | 1 + 4 files changed, 29 insertions(+), 23 deletions(-) create mode 100644 src/current/images/common/version-skipping-diagram.png create mode 100644 src/current/images/common/version-skipping-diagram.tldraw diff --git a/src/current/_includes/common/upgrade/overview.md b/src/current/_includes/common/upgrade/overview.md index b95331fc6d9..70cab20eb16 100644 --- a/src/current/_includes/common/upgrade/overview.md +++ b/src/current/_includes/common/upgrade/overview.md @@ -30,7 +30,7 @@ Basic | Automatic | Required Standard | Automatic (default) or customer-initiated | Optional Advanced | Customer-initiated | Optional -{{site.data.alerts.calout_info}} +{{site.data.alerts.callout_info}} For CockroachDB Basic clusters and CockroachDB Standard clusters that are set to upgrade automatically, major version upgrades are finalized immediately and cannot be rolled back. {{site.data.alerts.end}} @@ -41,24 +41,12 @@ For all Cloud plans: {% endif %} ### Compatible versions -A cluster may always be upgraded to the next major release after its first production patch has been made available to the cluster by CockroachDB Cloud, as indicated in the Cloud Console. Prior to v24.1, every major release is required during its support window. As of v24.1{% if page.path contains "cockroachcloud" %}, for CockroachDB {{ site.data.products.standard }} and CockroachDB {{ site.data.products.advanced }} clusters{% endif %}: +A cluster may always be upgraded to the next major release{% if page.path contains "cockroachcloud" %} once it is made available in CockroachDB Cloud{% endif %}. As of v24.1{% if page.path contains "cockroachcloud" %}, for CockroachDB {{ site.data.products.standard }} and CockroachDB {{ site.data.products.advanced }} clusters{% endif %}, every second major verison is an Innovation release that can be skipped: -- If a cluster is running a major version that is labeled a Regular release, it can be upgraded to either the subsequent major version (an Innovation release) or the one after (the next Regular release, once it is available—skipping the Innovation release). +- If your cluster is running a major version that is a Regular release, it can be upgraded to either: + - the next major version (an Innovation release) + - the release that follows the next major version (the next Regular release, once it is available, skipping the Innovation release). - If a cluster is running a major version that is labeled an Innovation release, it can be upgraded only to the next Regular release. -```mermaid -graph LR - v241["v24.1
Regular"] --> v242["v24.2
Innovation"] - v241 --> v243["v24.3
Regular"] - v242 --> v243 - v243 --> v251["v25.1
Innovation"] - v243 --> v252["v25.2
Regular"] - v251 --> v252 - v252 --> v253["v25.3
Innovation"] - v252 --> v254["v25.4
Regular"] - v253 --> v254 - - %% Styling - classDef default fill:#fff,stroke:#333,stroke-width:2px -``` +Diagram of CockroachDB major version upgrade availability, i.e. the ability to skip innovation releases \ No newline at end of file diff --git a/src/current/cockroachcloud/cluster-management.md b/src/current/cockroachcloud/cluster-management.md index 3b8d0a28543..ad037c902cf 100644 --- a/src/current/cockroachcloud/cluster-management.md +++ b/src/current/cockroachcloud/cluster-management.md @@ -63,14 +63,27 @@ To learn more, refer to [Plan a CockroachDB {{ site.data.products.standard }} cl ### Set major-version upgrades to automatic or manual -By default, major-version and patch upgrades are automatically applied to CockroachDB {{ site.data.products.standard }} clusters. To control when a cluster is upgraded to a new major version and be provided a window to roll back a major version upgrade, you can disable automatic major-version upgrades. Patch upgrades are always applied automatically. +By default, major-version upgrades are automatically applied to CockroachDB {{ site.data.products.standard }} clusters. For each cluster, you have the option to enable manual upgrades, instead. -{{site.data.alerts.calout_info}} -For clusters that have the default setting where automatic major version upgrades are enabled, each upgrade is finalized immediately and cannot be rolled back. +When automatic upgrades are enabled and a new major version is available for CockroachDB {{ site.data.products.standard }}: + +- The cluster is automatically upgraded by Cockroach Labs to an early production patch release of the new major version, for example `vXX.Y.1`. +- Each major version, whether a Regular release or Innovation release, is included. +- Each upgrade is finalized immediately, so it is not possible to roll back to the previous major version. + +When manual upgrades are enabled and a new major version is available for CockroachDB {{ site.data.products.standard }}: + +- You will need to [manually upgrade the cluster]({% link cockroachcloud/upgrade-cockroach-version.md %}) during its support window, to maintain support. +- Once the initial production patch release for the new major version is made available to CockroachDB {{ site.data.products.standard }}, you can upgrade at any time to the latest available patch release for that major version. +- You can choose to skip Innovation releases and upgrade directly to the subsequent major verison. +- The upgrade is finalized after a 72-hour window, within which you can choose to roll back to the previous major version. + +{{site.data.alerts.callout_info}} +For clusters that have the default setting to receive automatic major version upgrades, each upgrade is finalized immediately and cannot be rolled back. {{site.data.alerts.end}} {{site.data.alerts.callout_danger}} -If you disable automatic major-version upgrades for a cluster, to maintain support for the cluster, you must manually upgrade it to a later major version before its current version reaches [End of Support (EOS)]({% link cockroachcloud/upgrade-policy.md %}). If you have not upgraded a cluster's major version for more than one year, it will be upgraded automatically. +If you disable automatic major-version upgrades for a cluster, to maintain support for the cluster, you must manually upgrade it to a supported major version before its current version reaches [End of Support (EOS)]({% link cockroachcloud/upgrade-policy.md %}). If you have not upgraded a cluster's major version for more than one year, it will be upgraded automatically. {{site.data.alerts.end}} To disable automatic major-version upgrades for a CockroachDB {{ site.data.products.standard }} cluster: @@ -87,7 +100,11 @@ When Manual upgrades is set to Off, a CockroachDB {{ site.data.products.standard Before an upgrade is set to occur, a banner displayed in the Console informing you of the version to which the cluster will be upgraded. -When the upgrade occurs, your cluster status will be listed as `Available (Maintenance)` and will remain operational. When the upgrade is complete, the new version will be indicated in the CockroachDB Cloud Console and you will receive an email notification. +When the upgrade occurs, your cluster status will be listed as `Available (Maintenance)` and will remain operational. When the upgrade is complete, the new version will be indicated in the CockroachDB Cloud Console and you will receive an email notification. + +### Upgrade the major version manually + +For manual upgrades to a newer major version of CockroachDB, refer to [Upgrade a cluster in CockroachDB Cloud]({% link cockroachcloud/upgrade-cockroach-version.md %}). ## Restore data from a backup diff --git a/src/current/images/common/version-skipping-diagram.png b/src/current/images/common/version-skipping-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..8a0e36c4f7672f775714d5ef35fba2c9f174653d GIT binary patch literal 112472 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%0D||J**lJ`n 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 NV(WOYZ2!r`{{qOaSBd}t literal 0 HcmV?d00001 diff --git a/src/current/images/common/version-skipping-diagram.tldraw b/src/current/images/common/version-skipping-diagram.tldraw new file mode 100644 index 00000000000..731003466e9 --- /dev/null +++ b/src/current/images/common/version-skipping-diagram.tldraw @@ -0,0 +1 @@ +{"tldrawFileFormatVersion":1,"schema":{"schemaVersion":2,"sequences":{"com.tldraw.store":4,"com.tldraw.asset":1,"com.tldraw.camera":1,"com.tldraw.document":2,"com.tldraw.instance":25,"com.tldraw.instance_page_state":5,"com.tldraw.page":1,"com.tldraw.instance_presence":6,"com.tldraw.pointer":1,"com.tldraw.shape":4,"com.tldraw.asset.bookmark":2,"com.tldraw.asset.image":5,"com.tldraw.asset.video":5,"com.tldraw.shape.group":0,"com.tldraw.shape.text":2,"com.tldraw.shape.bookmark":2,"com.tldraw.shape.draw":2,"com.tldraw.shape.geo":9,"com.tldraw.shape.note":8,"com.tldraw.shape.line":5,"com.tldraw.shape.frame":0,"com.tldraw.shape.arrow":5,"com.tldraw.shape.highlight":1,"com.tldraw.shape.embed":4,"com.tldraw.shape.image":4,"com.tldraw.shape.video":2,"com.tldraw.binding.arrow":0}},"records":[{"gridSize":10,"name":"","meta":{},"id":"document:document","typeName":"document"},{"meta":{},"id":"page:page","name":"Page 1","index":"a1","typeName":"page"},{"x":183.00331981497237,"y":538.7023565624606,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:2VFvoOEzgK0-Hxekg4-Iz","type":"geo","props":{"w":156,"h":96.957518718387,"geo":"rectangle","color":"black","labelColor":"black","fill":"solid","dash":"solid","size":"m","font":"sans","text":"v24.1\n(Regular)","align":"middle","verticalAlign":"middle","growY":0,"url":"","scale":1},"parentId":"page:page","index":"aJ4D4","typeName":"shape"},{"x":753.0033198149724,"y":538.7023565624606,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:3ol8GOVF-Mt4FdVpZ2jg3","type":"geo","props":{"w":155.796875,"h":96.957518718387,"geo":"rectangle","color":"black","labelColor":"black","fill":"solid","dash":"solid","size":"m","font":"sans","text":"v25.1\n(Innovation)","align":"middle","verticalAlign":"middle","growY":0,"url":"","scale":1},"parentId":"page:page","index":"aM8a2","typeName":"shape"},{"x":261.4620416314583,"y":528.8073051203119,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:3wUvVRr7me_NSF_9Ul4k0","type":"arrow","props":{"dash":"solid","size":"m","fill":"solid","color":"black","labelColor":"black","bend":-51.746964126463205,"start":{"x":53.493169400559054,"y":1.2642822265625413},"end":{"x":329.392795182511,"y":1.8976440429687915},"arrowheadStart":"none","arrowheadEnd":"arrow","text":"","labelPosition":0.5,"font":"sans","scale":1},"parentId":"page:page","index":"aQBP7","typeName":"shape"},{"x":1323.0033198149724,"y":538.7023565624606,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:JVJrw_EsLlY8aylRIbt51","type":"geo","props":{"w":155.796875,"h":96.957518718387,"geo":"rectangle","color":"black","labelColor":"black","fill":"solid","dash":"solid","size":"m","font":"sans","text":"v25.4\n(Regular)","align":"middle","verticalAlign":"middle","growY":0,"url":"","scale":1},"parentId":"page:page","index":"aP3yC","typeName":"shape"},{"x":563.0033198149724,"y":538.7023565624606,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:Osu8xv-VP9hgirHlmofaP","type":"geo","props":{"w":155.796875,"h":96.957518718387,"geo":"rectangle","color":"black","labelColor":"black","fill":"solid","dash":"solid","size":"m","font":"sans","text":"v24.3\n(Regular)","align":"middle","verticalAlign":"middle","growY":0,"url":"","scale":1},"parentId":"page:page","index":"aL8wg","typeName":"shape"},{"x":373.00331981497243,"y":538.7023565624606,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:c1RIua8ZMqGtxXxY7a-Pl","type":"geo","props":{"w":155.796875,"h":96.957518718387,"geo":"rectangle","color":"black","labelColor":"black","fill":"solid","dash":"solid","size":"m","font":"sans","text":"v24.2\n(Innovation)","align":"middle","verticalAlign":"middle","growY":0,"url":"","scale":1},"parentId":"page:page","index":"aK8UA","typeName":"shape"},{"x":943.0033198149724,"y":538.7023565624606,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:th53YzxR4nRO5o89XOAN0","type":"geo","props":{"w":155.796875,"h":96.957518718387,"geo":"rectangle","color":"black","labelColor":"black","fill":"solid","dash":"solid","size":"m","font":"sans","text":"v25.2\n(Regular)","align":"middle","verticalAlign":"middle","growY":0,"url":"","scale":1},"parentId":"page:page","index":"aN5Ew","typeName":"shape"},{"x":1133.0033198149724,"y":538.7023565624606,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:ujX4T_11am2pFAySpIjOa","type":"geo","props":{"w":155.796875,"h":96.957518718387,"geo":"rectangle","color":"black","labelColor":"black","fill":"solid","dash":"solid","size":"m","font":"sans","text":"v25.3\n(Innovation)","align":"middle","verticalAlign":"middle","growY":0,"url":"","scale":1},"parentId":"page:page","index":"aO54u","typeName":"shape"},{"id":"pointer:pointer","typeName":"pointer","x":200.1409740036422,"y":233.4780965982947,"lastActivityTimestamp":1737061114281,"meta":{}},{"followingUserId":null,"opacityForNextShape":1,"stylesForNextShape":{"tldraw:size":"m","tldraw:dash":"solid"},"brush":null,"scribbles":[],"cursor":{"type":"default","rotation":0},"isFocusMode":false,"exportBackground":true,"isDebugMode":false,"isToolLocked":false,"screenBounds":{"x":0,"y":0,"w":1631,"h":786},"insets":[false,false,false,false],"zoomBrush":null,"isGridMode":false,"isPenMode":false,"chatMessage":"","isChatting":false,"highlightedUserIds":[],"isFocused":true,"devicePixelRatio":2,"isCoarsePointer":false,"isHoveringCanvas":false,"openMenus":[],"isChangingStyle":false,"isReadonly":false,"meta":{},"duplicateProps":null,"id":"instance:instance","currentPageId":"page:page","typeName":"instance"},{"editingShapeId":null,"croppingShapeId":null,"selectedShapeIds":[],"hoveredShapeId":null,"erasingShapeIds":[],"hintingShapeIds":[],"focusedGroupId":null,"meta":{},"id":"instance_page_state:page:page","pageId":"page:page","typeName":"instance_page_state"},{"x":-9.610166508525026,"y":-192.55027067056034,"z":1,"meta":{},"id":"camera:page:page","typeName":"camera"},{"x":641.4620416314583,"y":528.8073051203119,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:usRmr1wjkyHR6wfLGyJO2","type":"arrow","props":{"dash":"solid","size":"m","fill":"solid","color":"black","labelColor":"black","bend":-51.746964126463205,"start":{"x":53.493169400559054,"y":1.2642822265625413},"end":{"x":329.392795182511,"y":1.8976440429687915},"arrowheadStart":"none","arrowheadEnd":"arrow","text":"","labelPosition":0.5,"font":"sans","scale":1},"parentId":"page:page","index":"aR9qZ","typeName":"shape"},{"x":1021.4620416314583,"y":528.8073051203119,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:VfKRF3osOpSTfGRfs3utd","type":"arrow","props":{"dash":"solid","size":"m","fill":"solid","color":"black","labelColor":"black","bend":-51.746964126463205,"start":{"x":53.493169400559054,"y":1.2642822265625413},"end":{"x":329.392795182511,"y":1.8976440429687915},"arrowheadStart":"none","arrowheadEnd":"arrow","text":"","labelPosition":0.5,"font":"sans","scale":1},"parentId":"page:page","index":"aS58t","typeName":"shape"},{"x":345.02981940450263,"y":587.0545168370534,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:9Z9rG5Uxi6LFXIonFAa8f","type":"arrow","props":{"dash":"solid","size":"m","fill":"solid","color":"black","labelColor":"black","bend":0,"start":{"x":0,"y":0},"end":{"x":20.662898429446003,"y":0},"arrowheadStart":"none","arrowheadEnd":"arrow","text":"","labelPosition":0.5,"font":"sans","scale":1},"parentId":"page:page","index":"aT1qc","typeName":"shape"},{"x":535.0298194045026,"y":587.0545168370534,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:p5Vr7N_e9u9pLVobzXjoz","type":"arrow","props":{"dash":"solid","size":"m","fill":"solid","color":"black","labelColor":"black","bend":0,"start":{"x":0,"y":0},"end":{"x":20.662898429446003,"y":0},"arrowheadStart":"none","arrowheadEnd":"arrow","text":"","labelPosition":0.5,"font":"sans","scale":1},"parentId":"page:page","index":"aU7rV","typeName":"shape"},{"x":725.0298194045026,"y":587.0545168370534,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:ZvPhkOmQvqhotAlMVAiWY","type":"arrow","props":{"dash":"solid","size":"m","fill":"solid","color":"black","labelColor":"black","bend":0,"start":{"x":0,"y":0},"end":{"x":20.662898429446003,"y":0},"arrowheadStart":"none","arrowheadEnd":"arrow","text":"","labelPosition":0.5,"font":"sans","scale":1},"parentId":"page:page","index":"aV8bA","typeName":"shape"},{"x":915.0298194045026,"y":587.0545168370534,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:hjszSo9zAoP0es0NOcZxy","type":"arrow","props":{"dash":"solid","size":"m","fill":"solid","color":"black","labelColor":"black","bend":0,"start":{"x":0,"y":0},"end":{"x":20.662898429446003,"y":0},"arrowheadStart":"none","arrowheadEnd":"arrow","text":"","labelPosition":0.5,"font":"sans","scale":1},"parentId":"page:page","index":"aW53G","typeName":"shape"},{"x":1105.0298194045026,"y":587.0545168370534,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:GXJMN5flL7BlJOUVEGe3p","type":"arrow","props":{"dash":"solid","size":"m","fill":"solid","color":"black","labelColor":"black","bend":0,"start":{"x":0,"y":0},"end":{"x":20.662898429446003,"y":0},"arrowheadStart":"none","arrowheadEnd":"arrow","text":"","labelPosition":0.5,"font":"sans","scale":1},"parentId":"page:page","index":"aX5kr","typeName":"shape"},{"x":1295.0298194045026,"y":587.0545168370534,"rotation":0,"isLocked":false,"opacity":0.75,"meta":{},"id":"shape:Gqf4GBwc-BQNMBOayqCck","type":"arrow","props":{"dash":"solid","size":"m","fill":"solid","color":"black","labelColor":"black","bend":0,"start":{"x":0,"y":0},"end":{"x":20.662898429446003,"y":0},"arrowheadStart":"none","arrowheadEnd":"arrow","text":"","labelPosition":0.5,"font":"sans","scale":1},"parentId":"page:page","index":"aYBRE","typeName":"shape"}]} \ No newline at end of file