# GKE Schema

V3 Cluster configuration for GKE clusters

|     |     |     |
| --- | --- | --- |
| [apiVersion](https://docs.rafay.co/clusters/gke/gkev3_schema/#apiVersion):<br> infra.k8smgmt.io/v3 |  | string |
| [kind](https://docs.rafay.co/clusters/gke/gkev3_schema/#kind):<br> Cluster |  | string |
| [name](https://docs.rafay.co/clusters/gke/gkev3_schema/#metadata-name): | Cluster name | string |
| [description](https://docs.rafay.co/clusters/gke/gkev3_schema/#metadata-description): | Cluster Description | string |
| [project](https://docs.rafay.co/clusters/gke/gkev3_schema/#metadata-project): | under which the cluster is created | string |
| [labels](https://docs.rafay.co/clusters/gke/gkev3_schema/#metadata-labels):<br> {} | Cluster labels | object |
| [annotations](https://docs.rafay.co/clusters/gke/gkev3_schema/#metadata-annotations):<br> {} | Cluster annotations | object |
| [name](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-blueprint-name): | Blueprint associated with the cluster | string |
| [version](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-blueprint-version): | Blueprint version associated with the cluster | string |
| [cloudCredentials](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-cloudCredentials): | Cloud credentials provider used to create and manage the cluster | string |
| [enabled](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-sharing-enabled):<br> false | Enable sharing for this resource. | boolean |
| -<br> [name](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-sharing-projects-name): | The name of the project to share the resource. | string |
| [type](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-type): | Cluster Type Gke | string |
| [gcpProject](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-gcpProject): | GCP Project name | string |
| [type](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-location-type): | Cluster location. Supported values: `"zonal"` or `"regional"` | string |
| [enabled](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-location-defaultNodeLocations-enabled):<br> false | Enable providing default node locations | boolean |
| [zones](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-location-defaultNodeLocations-zones): | Zone in the region where bootstrap VM is created for cluster provisioning. | string[] |
| [controlPlaneVersion](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-controlPlaneVersion): | Control plane kubernetes version | string |
| [name](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-network-name): | Network that the Kubernetes cluster is in determines which other Compute Engine resources it is able to communicate with. Network is permanent | string |
| [subnetName](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-network-subnetName): | Subnetwork to which the Kubernetes cluster will belong. When VPC native is enabled, the subnetwork must contain at least two secondary ranges which are not used by other Kubernetes clusters. Subnet is permanent. | string |
| [type](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-network-access-type): | Choose the type of network you want to allow to access your cluster's workloads. Supported values: `"private"` or `"public"` | string |
| [enableVPCNativetraffic](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-network-enableVPCNativetraffic):<br> false | This feature uses alias IP and provides a more secure integration with Google Cloud Platform services | boolean |
| [maxPodsPerNode](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-network-maxPodsPerNode): | This value is used to optimize the partitioning of cluster's IP address range to sub-ranges at node level | integer |
| [podAddressRange](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-network-podAddressRange): | All pods in the cluster are assigned an IP address from this range. Enter a range (in CIDR notation) within a network range, a mask, or leave this field blank to use a default range | string |
| [serviceAddressRange](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-network-serviceAddressRange): | Cluster services will be assigned an IP address from this IP address range. Enter a range (in CIDR notation) within a network range, a mask, or leave this field blank to use a default range | string |
| [enabled](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-network-controlPlaneAuthorizedNetwork-enabled):<br> false | Enable Control Plane Authorized Network. Configure the Networks now or later. | boolean |
| -<br> [name](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-network-controlPlaneAuthorizedNetwork-authorizedNetwork-name): | Name of the Authorized Network Example: Corporate Office | string |
| -<br> [cidr](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-network-controlPlaneAuthorizedNetwork-authorizedNetwork-cidr): | CIDR Example: 198.51.100.0/24 | string |
| [podSecondaryRangeName](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-network-podSecondaryRangeName): | Cluster pods are assigned an IP from the selected node subnet's secondary CIDR address range | string |
| [serviceSecondaryRangeName](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-network-serviceSecondaryRangeName): | Cluster services are assigned an IP from the selected node subnetes secondary CIDR address range | string |
| [enableWorkloadIdentity](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-security-enableWorkloadIdentity):<br> false | Workload Identity lets you connect securely to Google APIs from Kubernetes Engine workloads. | boolean |
| [enableGoogleGroupsForRbac](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-security-enableGoogleGroupsForRbac):<br> false | Google Groups for RBAC allows you to grant roles to all members of a Google Workspace group | boolean |
| [securityGroup](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-security-securityGroup): | Provide the security groups here | string |
| [enableLegacyAuthorization](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-security-enableLegacyAuthorization):<br> false | Enable legacy authorization to support in-cluster permissions for existing clusters or workflows. Prevents full RBAC support. | boolean |
| [issueClientCertificate](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-security-issueClientCertificate):<br> false | Clients use this base64-encoded public certificate to authenticate to the cluster endpoint. Certificates don’t rotate automatically and are difficult to revoke. | boolean |
| [enableCloudLogging](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-features-enableCloudLogging):<br> false | Logging collects logs emitted by your applications and by GKE infrastructure | boolean |
| [cloudLoggingComponents](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-features-cloudLoggingComponents): | List of components for cloud logging. Supported values: `"SYSTEM_COMPONENTS"` and `"WORKLOADS"` | string[] |
| [enableCloudMonitoring](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-features-enableCloudMonitoring):<br> false | Monitoring collects metrics emitted by your applications and by GKE infrastructure | boolean |
| [cloudMonitoringComponents](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-features-cloudMonitoringComponents): | List of components for cloud monitoring. Supported value: `"SYSTEM_COMPONENTS"` | string[] |
| [enableManagedServicePrometheus](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-features-enableManagedServicePrometheus):<br> false | This option deploys managed collectors for Prometheus metrics within this cluster. These collectors must be configured using PodMonitoring resources. To enable Managed Service for Prometheus here, you'll need. Cluster version of 1.21.4-gke.300 or greater | boolean |
| [enableApplicationManagerBeta](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-features-enableApplicationManagerBeta):<br> false | Application Manager is a GKE controller for managing the lifecycle of applications. It enables application delivery and updates following Kubernetes and GitOps best practices | boolean |
| [enableBackupForGke](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-features-enableBackupForGke):<br> false | Backup for GKE allows you to back up and restore workloads. There is no cost for enabling this feature, but you are charged for backups based on the size of the data and the number of pods you protect | boolean |
| [enableComputeEnginePersistentDiskCSIDriver](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-features-enableComputeEnginePersistentDiskCSIDriver):<br> false | Enable to automatically deploy and manage the Compute Engine Persistent Disk CSI Driver. This feature is an alternative to using the gcePersistentDisk in-tree volume plugin | boolean |
| [enableFilestoreCSIDriver](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-features-enableFilestoreCSIDriver):<br> false | Enable to automatically deploy and manage the Filestore CSI Driver | boolean |
| [enableImageStreaming](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-features-enableImageStreaming):<br> false | Image streaming allows your workloads to initialize without waiting for the entire image to download | boolean |
| -<br> [name](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-name): | Node pool names must start with a lowercase letter followed by up to 39 lowercase letters, numbers, or hyphens. They can't end with a hyphen. You cannot change the node pool's name once it's created | string |
| -<br> [nodeVersion](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-nodeVersion): | Specify Node k8s version | string |
| -<br> [size](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-size): | Pod address range limits the maximum size of the cluster | integer |
| [enabled](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-nodeLocations-enabled):<br> false | Enable providing node locations | boolean |
| [zones](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-nodeLocations-zones): | Additional node zones must be from the same region as the original zone. Kubernetes Engine allocates the same resource footprint for each zone. The Node pool setting overrides the defaults set in Cluster basics | string[] |
| [minNodes](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-autoScaling-minNodes): | Minimum number of nodes (per zone) | integer |
| [maxNodes](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-autoScaling-maxNodes): | Maximum number of nodes (per zone) | integer |
| [imageType](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-machineConfig-imageType): | Choose which operating system image you want to run on each node of this cluster | string |
| [machineType](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-machineConfig-machineType): | Choose the machine type that will best fit the resource needs of your cluster | string |
| [bootDiskType](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-machineConfig-bootDiskType): | Select Boot disk type. Storage space is less expensive for a standard persistent disk. An SSD persistent disk is better for random IOPS or for streaming throughput with low latency | string |
| [bootDiskSize](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-machineConfig-bootDiskSize): | Select Boot disk size. Boot disk size is permanent | integer |
| [maxPodsPerNode](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-networking-maxPodsPerNode): | This value is used to optimize the partitioning of cluster's IP address range to sub-ranges at node level | integer |
| [networkTags](https://docs.rafay.co/clusters/gke/ggev3_schema/#spec-config-nodePools-networking-networkTags): | This value is used to optimize the partitioning of cluster's IP address range to sub-ranges at node level | string[] |
| [enableIntegrityMonitoring](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-security-enableIntegrityMonitoring):<br> false | Integrity monitoring lets you monitor and verify the runtime boot integrity of your shielded nodes using Cloud Monitoring | boolean |
| [enableSecureBoot](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-security-enableSecureBoot):<br> false | Integrity monitoring lets you monitor and verify the runtime boot integrity of your shielded nodes using Cloud Monitoring | boolean |
| -<br> [key](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-metadata-kubernetesLabels-key): | Key for this kubernetes label | string |
| -<br> [value](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-metadata-kubernetesLabels-value): | Value for this kubernetes lable | string |
| -<br> [effect](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-metadata-nodeTaints-effect): | Available effects are NoSchedule, PreferNoSchedule, NoExecute | string |
| -<br> [key](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-metadata-nodeTaints-key): | Key for this Taint effect | string |
| -<br> [value](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-metadata-nodeTaints-value): | Value for this Taint effect | string |
| -<br> [key](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-metadata-gceInstanceMetadata-key): | Key for this kubernetes label | string |
| -<br> [value](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-metadata-gceInstanceMetadata-value): | Value for this kubernetes lable | string |
| [autoUpgrade](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-management-autoUpgrade):<br> false | Whether the nodes will be automatically upgraded | boolean |
| [strategy](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-nodePools-upgradeSettings-strategy): | Update strategy of the node pool. Supported values: `"SURGE"` or `"BLUE_GREEN"` | string |
| [preBootstrapCommands](https://docs.rafay.co/clusters/gke/gkev3_schema/#spec-config-preBootstrapCommands): | PreBootstrapCommands is a list of (one of more) commands that the user wants run on their target cluster.These commands will be run every time a node comes up, both during cluster creation and cluster/nodepool scale. Example: Node restart and node creation. | string[] |
