Skip to content

Commit 3a82399

Browse files
authored
Merge pull request #58739 from skopacz1/OSDOCS-5460
OSDOCS-5460: disconnected update workflows
2 parents e8040ac + ef3f957 commit 3a82399

9 files changed

+66
-28
lines changed

modules/update-mirror-repository.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,12 @@ $ oc adm release mirror -a ${LOCAL_SECRET_JSON} --to-dir=${REMOVABLE_MEDIA_PATH}
130130
----
131131
$ oc adm release mirror -a ${LOCAL_SECRET_JSON} --to-dir=${REMOVABLE_MEDIA_PATH}/mirror quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-${ARCHITECTURE}
132132
----
133+
+
134+
[NOTE]
135+
====
136+
This command also generates and saves the mirrored release image signature config map onto the removable media.
137+
====
138+
133139
... Take the media to the disconnected environment and upload the images to the local container registry.
134140
+
135141
[source,terminal]

modules/update-restricted.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
:_content-type: PROCEDURE
66
[id="update-restricted_{context}"]
7-
= Upgrading the disconnected cluster
7+
= Updating the disconnected cluster
88

99
Update the disconnected cluster to the {product-title} version that you downloaded the release images for.
1010

modules/update-service-configure-cvo.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ After the OpenShift Update Service Operator has been installed and the OpenShift
1010
.Prerequisites
1111

1212
* The OpenShift Update Service Operator has been installed.
13-
* The OpenShift Update Service graph-data container image has been created and pushed to a repository that is accessible to the OpenShift Update Service.
13+
* The OpenShift Update Service graph data container image has been created and pushed to a repository that is accessible to the OpenShift Update Service.
1414
* The current release and update target releases have been mirrored to a locally accessible registry.
1515
* The OpenShift Update Service application has been created.
1616

modules/update-service-create-service-cli.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ You can use the OpenShift CLI (`oc`) to create an OpenShift Update Service appli
1010
.Prerequisites
1111

1212
* The OpenShift Update Service Operator has been installed.
13-
* The OpenShift Update Service graph-data container image has been created and pushed to a repository that is accessible to the OpenShift Update Service.
13+
* The OpenShift Update Service graph data container image has been created and pushed to a repository that is accessible to the OpenShift Update Service.
1414
* The current release and update target releases have been mirrored to a locally accessible registry.
1515
1616
.Procedure
@@ -39,7 +39,7 @@ $ NAME=service
3939
$ RELEASE_IMAGES=registry.example.com/ocp4/openshift4-release-images
4040
----
4141

42-
. Set the local pullspec for the graph-data image to the graph-data container image created in "Creating the OpenShift Update Service graph data container image", for example, `registry.example.com/openshift/graph-data:latest`:
42+
. Set the local pullspec for the graph data image to the graph data container image created in "Creating the OpenShift Update Service graph data container image", for example, `registry.example.com/openshift/graph-data:latest`:
4343
//TODO: Add xref to the preceding step when allowed.
4444
+
4545
[source,terminal]

modules/update-service-create-service-web-console.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ You can use the {product-title} web console to create an OpenShift Update Servic
1010
.Prerequisites
1111

1212
* The OpenShift Update Service Operator has been installed.
13-
* The OpenShift Update Service graph-data container image has been created and pushed to a repository that is accessible to the OpenShift Update Service.
13+
* The OpenShift Update Service graph data container image has been created and pushed to a repository that is accessible to the OpenShift Update Service.
1414
* The current release and update target releases have been mirrored to a locally accessible registry.
1515
1616
.Procedure
@@ -25,7 +25,7 @@ You can use the {product-title} web console to create an OpenShift Update Servic
2525

2626
. Enter a name in the *Name* field, for example, `service`.
2727

28-
. Enter the local pullspec in the *Graph Data Image* field to the graph-data container image created in "Creating the OpenShift Update Service graph data container image", for example, `registry.example.com/openshift/graph-data:latest`.
28+
. Enter the local pullspec in the *Graph Data Image* field to the graph data container image created in "Creating the OpenShift Update Service graph data container image", for example, `registry.example.com/openshift/graph-data:latest`.
2929
//TODO: Add xref to preceding step when allowed.
3030

3131
. In the *Releases* field, enter the local registry and repository created to contain the release images in "Mirroring the OpenShift Container Platform image repository", for example, `registry.example.com/ocp4/openshift4-release-images`.

modules/update-service-graph-data.adoc

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@
55
[id="update-service-graph-data_{context}"]
66
= Creating the OpenShift Update Service graph data container image
77

8-
The OpenShift Update Service requires a graph-data container image, from which the OpenShift Update Service retrieves information about channel membership and blocked update edges. Graph data is typically fetched directly from the upgrade graph data repository. In environments where an internet connection is unavailable, loading this information from an init container is another way to make the graph data available to the OpenShift Update Service. The role of the init container is to provide a local copy of the graph data, and during pod initialization, the init container copies the data to a volume that is accessible by the service.
8+
The OpenShift Update Service requires a graph data container image, from which the OpenShift Update Service retrieves information about channel membership and blocked update edges. Graph data is typically fetched directly from the upgrade graph data repository. In environments where an internet connection is unavailable, loading this information from an init container is another way to make the graph data available to the OpenShift Update Service. The role of the init container is to provide a local copy of the graph data, and during pod initialization, the init container copies the data to a volume that is accessible by the service.
9+
10+
[NOTE]
11+
====
12+
The oc-mirror OpenShift CLI (`oc`) plugin creates this graph data container image in addition to mirroring release images. If you used the oc-mirror plugin to mirror your release images, you can skip this procedure.
13+
====
914

1015
.Procedure
1116

@@ -22,14 +27,14 @@ RUN mkdir -p /var/lib/cincinnati-graph-data && tar xvzf cincinnati-graph-data.ta
2227
CMD ["/bin/bash", "-c" ,"exec cp -rp /var/lib/cincinnati-graph-data/* /var/lib/cincinnati/graph-data"]
2328
----
2429

25-
. Use the docker file created in the above step to build a graph-data container image, for example, `registry.example.com/openshift/graph-data:latest`:
30+
. Use the docker file created in the above step to build a graph data container image, for example, `registry.example.com/openshift/graph-data:latest`:
2631
+
2732
[source,terminal]
2833
----
2934
$ podman build -f ./Dockerfile -t registry.example.com/openshift/graph-data:latest
3035
----
3136

32-
. Push the graph-data container image created in the previous step to a repository that is accessible to the OpenShift Update Service, for example, `registry.example.com/openshift/graph-data:latest`:
37+
. Push the graph data container image created in the previous step to a repository that is accessible to the OpenShift Update Service, for example, `registry.example.com/openshift/graph-data:latest`:
3338
+
3439
[source,terminal]
3540
----
@@ -38,5 +43,5 @@ $ podman push registry.example.com/openshift/graph-data:latest
3843
+
3944
[NOTE]
4045
====
41-
To push a graph data image to a local registry in a disconnected environment, copy the graph-data container image created in the previous step to a repository that is accessible to the OpenShift Update Service. Run `oc image mirror --help` for available options.
46+
To push a graph data image to a local registry in a disconnected environment, copy the graph data container image created in the previous step to a repository that is accessible to the OpenShift Update Service. Run `oc image mirror --help` for available options.
4247
====

updating/updating-restricted-network-cluster/mirroring-image-repository.adoc

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,39 @@ You must mirror container images onto a mirror registry before you can update a
1313
Your mirror registry must be running at all times while the cluster is running.
1414
====
1515

16-
There are two methods for mirroring images onto a mirror registry:
16+
The following steps outline the high-level workflow on how to mirror images to a mirror registry:
1717

18-
* xref:../../updating/updating-restricted-network-cluster/mirroring-image-repository.adoc#mirroring-ocp-resources-ocmirror[Using the oc-mirror OpenShift CLI (`oc`) plugin]
18+
. Install the OpenShift CLI (`oc`) on all devices being used to retrieve and push release images.
1919

20-
* xref:../../updating/updating-restricted-network-cluster/mirroring-image-repository.adoc#update-mirror-repository-adm-release-mirror_mirroring-ocp-image-repository[Using the `oc adm release mirror` command]
20+
. Download the registry pull secret and add it to your cluster.
2121

22-
Compared to using the `oc adm release mirror`command, the oc-mirror plugin has the following advantages:
22+
. If you use the xref:../../updating/updating-restricted-network-cluster/mirroring-image-repository.adoc#mirroring-ocp-resources-ocmirror[oc-mirror OpenShift CLI (`oc`) plugin]:
23+
24+
.. Install the oc-mirror plugin on all devices being used to retrieve and push release images.
25+
26+
.. Create an image set configuration file for the plugin to use when determining which release images to mirror. You can edit this configuration file later to change which release images that the plugin mirrors.
27+
28+
.. Mirror your targeted release images directly to a mirror registry, or to removable media and then to a mirror registry.
29+
30+
.. Install the `ImageContentSourcePolicy` and `CatalogSource` resources that oc-mirror generated into the cluster.
31+
32+
.. Repeat these steps as needed to update your mirror registry.
33+
34+
. If you use the xref:../../updating/updating-restricted-network-cluster/mirroring-image-repository.adoc#update-mirror-repository-adm-release-mirror_mirroring-ocp-image-repository[`oc adm release mirror` command]:
35+
36+
.. Set environment variables that correspond to your environment and the release images you want to mirror.
37+
38+
.. Mirror your targeted release images directly to a mirror registry, or to removable media and then to a mirror registry.
39+
40+
.. Repeat these steps as needed to update your mirror registry.
41+
42+
Compared to using the `oc adm release mirror` command, the oc-mirror plugin has the following advantages:
2343

2444
* It can mirror content other than container images.
2545
2646
* After mirroring images for the first time, it is easier to update images in the registry.
2747
28-
* The oc-mirror plugin provides an automated way to mirror the release payload from Quay, and also builds the latest graph-data image for the OpenShift Update Service running in the disconnected environment.
48+
* The oc-mirror plugin provides an automated way to mirror the release payload from Quay, and also builds the latest graph data image for the OpenShift Update Service running in the disconnected environment.
2949
3050
[id="prerequisites_updating-mirroring-disconnected"]
3151
== Prerequisites
@@ -51,24 +71,13 @@ include::modules/cli-installing-cli.adoc[leveloffset=+2]
5171

5272
* xref:../../cli_reference/openshift_cli/extending-cli-plugins.adoc#cli-installing-plugins_cli-extend-plugins[Installing and using CLI plugins]
5373

54-
// this file doesn't exist, so I'm including the one that should pick up more changes from Clayton's PR - modules/installation-adding-mirror-registry-pull-secret.adoc[leveloffset=+1]
55-
5674
include::modules/installation-adding-registry-pull-secret.adoc[leveloffset=+2]
5775

5876
[id=mirroring-ocp-resources-ocmirror]
5977
== Mirroring resources using the oc-mirror plugin
6078

6179
You can use the oc-mirror OpenShift CLI (`oc`) plugin to mirror images to a mirror registry in your fully or partially disconnected environments. You must run oc-mirror from a system with internet connectivity to download the required images from the official Red Hat registries.
6280

63-
The following steps outline the high-level workflow on how to use the oc-mirror plugin to mirror images to a mirror registry:
64-
65-
. Create an image set configuration file.
66-
. Mirror the image set to the mirror registry by using one of the following methods:
67-
** Mirror an image set directly to the mirror registry.
68-
** Mirror an image set to disk, transfer the image set to the target environment, and then upload the image set to the target mirror registry.
69-
. Install the `ImageContentSourcePolicy` and `CatalogSource` resources that were generated by oc-mirror into the cluster.
70-
. Repeat these steps to update your mirror registry as necessary.
71-
7281
// About the oc-mirror plugin
7382
include::modules/oc-mirror-about.adoc[leveloffset=+2]
7483

updating/updating-restricted-network-cluster/restricted-network-update-osus.adoc

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,21 @@ include::_attributes/common-attributes.adoc[]
66

77
toc::[]
88

9-
To get an update experience similar to connected clusters, you can use the following procedures to install and configure the OpenShift Update Service in a disconnected environment.
9+
To get an update experience similar to connected clusters, you can use the following procedures to install and configure the OpenShift Update Service (OSUS) in a disconnected environment.
10+
11+
The following steps outline the high-level workflow on how to update a cluster in a disconnected environment using OSUS:
12+
13+
. Configure access to a secured registry.
14+
15+
. Update the global cluster pull secret to access your mirror registry.
16+
17+
. Install the OSUS Operator.
18+
19+
. Create a graph data container image for the OpenShift Update Service.
20+
21+
. Install the OSUS application and configure your clusters to use the local OpenShift Update Service.
22+
23+
. Perform a supported update procedure from the documentation as you would with a connected cluster.
1024

1125
include::modules/disconnected-osus-overview.adoc[leveloffset=+1]
1226

updating/updating-restricted-network-cluster/restricted-network-update.adoc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ See xref:../../authentication/using-rbac.adoc#using-rbac[Using RBAC to define an
1919
* If your cluster uses manually maintained credentials, you must ensure that the Cloud Credential Operator (CCO) is in an upgradeable state. For more information, see _Upgrading clusters with manually maintained credentials_ for xref:../../installing/installing_aws/manually-creating-iam.adoc#manually-maintained-credentials-upgrade_manually-creating-iam-aws[AWS], xref:../../installing/installing_azure/manually-creating-iam-azure.adoc#manually-maintained-credentials-upgrade_manually-creating-iam-azure[Azure], or xref:../../installing/installing_gcp/manually-creating-iam-gcp.adoc#manually-maintained-credentials-upgrade_manually-creating-iam-gcp[GCP].
2020
//STS is not currently supported in a disconnected environment, but the following bullet can be uncommented when that changes.
2121
//* If your cluster uses manually maintained credentials with the AWS Security Token Service (STS), obtain a copy of the `ccoctl` utility from the release image being upgraded to and use it to process any updated credentials. For more information, see xref:../../authentication/managing_cloud_provider_credentials/cco-mode-sts.adoc#sts-mode-upgrading[_Upgrading an OpenShift Container Platform cluster configured for manual mode with STS_].
22-
* If you run an Operator or you have configured any application with the pod disruption budget, you might experience an interruption during the upgrade process. If `minAvailable` is set to 1 in `PodDisruptionBudget`, the nodes are drained to apply pending machine configs which might block the eviction process. If several nodes are rebooted, all the pods might run on only one node, and the `PodDisruptionBudget` field can prevent the node drain.
22+
23+
[NOTE]
24+
====
25+
If you run an Operator or you have configured any application with the pod disruption budget, you might experience an interruption during the upgrade process. If `minAvailable` is set to 1 in `PodDisruptionBudget`, the nodes are drained to apply pending machine configs which might block the eviction process. If several nodes are rebooted, all the pods might run on only one node, and the `PodDisruptionBudget` field can prevent the node drain.
26+
====
2327

2428
include::modules/machine-health-checks-pausing.adoc[leveloffset=+1]
2529

0 commit comments

Comments
 (0)