You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Google Cloud GKE On-Premises VMware Terraform Module
This Terraform module deploys Google Kubernetes Engine (GKE) On-Premises clusters on VMware vSphere infrastructure, with support for multiple node pools, load balancing, and RBAC configuration.
Features
Creates and manages GKE on-prem clusters on VMware vSphere
Configurable control plane with optional V2 features
Supports multiple node pools with autoscaling capabilities
Flexible IP management for worker nodes using IP ranges
MetalLB integration for load balancing with customizable address pools
RBAC configuration with admin and gateway user management
Anti-affinity group and auto-repair configuration
IP range validation and automatic IP allocation from ranges
Collapsible Details: Inputs with complex types are wrapped in collapsible <details> blocks to reduce clutter while keeping the content easily accessible.
Ease of Maintenance: By using collapsible details, you can expand only the necessary sections for edits, reducing the likelihood of formatting errors.
Notes on Input Types
network_config
service_address_cidr_blocks:
Optional list of CIDR blocks for service addresses. Default: ["10.96.0.0/12"].
pod_address_cidr_blocks:
Optional list of CIDR blocks for pod addresses. Default: ["192.168.0.0/16"].
dns_servers:
List of DNS server IP addresses (required).
ntp_servers:
List of NTP server IP addresses (required).
vcenter_network:
The VMware vCenter network name (required).
control_plane_ips:
List of static IPs for control plane nodes (required).
worker_node_ip_ranges:
List of IP ranges for worker nodes in the format "x.x.x.y-x.x.x.z" (required).
netmask:
Netmask for the network (required).
gateway:
Gateway IP address for the network (required).
vcenter_config
resource_pool:
Full path to the vCenter resource pool (required).
folder:
Full path to the vCenter folder (required).
load_balancer_config
control_plane_vip:
Virtual IP for the control plane (required).
ingress_vip:
Virtual IP for ingress (required).
address_pools:
Map of address pool configurations (required). Each pool includes:
manual_assign:
Optional boolean to manually assign IPs. Default: false.
addresses:
List of IP addresses or ranges (required).
avoid_buggy_ips:
Optional boolean to avoid buggy IPs. Default: true.
control_plane_node
cpus:
Number of CPUs for control plane nodes. Optional, Default: 4.
memory:
Memory in MB for control plane nodes. Optional, Default: 8192.
replicas:
Number of control plane node replicas. Optional, Default: 3.
node_pools_config
Map where each key is a node pool name and the value is an object containing:
cpus:
Number of CPUs. Optional, Default: 2.
memory_mb:
Memory in MB. Optional, Default: 4096.
replicas:
Number of replicas. Optional, Default: 1.
min_replicas:
Minimum number of replicas for autoscaling. Optional, Default: 1.
max_replicas:
Maximum number of replicas for autoscaling. Optional, Default: 3.
boot_disk_size_gb:
Boot disk size in GB. Optional, Default: 30.
image_type:
OS image type for nodes. Optional, Default: "cos_cgv2". Allowed values: "cos_cgv2", "cos", "ubuntu_cgv2", "ubuntu", "ubuntu_containerd", "windows".