$ oc get clusterversion NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.1.0 True False 158m Cluster version is 4.1.0
You can update, or upgrade, an OpenShift Container Platform cluster by using the
OpenShift cli (oc
).
Have access to the cluster as a user with admin
privileges.
See Using RBAC to define and apply permissions.
Have a recent etcd backup in case your upgrade fails and you must restore your cluster to a previous state.
The OpenShift Container Platform update service is the hosted service that provides over-the-air updates to both OpenShift Container Platform and Red Hat Enterprise Linux CoreOS (RHCOS). It provides a graph, or diagram that contain vertices and the edges that connect them, of component Operators. The edges in the graph show which versions you can safely update to, and the vertices are update payloads that specify the intended state of the managed cluster components.
The Cluster Version Operator (CVO) in your cluster checks with the OpenShift Container Platform update service to see the valid updates and update paths based on current component versions and information in the graph. When you request an update, the OpenShift Container Platform CVO uses the release image for that update to upgrade your cluster. The release artifacts are hosted in Quay as container images.
To allow the OpenShift Container Platform update service to provide only compatible updates, a release verification pipeline exists to drive automation. Each release artifact is verified for compatibility with supported cloud platforms and system architectures as well as other component packages. After the pipeline confirms the suitability of a release, the OpenShift Container Platform update service notifies you that it is available.
During continuous update mode, two controllers run. One continuously updates the payload manifests, applies them to the cluster, and outputs the status of the controlled rollout of the Operators, whether they are available, upgrading, or failed. The second controller polls the OpenShift Container Platform update service to determine if updates are available.
Reverting your cluster to a previous version, or a rollback, is not supported. Only upgrading to a newer version is supported. |
If updates are available, you can update your cluster by using the
OpenShift cli (oc
).
You can find information about available OpenShift Container Platform advisories and updates in the errata section of the Customer Portal.
Install the version of the OpenShift Command-line Interface (cli), commonly
known as oc
, that matches the version for your updated version.
Log in to the cluster as user with cluster-admin
privileges.
Install the jq
package.
Ensure that your cluster is available:
$ oc get clusterversion NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.1.0 True False 158m Cluster version is 4.1.0
Review the current update channel information and confirm that your channel
is set to stable-4.1
:
$ oc get clusterversion -o json|jq ".items[0].spec" { "channel": "stable-4.1", "clusterID": "990f7ab8-109b-4c95-8480-2bd1deec55ff", "upstream": "https://api.openshift.com/api/upgrades_info/v1/graph" }
For production clusters, you must subscribe to the |
View the available updates and note the version number of the update that you want to apply:
$ oc adm upgrade Cluster version is 4.1.0 Updates: VERSION IMAGE 4.1.2 quay.io/openshift-release-dev/ocp-release@sha256:9c5f0df8b192a0d7b46cd5f6a4da2289c155fd5302dec7954f8f06c878160b8b
Apply an update:
To update to the latest version:
$ oc adm upgrade --to-latest=true (1)
To update to a specific version:
$ oc adm upgrade --to=<version> (1)
1 | <version> is the update version that you obtained from the output of the
previous command. |
Review the status of the Cluster Version Operator:
$ oc get clusterversion -o json|jq ".items[0].spec" { "channel": "stable-4.1", "clusterID": "990f7ab8-109b-4c95-8480-2bd1deec55ff", "desiredUpdate": { "force": false, "image": "quay.io/openshift-release-dev/ocp-release@sha256:9c5f0df8b192a0d7b46cd5f6a4da2289c155fd5302dec7954f8f06c878160b8b", "version": "4.1.2" (1) }, "upstream": "https://api.openshift.com/api/upgrades_info/v1/graph" }
1 | If the version number in the desiredUpdate stanza matches the value that
you specified, the update is in progress. |
Review the cluster version status history to monitor the status of the update. It might take some time for all the objects to finish updating.
$ oc get clusterversion -o json|jq ".items[0].status.history" [ { "completionTime": null, "image": "quay.io/openshift-release-dev/ocp-release@sha256:9c5f0df8b192a0d7b46cd5f6a4da2289c155fd5302dec7954f8f06c878160b8b", "startedTime": "2019-06-19T20:30:50Z", "state": "Partial", "verified": true, "version": "4.1.2" }, { "completionTime": "2019-06-19T20:30:50Z", "image": "quay.io/openshift-release-dev/ocp-release@sha256:b8307ac0f3ec4ac86c3f3b52846425205022da52c16f56ec31cbe428501001d6", "startedTime": "2019-06-19T17:38:10Z", "state": "Completed", "verified": false, "version": "4.1.0" } ]
The history contains a list of the most recent versions applied to the cluster.
This value is updated when the CVO applies an update. The list is ordered by
date, where the newest update is first in the list. Updates in the history have
state Completed
if the rollout completed and Partial
if the update failed
or did not complete.
If an upgrade fails, the Operator stops and reports the status of the failing component. Rolling your cluster back to a previous version is not supported. If your upgrade fails, contact Red Hat support. |
After the update completes, you can confirm that the cluster version has updated to the new version:
$ oc get clusterversion NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.1.2 True False 2m Cluster version is 4.1.2