// Module included in the following assemblies:
//
// * installing/installing_gcp/installing-gcp-user-infra.adoc

:_mod-docs-content-type: PROCEDURE
[id="installation-gcp-user-infra-rhcos_{context}"]
= Creating the {op-system} cluster image for the {gcp-short} infrastructure

You must use a valid {op-system-first} image for {gcp-first} for
your {product-title} nodes.

.Procedure

ifndef::openshift-origin[]
. Obtain the {op-system} image from the link:https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.18/[{op-system} image mirror] page.
+
[IMPORTANT]
====
The {op-system} images might not change with every release of {product-title}.
You must download an image with the highest version that is
less than or equal to the {product-title} version that you install. Use the image version
that matches your {product-title} version if it is available.
====
+
The file name contains the {product-title} version number in the format
`rhcos-<version>-<arch>-gcp.<arch>.tar.gz`.
endif::openshift-origin[]
ifdef::openshift-origin[]
. Obtain the {op-system} image from the
link:https://getfedora.org/en/coreos/download?tab=cloud_operators&stream=stable[{op-system} Downloads] page
endif::openshift-origin[]

. Create the Google storage bucket:
+
[source,terminal]
----
$ gsutil mb gs://<bucket_name>
----

. Upload the {op-system} image to the Google storage bucket:
+
[source,terminal]
----
$ gsutil cp <downloaded_image_file_path>/rhcos-<version>-x86_64-gcp.x86_64.tar.gz  gs://<bucket_name>
----

. Export the uploaded {op-system} image location as a variable:
+
[source,terminal]
----
$ export IMAGE_SOURCE=gs://<bucket_name>/rhcos-<version>-x86_64-gcp.x86_64.tar.gz
----

. Create the cluster image:
+
[source,terminal]
----
$ gcloud compute images create "${INFRA_ID}-rhcos-image" \
    --source-uri="${IMAGE_SOURCE}"
----
