Upgrade the global cluster
This page covers the traditional operating system path for the global cluster. If your global cluster uses Alauda OS, the Kubernetes step lives in the Immutable Infrastructure documentation — see Upgrading the global Cluster on Immutable Infrastructure. The Core, Aligned, and Agnostic steps described on this page still apply to immutable-OS clusters; only the way Kubernetes is rolled out differs.
consists of a global cluster and one or more workload clusters. To move the platform to a new ACP Distribution Version, upgrade the global tier to the target Distribution Version first, and then upgrade workload clusters to that same Distribution Version.
Cluster upgrades use the CVO-based workflow. A typical global cluster upgrade includes artifact preparation, preflight checks, upgrade request, and status observation.
Before upgrading the global cluster, verify that every workload cluster is within the target release's Compatible Versions in the Kubernetes Support Matrix. This prerequisite is separate from the third-party cluster onboarding range.
This Compatible Versions prerequisite applies whether or not the environment uses global DR. Global DR changes the procedure used to upgrade the global tier, but it does not change the requirement that workload clusters must remain within the compatible Kubernetes version range before the global tier is upgraded to the target Distribution Version.
Global cluster upgrades follow the validated upgrade.sh-based procedure documented on this page. You can request the global-cluster upgrade from the Web Console, by updating ClusterVersionShadow.spec.desiredUpdate, or by using ACP CLI with --cluster=global. For the complete AC CLI workflow and output interpretation, see Upgrading Clusters. For full command and flag syntax, see AC CLI Administrator Command Reference.
If the environment uses global DR, follow Upgrade Global Clusters in a DR Environment. Otherwise, follow the standard workflow below.
Standard Workflow
A global cluster upgrade is staged across a timeline. Most of the work is completed before the maintenance window so the window itself stays short and predictable:
Phase 1 and Phase 2 do not change cluster state — run them early so the maintenance window only contains Phase 3. A small or lab environment can instead run a single bash upgrade.sh that performs synchronization and CVO deployment together, but production windows usually keep them separate.
Sync upgrade artifacts
When: any time before the maintenance window. This step uploads artifacts to the registry and does not change cluster state.
First, record the configured registry address and determine whether the platform uses the built-in or an external registry:
The second value is false for the platform built-in Registry and true for an external registry. The publication command is selected after the target Aligned packages are copied into plugins/.
The Core Package does not contain the Aligned packages from ACP Upgrade to v4.4. Copy each of the eleven separately downloaded packages listed in Pre-Upgrade Preparation into the plugins/ directory of the extracted Core Package. Run the following command once for each package:
Confirm that the directory contains all eleven packages before synchronization:
Do not replace this copy step with violet push when the source environment runs ACP 4.1. Publishing these packages through violet can cause auto-install applications such as the Web Console to deploy before their ACP 4.4 dependencies are available.
Publish the staged payload by following the branch that matches the value of ProductBase.spec.registry.external.
For the platform built-in Registry (false), run upgrade.sh in sync-only mode from the extracted Core Package directory:
--only-sync-image uploads Core images and the packages that you manually placed in plugins/, without deploying the cluster version operator or changing running applications. The CVO is deployed later, inside the maintenance window — see Deploy the cluster version operator.
For an external registry (true), do not use --only-sync-image as proof of publication. upgrade.sh automatically skips image synchronization. From the target Core Package's installer/ directory, run both res/upload.sh all and res/upload.sh necessary by following Prepare the Target-Version Payload. The modes may run in either order, but both must succeed.
The selected publication path makes the artifacts required by the CVO-based workflow available, including:
For the eleven Aligned applications from ACP Upgrade to v4.4, always stage the packages in plugins/. The built-in Registry path publishes them with upgrade.sh --only-sync-image; the external Registry path publishes them through res/upload.sh all. CVO upgrades an application only when it is already installed; publishing a package for an application that is not installed does not install it.
Use violet push for the other packages downloaded from the violet list inventory:
Pushing every operator package to every cluster from the global window is the recommended pattern. If the global window has already passed and you discover a workload cluster missing an operator package, you can still push to that workload cluster before the workload upgrade — see Upgrade workload clusters.
Before requesting the upgrade, make the target package available for every Aligned plugin installed on the cluster. Use upgrade.sh for applications from ACP Upgrade to v4.4, and violet for the other Aligned packages. Synchronizing a package does not install an application that is not currently installed. For an installed Aligned cluster plugin, CVO requires the matching target ModulePluginConfig to be Ready; otherwise, CVO cannot build the upgrade plan, reports the error through ClusterVersionShadow, and retries the existing request. An installed Aligned operator requires a matching target InstallPlan from its catalog.
Registry behavior depends on how the environment is configured:
When the target registry is not the platform default, add registry parameters:
To bypass artifact validation when it is known to be redundant, add --skip-check-artifacts.
Do not open the maintenance window until image and plugin synchronization is complete.
Before running preflight, confirm that the registry configuration is still correct:
Use successful completion of the selected publication commands and the registry administration interface or API as the Phase 1 evidence. Confirm that the expected target repositories and tags exist, and compare the published Extension set with the installed inventory exported to apps.yaml. Do not use ProductBase.status.artifacts as a zero-output target-version gate: it represents the current catalog and can legitimately contain Absent entries for optional or uninstalled packages.
Run preflight checks
When: 1–2 weeks before the maintenance window, so there is time to resolve any blocking items before the window opens.
Run upgrade.sh in preflight mode:
Preflight is read-only — it validates upgrade readiness and does not change cluster state.
Preflight returns two parts:
The default check set includes:
ResourcePatchUpgradeableClusterVersionUpgradeableAdminAckRequiredVersionUpgradePathKubernetesVersionSupportedDockerRuntimeUnsupportedClusterRunningClusterModuleStableControlPlaneStaticPodsPresentCustomEtcdBackupCronJobsAbsentCRIUpgradePodsAbsentModuleInfoStablePlatformLicense
If any check does not pass, stop before the maintenance window and follow Upgrade Troubleshooting. Do not disable version, Kubernetes support, or administrator acknowledgement checks to force an unsupported upgrade.
Deploy the cluster version operator
When: at the start of the maintenance window.
Run upgrade.sh in skip-sync mode. Synchronization is skipped because the artifacts were already uploaded in Sync upgrade artifacts:
This deploys or updates the cluster version operator (CVO) and completes the remaining preparation. The CVO drives the Core and Aligned plugin upgrade once the upgrade is requested in the next step.
After the command completes, inspect the target ProductManifest before requesting the upgrade:
The per-artifact output is diagnostic and is not required to be empty. The target manifest can include optional, Agnostic, or uninstalled entries that are legitimately not Ready. Compare the output with the installed Core and Aligned inventory. For an installed Aligned ModulePlugin, inspect the matching target ModulePluginConfig when its channel is not Ready:
Use the component name and channel tag from the target ProductManifest, or the name reported in the ClusterVersionShadow error, to identify the ModulePluginConfig. The component version in this name is not necessarily the ACP Distribution Version. Do not treat artifactStatus: Absent alone as proof that the registry manifest is missing; use the ModulePluginConfig condition and its .spec.image to distinguish a missing manifest from authentication, CA, network, or package-content failures.
Request the upgrade
After the cluster version operator is deployed, request the upgrade through one of the following entry points. The three entry points are equivalent; pick the one that fits your operating model.
Use this entry point after the target version becomes available for the cluster. The request follows a two-step flow:
- In Step 1, review the RPCH list.
- Click Acknowledge to continue to Step 2.
- In Step 2, review Current Version and Target Version. The page does not display a plugin list or a warning panel at this stage.
- The target version is determined by the prepared upgrade artifacts and cannot be selected manually in the Web Console.
- Click Start Upgrade.
- Confirm the action in the dialog.
- After confirmation, the page shows that the upgrade request has been submitted and the action enters an in-progress state.
Observe execution
Use the following command to inspect the overall status:
Important status fields:
Focus on these conditions first:
If Stalled=True, follow Upgrade Troubleshooting. To observe an individual plugin or operator module, read its ModuleInfo:
A module has reached its target when status.phase is Running and status.version equals the target version.
Upgrade Agnostic plugins from Marketplace
CVO drives Core and Aligned plugins. Agnostic plugins are outside CVO's scope and must be upgraded individually after the cluster has reached the target Distribution Version. Whether each Agnostic plugin needs to be upgraded depends on its own Kubernetes compatibility — see the plugin's release notes for compatibility with the target Kubernetes version.
For each in-use Agnostic plugin on the global cluster:
- In the Web Console, switch to Administrator view.
- Navigate to Marketplace > Cluster Plugins for Agnostic cluster plugins, or to the operator workflow for Agnostic operators.
- Select the target plugin or operator and trigger the upgrade. The Marketplace upgrade flow reads the package previously pushed with
violet.
If you skipped pushing an Agnostic plugin during pre-upgrade and the Marketplace does not offer the target version, complete the violet push step first and then retry the Marketplace upgrade.
Validate the Upgrade
After the cluster reaches the desired version and the in-use Agnostic plugins are handled, complete Upgrade Validation.