diff --git a/_topic_maps/_topic_map.yml b/_topic_maps/_topic_map.yml index 1b566c702f..63bf0230a3 100644 --- a/_topic_maps/_topic_map.yml +++ b/_topic_maps/_topic_map.yml @@ -536,6 +536,8 @@ Topics: File: creating-multi-arch-compute-nodes-azure - Name: Creating a cluster with multi-architecture compute machines on AWS File: creating-multi-arch-compute-nodes-aws + - Name: Creating a cluster with multi-architecture compute machines on GCP + File: creating-multi-arch-compute-nodes-gcp - Name: Creating a cluster with multi-architecture compute machines on bare metal File: creating-multi-arch-compute-nodes-bare-metal - Name: Creating a cluster with multi-architecture compute machines on IBM Z and IBM LinuxONE with z/VM diff --git a/modules/multi-architecture-modify-machine-set-gcp.adoc b/modules/multi-architecture-modify-machine-set-gcp.adoc new file mode 100644 index 0000000000..b65e859a06 --- /dev/null +++ b/modules/multi-architecture-modify-machine-set-gcp.adoc @@ -0,0 +1,149 @@ +//Module included in the following assembly +// +//post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-gcp.adoc + +:_content-type: PROCEDURE +[id="multi-architecture-modify-machine-set-gcp_{context}"] += Adding an ARM64 compute machine set to your GCP cluster + +To configure a cluster with multi-architecture compute machines, you must create a GCP ARM64 compute machine set. This adds ARM64 compute nodes to your cluster. + +.Prerequisites + +* You installed the {oc-first}. +* You used the installation program to create an AMD64 single-architecture AWS cluster with the multi-architecture installer binary. + +.Procedure +* Create and modify a compute machine set, this controls the ARM64 compute nodes in your cluster: ++ +[source,terminal] +---- +$ oc create -f gcp-arm64-machine-set-0.yaml +---- ++ +-- +.Sample GCP YAML compute machine set to deploy an ARM64 compute node +[source,yaml] +---- +apiVersion: machine.openshift.io/v1beta1 +kind: MachineSet +metadata: + labels: + machine.openshift.io/cluster-api-cluster: <1> + name: -w-a + namespace: openshift-machine-api +spec: + replicas: 1 + selector: + matchLabels: + machine.openshift.io/cluster-api-cluster: + machine.openshift.io/cluster-api-machineset: -w-a + template: + metadata: + creationTimestamp: null + labels: + machine.openshift.io/cluster-api-cluster: + machine.openshift.io/cluster-api-machine-role: <2> + machine.openshift.io/cluster-api-machine-type: + machine.openshift.io/cluster-api-machineset: -w-a + spec: + metadata: + labels: + node-role.kubernetes.io/: "" + providerSpec: + value: + apiVersion: gcpprovider.openshift.io/v1beta1 + canIPForward: false + credentialsSecret: + name: gcp-cloud-credentials + deletionProtection: false + disks: + - autoDelete: true + boot: true + image: <3> + labels: null + sizeGb: 128 + type: pd-ssd + gcpMetadata: <4> + - key: + value: + kind: GCPMachineProviderSpec + machineType: n1-standard-4 <5> + metadata: + creationTimestamp: null + networkInterfaces: + - network: -network + subnetwork: -worker-subnet + projectID: <6> + region: us-central1 <7> + serviceAccounts: + - email: -w@.iam.gserviceaccount.com + scopes: + - https://www.googleapis.com/auth/cloud-platform + tags: + - -worker + userDataSecret: + name: worker-user-data + zone: us-central1-a +---- +<1> Specify the infrastructure ID that is based on the cluster ID that you set when you provisioned the cluster. You can obtain the infrastructure ID by running the following command: ++ +[source,terminal] +---- +$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster +---- +<2> Specify the role node label to add. +<3> Specify the path to the image that is used in current compute machine sets. You need the project and image name for your path to image. ++ +To access the project and image name, run the following command: ++ +[source,terminal] +---- +$ oc get configmap/coreos-bootimages \ + -n openshift-machine-config-operator \ + -o jsonpath='{.data.stream}' | jq \ + -r '.architectures.aarch64.images.gcp' +---- ++ +.Example output +[source,terminal] +---- + "gcp": { + "release": "415.92.202309142014-0", + "project": "rhcos-cloud", + "name": "rhcos-415-92-202309142014-0-gcp-aarch64" + } +---- +Use the `project` and `name` parameters from the output to create the path to image field in your machine set. The path to the image should follow the following format: ++ +[source,terminal] +---- +$ projects//global/images/ +---- +<4> Optional: Specify custom metadata in the form of a `key:value` pair. For example use cases, see the GCP documentation for link:https://cloud.google.com/compute/docs/metadata/setting-custom-metadata[setting custom metadata]. +<5> Specify an ARM64 supported machine type. For more information, refer to _Tested instance types for GCP on 64-bit ARM infrastructures_ in "Additional resources". +<6> Specify the name of the GCP project that you use for your cluster. +<7> Specify the region, for example, `us-central1`. Ensure that the zone you select offers 64-bit ARM machines. +-- + +.Verification +. View the list of compute machine sets by entering the following command: ++ +[source,terminal] +---- +$ oc get machineset -n openshift-machine-api +---- +You can then see your created ARM64 machine set. ++ +.Example output +[source,terminal] +---- +NAME DESIRED CURRENT READY AVAILABLE AGE +-gcp-arm64-machine-set-0 2 2 2 2 10m +---- +. You can check that the nodes are ready and scheduable with the following command: ++ +[source,terminal] +---- +$ oc get nodes +---- \ No newline at end of file diff --git a/modules/multi-architecture-verifying-cluster-compatibility.adoc b/modules/multi-architecture-verifying-cluster-compatibility.adoc index fe3399d390..59a7ba61b5 100644 --- a/modules/multi-architecture-verifying-cluster-compatibility.adoc +++ b/modules/multi-architecture-verifying-cluster-compatibility.adoc @@ -1,6 +1,11 @@ // Module included in the following assemblies: -// * post_installation_configuration/multi-architecture-configuration.adoc +// * post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-aws.adoc +// * post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-azure.adoc +// * post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-bare-metal.adoc +// * post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-gcp.adoc +// * post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-ibm-z-kvm.adoc +// * post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-ibm-z.adoc :_content-type: PROCEDURE [id="multi-architecture-verifying-cluster-compatibility_{context}"] diff --git a/post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-gcp.adoc b/post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-gcp.adoc new file mode 100644 index 0000000000..75b42d1862 --- /dev/null +++ b/post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-gcp.adoc @@ -0,0 +1,22 @@ +:_content-type: ASSEMBLY +:context: creating-multi-arch-compute-nodes-gcp +[id="creating-multi-arch-compute-nodes-gcp"] += Creating a cluster with multi-architecture compute machines on GCP +include::_attributes/common-attributes.adoc[] + +toc::[] + +To create a Google Cloud Platform (GCP) cluster with multi-architecture compute machines, you must first create a single-architecture GCP installer-provisioned cluster with the multi-architecture installer binary. For more information on AWS installations, refer to xref:../../installing/installing_gcp/installing-gcp-customizations.adoc[Installing a cluster on GCP with customizations]. You can then add ARM64 compute machines sets to your GCP cluster. + +[NOTE] +==== +Secure booting is currently not supported on ARM64 machines for GCP +==== + +include::modules/multi-architecture-verifying-cluster-compatibility.adoc[leveloffset=+1] + +include::modules/multi-architecture-modify-machine-set-gcp.adoc[leveloffset=+1] + +.Additional resources + +* xref:../../installing/installing_gcp/installing-gcp-customizations.adoc#installation-gcp-tested-machine-types-arm_installing-gcp-customizations[Tested instance types for GCP on 64-bit ARM infrastructures] \ No newline at end of file diff --git a/post_installation_configuration/configuring-multi-arch-compute-machines/multi-architecture-configuration.adoc b/post_installation_configuration/configuring-multi-arch-compute-machines/multi-architecture-configuration.adoc index 997742ec0c..8ec42d22f9 100644 --- a/post_installation_configuration/configuring-multi-arch-compute-machines/multi-architecture-configuration.adoc +++ b/post_installation_configuration/configuring-multi-arch-compute-machines/multi-architecture-configuration.adoc @@ -28,8 +28,15 @@ To create a cluster with multi-architecture compute machines for various platfor * xref:../../post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-aws.adoc#creating-multi-arch-compute-nodes-aws[Creating a cluster with multi-architecture compute machines on AWS] +* xref:../../post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-gcp.adoc#creating-multi-arch-compute-nodes-gcp[Creating a cluster with multi-architecture compute machines on GCP] + * xref:../../post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-bare-metal.adoc#creating-multi-arch-compute-nodes-bare-metal[Creating a cluster with multi-architecture compute machines on bare metal] * xref:../../post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-ibm-z.adoc#creating-multi-arch-compute-nodes-ibm-z[Creating a cluster with multi-architecture compute machines on {ibmzProductName} and {linuxoneProductName} with z/VM] * xref:../../post_installation_configuration/configuring-multi-arch-compute-machines/creating-multi-arch-compute-nodes-ibm-z-kvm.adoc#creating-multi-arch-compute-nodes-ibm-z-kvm[Creating a cluster with multi-architecture compute machines on {ibmzProductName} and {linuxoneProductName} with {op-system-base} KVM] + +[IMPORTANT] +==== +Autoscaling from zero is currently not supported on Google Cloud Platform (GCP). +====