Upgrading Clusters
AC CLI provides administrator commands for preparing upgrade metadata, reviewing cluster upgrade status, and requesting cluster upgrades.
Use these commands when you need to:
- Create a
ProductManifestfor a target version - Check the current cluster version and available updates
- Request an upgrade to the latest version
- Request an upgrade to a specific version
- Review preflight results and upgrade execution progress
TOC
Before You StartPrerequisitesCreating a ProductManifestViewing Upgrade Status and Available UpdatesUpdating to the Latest VersionUpdating to a Specific VersionReviewing Detailed Upgrade StatusPreflight ResultsUpgrade StagesCommon Signals and TroubleshootingExample WorkflowBefore You Start
In ACP, availableUpdates is not a static list that you maintain manually. The upgrade controller must first see a ProductManifest for the target version before it can publish available upgrade targets for the cluster.
If you do not create the ProductManifest first, common symptoms include:
ac adm upgradeshows noavailableUpdatesac adm upgrade --to-latestfails immediately- You can only use
--allow-explicit-upgradeto request a version manually
The recommended flow is:
- Decide which version you want to publish or upgrade to.
- Create a
ProductManifestfor that version. - Wait for the upgrade metadata to be processed.
- Run
ac adm upgradeand confirm thatavailableUpdatesis populated. - Request the upgrade.
Prerequisites
Before you run upgrade-related commands, make sure that:
- You are logged in to an ACP platform.
- You have cluster administrator or equivalent permissions.
- You know the target cluster name. If omitted,
ac adm upgradeusesglobalby default. - The target environment already has the
ProductManifestCRD and the upgrade controller installed.
You can confirm the current context first:
The current context still decides which credentials and endpoint AC uses for the command.
- For
ac adm upgradeandac adm upgrade status, the target cluster is still selected explicitly with--cluster, which defaults toglobal. - For
ac adm release import-manifest, AC first inspects the current context REST URL. If it points to an ACP workload path, AC rewrites the request to the matching global path automatically. If the current context is not an ACP workload/global URL, AC uses the current context as-is and does not require a kubeconfig session extension.
If needed, switch to another ACP session first:
Creating a ProductManifest
Use the following command to create a ProductManifest for the target version:
This command creates the minimum upgrade metadata object required by the controller:
metadata.nameuses the version name with a leadingv, for examplev4.20.0spec.versionuses the version you passed in, for example4.20.0
If you want the command to wait until the object is Ready, add --wait:
You can also override the wait timeout:
Command behavior:
--versionis required.- If the
ProductManifestdoes not exist, AC creates it. - If the
ProductManifestalready exists with the same version, the command succeeds without changing it. - If the
ProductManifestalready exists with a different version, the command fails and does not overwrite the existing object. - By default, the command does not wait for Ready. It waits only when you explicitly pass
--wait.
Viewing Upgrade Status and Available Updates
After the ProductManifest is created, use the following command to review the upgrade summary for the default global cluster:
This command typically shows:
- The current cluster version
- The desired version, if an upgrade has already been requested
- The current list of available updates
- The overall upgrade conditions
Use it when you want quick answers to questions like:
- Which version is the cluster currently running?
- Has a target version already been requested?
- Are new upgrade targets available now?
- Is the cluster currently
Ready,Reconciling, orDegraded?
To query a specific cluster, add --cluster:
If you just created a ProductManifest and still do not see availableUpdates, the controller may still be processing the metadata. Wait a moment and run ac adm upgrade again.
Updating to the Latest Version
When availableUpdates is present, request an upgrade to the latest version with:
AC selects the highest version from availableUpdates and submits the upgrade request.
--to-latest is a boolean flag with a default value of false, which means:
- If you do not specify it, AC behaves as if
--to-latest=falsewas used. - If you specify
--to-latestby itself, AC treats it astrue. - You can also write
--to-latest=trueor--to-latest=falseexplicitly.
If no availableUpdates exist, the command fails and does not submit a new target version.
After you request the upgrade, review the summary again:
Updating to a Specific Version
If you want to upgrade to a specific version, run:
Example:
Typical cases include:
- You do not want the newest available version
- You are following an approved release target from your release process
- You want to retry a known target version
By default, the requested version must already appear in availableUpdates. If it does not, the command fails.
If you intentionally need to request a version that is not listed in availableUpdates, add:
--allow-explicit-upgrade defaults to false:
- If you do not specify it, AC behaves as if
--allow-explicit-upgrade=falsewas used. - If you specify
--allow-explicit-upgradeby itself, AC treats it astrue. - You can also write
--allow-explicit-upgrade=trueor--allow-explicit-upgrade=falseexplicitly.
Example:
This flag only changes client-side validation. The upgrade controller and its preflight checks still decide whether the requested target can proceed.
Reviewing Detailed Upgrade Status
If you need deeper diagnostics, run:
To review a specific cluster:
Compared with ac adm upgrade, this command expands:
- A summary of the current version, desired version, and overall conditions
- Preflight results for the current upgrade target
- Upgrade stages and operation progress
Preflight Results
Preflight describes whether the upgrade can move into execution. Each check can typically include:
- Check name
- Reentry policy
- State
- Reason
- Message
Interpret the states as follows:
Passed: The check passed.Retry: The check cannot produce a final result yet. Wait and check again.Failed: A blocking condition exists and must be handled first.
If no preflight data is available yet, treat it as "no result yet", not as "all checks passed".
Upgrade Stages
After the upgrade enters execution, the status output shows stage and operation progress.
Stage output can include:
- Stage name
- Priority
- Phase
Operation output can include:
- Operation name
- Action
- Current version
- Target version
- Phase
Interpret stage phases as follows:
Pending: The stage has not started yet.Running: The stage is currently in progress.Finished: The stage has completed.
If no stage data is available yet, the upgrade likely has not entered the execution phase.
Common Signals and Troubleshooting
Use the following guidelines when you read upgrade status:
Readyusually means the cluster has reached the desired state.Reconcilingusually means the cluster is still applying the current upgrade request.Degradedusually means the upgrade is blocked or has encountered an error.
When ac adm upgrade does not show any availableUpdates, check these items first:
- Was the
ProductManifestfor the target version created? - If you used
--wait, did theProductManifestreachReady=True? - Has the controller had enough time to process the new metadata?
When ac adm upgrade shows a desired target but the upgrade is not moving:
- Run
ac adm upgrade status. - Check whether any preflight item is in
RetryorFailed. - Review whether upgrade stages have started.
When the upgrade is already in progress:
- Run
ac adm upgrade status. - Review the current stage and operation phases.
- Compare the current version with the target version.