Chapter 14. Installation configuration parameters for GCP
Before you deploy an OpenShift Container Platform cluster on Google Cloud Platform (GCP), you provide parameters to customize your cluster and the platform that hosts it. When you create the install-config.yaml
file, you provide values for the required parameters through the command line. You can then modify the install-config.yaml
file to customize your cluster further.
14.1. Available installation configuration parameters for GCP
The following tables specify the required, optional, and GCP-specific installation configuration parameters that you can set as part of the installation process.
After installation, you cannot modify these parameters in the install-config.yaml
file.
14.1.1. Required configuration parameters
Required installation configuration parameters are described in the following table:
Parameter | Description | Values |
---|---|---|
apiVersion: |
The API version for the | String |
baseDomain: |
The base domain of your cloud provider. The base domain is used to create routes to your OpenShift Container Platform cluster components. The full DNS name for your cluster is a combination of the |
A fully-qualified domain or subdomain name, such as |
metadata: |
Kubernetes resource | Object |
metadata: name: |
The name of the cluster. DNS records for the cluster are all subdomains of |
String of lowercase letters, hyphens ( |
platform: |
The configuration for the specific platform upon which to perform the installation: | Object |
pullSecret: | Get a pull secret from Red Hat OpenShift Cluster Manager to authenticate downloading container images for OpenShift Container Platform components from services such as Quay.io. |
{ "auths":{ "cloud.openshift.com":{ "auth":"b3Blb=", "email":"you@example.com" }, "quay.io":{ "auth":"b3Blb=", "email":"you@example.com" } } } |
14.1.2. Network configuration parameters
You can customize your installation configuration based on the requirements of your existing network infrastructure. For example, you can expand the IP address block for the cluster network or provide different IP address blocks than the defaults.
Only IPv4 addresses are supported.
Parameter | Description | Values |
---|---|---|
networking: | The configuration for the cluster network. | Object Note
You cannot modify parameters specified by the |
networking: networkType: | The Red Hat OpenShift Networking network plugin to install. |
|
networking: clusterNetwork: | The IP address blocks for pods.
The default value is If you specify multiple IP address blocks, the blocks must not overlap. | An array of objects. For example: networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 |
networking: clusterNetwork: cidr: |
Required if you use An IPv4 network. |
An IP address block in Classless Inter-Domain Routing (CIDR) notation. The prefix length for an IPv4 block is between |
networking: clusterNetwork: hostPrefix: |
The subnet prefix length to assign to each individual node. For example, if | A subnet prefix.
The default value is |
networking: serviceNetwork: |
The IP address block for services. The default value is The OVN-Kubernetes network plugins supports only a single IP address block for the service network. | An array with an IP address block in CIDR format. For example: networking: serviceNetwork: - 172.30.0.0/16 |
networking: machineNetwork: | The IP address blocks for machines. If you specify multiple IP address blocks, the blocks must not overlap. | An array of objects. For example: networking: machineNetwork: - cidr: 10.0.0.0/16 |
networking: machineNetwork: cidr: |
Required if you use | An IP network block in CIDR notation.
For example, Note
Set the |
14.1.3. Optional configuration parameters
Optional installation configuration parameters are described in the following table:
Parameter | Description | Values |
---|---|---|
additionalTrustBundle: | A PEM-encoded X.509 certificate bundle that is added to the nodes' trusted certificate store. This trust bundle may also be used when a proxy has been configured. | String |
capabilities: | Controls the installation of optional core cluster components. You can reduce the footprint of your OpenShift Container Platform cluster by disabling optional components. For more information, see the "Cluster capabilities" page in Installing. | String array |
capabilities: baselineCapabilitySet: |
Selects an initial set of optional capabilities to enable. Valid values are | String |
capabilities: additionalEnabledCapabilities: |
Extends the set of optional capabilities beyond what you specify in | String array |
cpuPartitioningMode: | Enables workload partitioning, which isolates OpenShift Container Platform services, cluster management workloads, and infrastructure pods to run on a reserved set of CPUs. Workload partitioning can only be enabled during installation and cannot be disabled after installation. While this field enables workload partitioning, it does not configure workloads to use specific CPUs. For more information, see the Workload partitioning page in the Scalability and Performance section. |
|
compute: | The configuration for the machines that comprise the compute nodes. |
Array of |
compute: architecture: |
Determines the instruction set architecture of the machines in the pool. Currently, clusters with varied architectures are not supported. All pools must specify the same architecture. Valid values are | String |
compute: hyperthreading: |
Whether to enable or disable simultaneous multithreading, or Important If you disable simultaneous multithreading, ensure that your capacity planning accounts for the dramatically decreased machine performance. |
|
compute: name: |
Required if you use |
|
compute: platform: |
Required if you use |
|
compute: replicas: | The number of compute machines, which are also known as worker machines, to provision. |
A positive integer greater than or equal to |
featureSet: | Enables the cluster for a feature set. A feature set is a collection of OpenShift Container Platform features that are not enabled by default. For more information about enabling a feature set during installation, see "Enabling features using feature gates". |
String. The name of the feature set to enable, such as |
controlPlane: | The configuration for the machines that comprise the control plane. |
Array of |
controlPlane: architecture: |
Determines the instruction set architecture of the machines in the pool. Currently, clusters with varied architectures are not supported. All pools must specify the same architecture. Valid values are | String |
controlPlane: hyperthreading: |
Whether to enable or disable simultaneous multithreading, or Important If you disable simultaneous multithreading, ensure that your capacity planning accounts for the dramatically decreased machine performance. |
|
controlPlane: name: |
Required if you use |
|
controlPlane: platform: |
Required if you use |
|
controlPlane: replicas: | The number of control plane machines to provision. |
Supported values are |
credentialsMode: | The Cloud Credential Operator (CCO) mode. If no mode is specified, the CCO dynamically tries to determine the capabilities of the provided credentials, with a preference for mint mode on the platforms where multiple modes are supported. Note Not all CCO modes are supported for all cloud providers. For more information about CCO modes, see the "Managing cloud provider credentials" entry in the Authentication and authorization content. |
|
fips: |
Enable or disable FIPS mode. The default is Important To enable FIPS mode for your cluster, you must run the installation program from a Red Hat Enterprise Linux (RHEL) computer configured to operate in FIPS mode. For more information about configuring FIPS mode on RHEL, see Switching RHEL to FIPS mode. When running Red Hat Enterprise Linux (RHEL) or Red Hat Enterprise Linux CoreOS (RHCOS) booted in FIPS mode, OpenShift Container Platform core components use the RHEL cryptographic libraries that have been submitted to NIST for FIPS 140-2/140-3 Validation on only the x86_64, ppc64le, and s390x architectures. Note If you are using Azure File storage, you cannot enable FIPS mode. |
|
imageContentSources: | Sources and repositories for the release-image content. |
Array of objects. Includes a |
imageContentSources: source: |
Required if you use | String |
imageContentSources: mirrors: | Specify one or more repositories that may also contain the same images. | Array of strings |
publish: | How to publish or expose the user-facing endpoints of your cluster, such as the Kubernetes API, OpenShift routes. |
|
sshKey: | The SSH key to authenticate access to your cluster machines. Note
For production OpenShift Container Platform clusters on which you want to perform installation debugging or disaster recovery, specify an SSH key that your |
For example, |
+
If you are installing on GCP into a shared virtual private cloud (VPC), credentialsMode
must be set to Passthrough
or Manual
.
+
Setting this parameter to Manual
enables alternatives to storing administrator-level secrets in the kube-system
project, which require additional configuration steps. For more information, see "Alternatives to storing administrator-level secrets in the kube-system project".
14.1.4. Additional Google Cloud Platform (GCP) configuration parameters
Additional GCP configuration parameters are described in the following table:
Parameter | Description | Values |
---|---|---|
controlPlane: platform: gcp: osImage: project: | Optional. By default, the installation program downloads and installs the Red Hat Enterprise Linux CoreOS (RHCOS) image that is used to boot control plane machines. You can override the default behavior by specifying the location of a custom RHCOS image that the installation program is to use for control plane machines only. | String. The name of GCP project where the image is located. |
controlPlane: platform: gcp: osImage: name: |
The name of the custom RHCOS image that the installation program is to use to boot control plane machines. If you use | String. The name of the RHCOS image. |
compute: platform: gcp: osImage: project: | Optional. By default, the installation program downloads and installs the RHCOS image that is used to boot compute machines. You can override the default behavior by specifying the location of a custom RHCOS image that the installation program is to use for compute machines only. | String. The name of GCP project where the image is located. |
compute: platform: gcp: osImage: name: |
The name of the custom RHCOS image that the installation program is to use to boot compute machines. If you use | String. The name of the RHCOS image. |
compute: platform: gcp: serviceAccount: | Specifies the email address of a GCP service account to be used during installations. This service account will be used to provision compute machines. | String. The email address of the service account. |
platform: gcp: network: |
The name of the existing Virtual Private Cloud (VPC) where you want to deploy your cluster. If you want to deploy your cluster into a shared VPC, you must set | String. |
platform: gcp: networkProjectID: | Optional. The name of the GCP project that contains the shared VPC where you want to deploy your cluster. | String. |
platform: gcp: projectID: | The name of the GCP project where the installation program installs the cluster. | String. |
platform: gcp: region: | The name of the GCP region that hosts your cluster. |
Any valid region name, such as |
platform: gcp: controlPlaneSubnet: | The name of the existing subnet where you want to deploy your control plane machines. | The subnet name. |
platform: gcp: computeSubnet: | The name of the existing subnet where you want to deploy your compute machines. | The subnet name. |
platform: gcp: defaultMachinePlatform: zones: | The availability zones where the installation program creates machines. |
A list of valid GCP availability zones, such as Important When running your cluster on GCP 64-bit ARM infrastructures, ensure that you use a zone where Ampere Altra Arm CPU’s are available. You can find which zones are compatible with 64-bit ARM processors in the "GCP availability zones" link. |
platform: gcp: defaultMachinePlatform: osDisk: diskSizeGB: | The size of the disk in gigabytes (GB). | Any size between 16 GB and 65536 GB. |
platform: gcp: defaultMachinePlatform: osDisk: diskType: | The GCP disk type. |
The default disk type for all machines. Valid values are |
platform: gcp: defaultMachinePlatform: osImage: project: | Optional. By default, the installation program downloads and installs the RHCOS image that is used to boot control plane and compute machines. You can override the default behavior by specifying the location of a custom RHCOS image that the installation program is to use for both types of machines. | String. The name of GCP project where the image is located. |
platform: gcp: defaultMachinePlatform: osImage: name: |
The name of the custom RHCOS image that the installation program is to use to boot control plane and compute machines. If you use | String. The name of the RHCOS image. |
platform: gcp: defaultMachinePlatform: tags: | Optional. Additional network tags to add to the control plane and compute machines. |
One or more strings, for example |
platform: gcp: defaultMachinePlatform: type: | The GCP machine type for control plane and compute machines. |
The GCP machine type, for example |
platform: gcp: defaultMachinePlatform: osDisk: encryptionKey: kmsKey: name: | The name of the customer managed encryption key to be used for machine disk encryption. | The encryption key name. |
platform: gcp: defaultMachinePlatform: osDisk: encryptionKey: kmsKey: keyRing: | The name of the Key Management Service (KMS) key ring to which the KMS key belongs. | The KMS key ring name. |
platform: gcp: defaultMachinePlatform: osDisk: encryptionKey: kmsKey: location: | The GCP location in which the KMS key ring exists. | The GCP location. |
platform: gcp: defaultMachinePlatform: osDisk: encryptionKey: kmsKey: projectID: |
The ID of the project in which the KMS key ring exists. This value defaults to the value of the | The GCP project ID. |
platform: gcp: defaultMachinePlatform: osDisk: encryptionKey: kmsKeyServiceAccount: | The GCP service account used for the encryption request for control plane and compute machines. If absent, the Compute Engine default service account is used. For more information about GCP service accounts, see Google’s documentation on service accounts. |
The GCP service account email, for example |
platform: gcp: defaultMachinePlatform: secureBoot: | Whether to enable Shielded VM secure boot for all machines in the cluster. Shielded VMs have additional security protocols such as secure boot, firmware and integrity monitoring, and rootkit protection. For more information on Shielded VMs, see Google’s documentation on Shielded VMs. |
|
platform: gcp: defaultMachinePlatform: confidentialCompute: | Whether to use Confidential VMs for all machines in the cluster. Confidential VMs provide encryption for data during processing. For more information on Confidential computing, see Google’s documentation on Confidential computing. |
|
platform: gcp: defaultMachinePlatform: onHostMaintenance: |
Specifies the behavior of all VMs during a host maintenance event, such as a software or hardware update. For Confidential VMs, this parameter must be set to |
|
controlPlane: platform: gcp: osDisk: encryptionKey: kmsKey: name: | The name of the customer managed encryption key to be used for control plane machine disk encryption. | The encryption key name. |
controlPlane: platform: gcp: osDisk: encryptionKey: kmsKey: keyRing: | For control plane machines, the name of the KMS key ring to which the KMS key belongs. | The KMS key ring name. |
controlPlane: platform: gcp: osDisk: encryptionKey: kmsKey: location: | For control plane machines, the GCP location in which the key ring exists. For more information about KMS locations, see Google’s documentation on Cloud KMS locations. | The GCP location for the key ring. |
controlPlane: platform: gcp: osDisk: encryptionKey: kmsKey: projectID: | For control plane machines, the ID of the project in which the KMS key ring exists. This value defaults to the VM project ID if not set. | The GCP project ID. |
controlPlane: platform: gcp: osDisk: encryptionKey: kmsKeyServiceAccount: | The GCP service account used for the encryption request for control plane machines. If absent, the Compute Engine default service account is used. For more information about GCP service accounts, see Google’s documentation on service accounts. |
The GCP service account email, for example |
controlPlane: platform: gcp: osDisk: diskSizeGB: | The size of the disk in gigabytes (GB). This value applies to control plane machines. | Any integer between 16 and 65536. |
controlPlane: platform: gcp: osDisk: diskType: | The GCP disk type for control plane machines. |
Valid values are |
controlPlane: platform: gcp: tags: |
Optional. Additional network tags to add to the control plane machines. If set, this parameter overrides the |
One or more strings, for example |
controlPlane: platform: gcp: type: |
The GCP machine type for control plane machines. If set, this parameter overrides the |
The GCP machine type, for example |
controlPlane: platform: gcp: zones: | The availability zones where the installation program creates control plane machines. |
A list of valid GCP availability zones, such as Important When running your cluster on GCP 64-bit ARM infrastructures, ensure that you use a zone where Ampere Altra Arm CPU’s are available. You can find which zones are compatible with 64-bit ARM processors in the "GCP availability zones" link. |
controlPlane: platform: gcp: secureBoot: | Whether to enable Shielded VM secure boot for control plane machines. Shielded VMs have additional security protocols such as secure boot, firmware and integrity monitoring, and rootkit protection. For more information on Shielded VMs, see Google’s documentation on Shielded VMs. |
|
controlPlane: platform: gcp: confidentialCompute: | Whether to enable Confidential VMs for control plane machines. Confidential VMs provide encryption for data while it is being processed. For more information on Confidential VMs, see Google’s documentation on Confidential Computing. |
|
controlPlane: platform: gcp: onHostMaintenance: |
Specifies the behavior of control plane VMs during a host maintenance event, such as a software or hardware update. For Confidential VMs, this parameter must be set to |
|
controlPlane: platform: gcp: serviceAccount: | Specifies the email address of a GCP service account to be used during installations. This service account will be used to provision control plane machines. Important
In the case of shared VPC installations, when the service account is not provided, the installer service account must have the | String. The email address of the service account. |
compute: platform: gcp: osDisk: encryptionKey: kmsKey: name: | The name of the customer managed encryption key to be used for compute machine disk encryption. | The encryption key name. |
compute: platform: gcp: osDisk: encryptionKey: kmsKey: keyRing: | For compute machines, the name of the KMS key ring to which the KMS key belongs. | The KMS key ring name. |
compute: platform: gcp: osDisk: encryptionKey: kmsKey: location: | For compute machines, the GCP location in which the key ring exists. For more information about KMS locations, see Google’s documentation on Cloud KMS locations. | The GCP location for the key ring. |
compute: platform: gcp: osDisk: encryptionKey: kmsKey: projectID: | For compute machines, the ID of the project in which the KMS key ring exists. This value defaults to the VM project ID if not set. | The GCP project ID. |
compute: platform: gcp: osDisk: encryptionKey: kmsKeyServiceAccount: | The GCP service account used for the encryption request for compute machines. If this value is not set, the Compute Engine default service account is used. For more information about GCP service accounts, see Google’s documentation on service accounts. |
The GCP service account email, for example |
compute: platform: gcp: osDisk: diskSizeGB: | The size of the disk in gigabytes (GB). This value applies to compute machines. | Any integer between 16 and 65536. |
compute: platform: gcp: osDisk: diskType: | The GCP disk type for compute machines. |
Valid values are |
compute: platform: gcp: tags: |
Optional. Additional network tags to add to the compute machines. If set, this parameter overrides the |
One or more strings, for example |
compute: platform: gcp: type: |
The GCP machine type for compute machines. If set, this parameter overrides the |
The GCP machine type, for example |
compute: platform: gcp: zones: | The availability zones where the installation program creates compute machines. |
A list of valid GCP availability zones, such as Important When running your cluster on GCP 64-bit ARM infrastructures, ensure that you use a zone where Ampere Altra Arm CPU’s are available. You can find which zones are compatible with 64-bit ARM processors in the "GCP availability zones" link. |
compute: platform: gcp: secureBoot: | Whether to enable Shielded VM secure boot for compute machines. Shielded VMs have additional security protocols such as secure boot, firmware and integrity monitoring, and rootkit protection. For more information on Shielded VMs, see Google’s documentation on Shielded VMs. |
|
compute: platform: gcp: confidentialCompute: | Whether to enable Confidential VMs for compute machines. Confidential VMs provide encryption for data while it is being processed. For more information on Confidential VMs, see Google’s documentation on Confidential Computing. |
|
compute: platform: gcp: onHostMaintenance: |
Specifies the behavior of compute VMs during a host maintenance event, such as a software or hardware update. For Confidential VMs, this parameter must be set to |
|