@@ -260,6 +260,36 @@ var _ = Describe("Workload cluster creation", func() {
260260		})
261261	})
262262
263+ 	Context ("Creating a control-plane cluster with three control plane nodes and an internal load balancer" , func () {
264+ 		It ("Should create a cluster with 3 control-plane and 1 worker node with an internal load balancer" , func () {
265+ 			// This test requires a GKE bootstrap cluster. 
266+ 			if  bootstrapGKEClusterProxy  ==  nil  {
267+ 				Skip ("test requires a GKE bootstrap cluster, GKE_BOOTSTRAP_KUBECONFIG is not set" )
268+ 			}
269+ 
270+ 			clusterName  :=  fmt .Sprintf ("%s-internal-lb" , clusterNamePrefix )
271+ 			By ("Creating a cluster with internal load balancer from GKE bootstrap cluster" )
272+ 			clusterctl .ApplyClusterTemplateAndWait (ctx , clusterctl.ApplyClusterTemplateAndWaitInput {
273+ 				ClusterProxy : bootstrapGKEClusterProxy ,
274+ 				ConfigCluster : clusterctl.ConfigClusterInput {
275+ 					LogFolder :                gkeClusterctlLogFolder ,
276+ 					ClusterctlConfigPath :     clusterctlConfigPath ,
277+ 					KubeconfigPath :           bootstrapGKEClusterProxy .GetKubeconfigPath (),
278+ 					InfrastructureProvider :   clusterctl .DefaultInfrastructureProvider ,
279+ 					Flavor :                   "ci-with-internal-lb" ,
280+ 					Namespace :                gkeNamespace .Name ,
281+ 					ClusterName :              clusterName ,
282+ 					KubernetesVersion :        e2eConfig .MustGetVariable (KubernetesVersion ),
283+ 					ControlPlaneMachineCount : ptr.To [int64 ](3 ),
284+ 					WorkerMachineCount :       ptr.To [int64 ](1 ),
285+ 				},
286+ 				WaitForClusterIntervals :      e2eConfig .GetIntervals (specName , "wait-cluster" ),
287+ 				WaitForControlPlaneIntervals : e2eConfig .GetIntervals (specName , "wait-control-plane" ),
288+ 				WaitForMachineDeployments :    e2eConfig .GetIntervals (specName , "wait-worker-nodes" ),
289+ 			}, result )
290+ 		})
291+ 	})
292+ 
263293	Context ("Creating a cluster using a cluster class" , func () {
264294		It ("Should create a cluster class and then a cluster based on it" , func () {
265295			clusterName  :=  fmt .Sprintf ("%s-topology" , clusterNamePrefix )
0 commit comments