From 380bcc932099faf4a50675379857945f0c568b3c Mon Sep 17 00:00:00 2001
From: Amanuel Engeda <74629455+engedaam@users.noreply.github.com>
Date: Fri, 10 Jan 2025 14:26:31 -0800
Subject: [PATCH] chore: Expose cluster state to allow provider to view the
 state of the cluster (#1909)

---
 kwok/main.go                   | 3 +++
 pkg/controllers/controllers.go | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/kwok/main.go b/kwok/main.go
index c276988830..f99077ccf9 100644
--- a/kwok/main.go
+++ b/kwok/main.go
@@ -21,6 +21,7 @@ import (
 
 	kwok "sigs.k8s.io/karpenter/kwok/cloudprovider"
 	"sigs.k8s.io/karpenter/pkg/controllers"
+	"sigs.k8s.io/karpenter/pkg/controllers/state"
 	"sigs.k8s.io/karpenter/pkg/operator"
 )
 
@@ -32,6 +33,7 @@ func main() {
 	}
 
 	cloudProvider := kwok.NewCloudProvider(ctx, op.GetClient(), instanceTypes)
+	clusterState := state.NewCluster(op.Clock, op.GetClient(), cloudProvider)
 	op.
 		WithControllers(ctx, controllers.NewControllers(
 			ctx,
@@ -40,5 +42,6 @@ func main() {
 			op.GetClient(),
 			op.EventRecorder,
 			cloudProvider,
+			clusterState,
 		)...).Start(ctx)
 }
diff --git a/pkg/controllers/controllers.go b/pkg/controllers/controllers.go
index af637c797a..682bf172fd 100644
--- a/pkg/controllers/controllers.go
+++ b/pkg/controllers/controllers.go
@@ -65,8 +65,8 @@ func NewControllers(
 	kubeClient client.Client,
 	recorder events.Recorder,
 	cloudProvider cloudprovider.CloudProvider,
+	cluster *state.Cluster,
 ) []controller.Controller {
-	cluster := state.NewCluster(clock, kubeClient, cloudProvider)
 	p := provisioning.NewProvisioner(kubeClient, recorder, cloudProvider, cluster, clock)
 	evictionQueue := terminator.NewQueue(kubeClient, recorder)
 	disruptionQueue := orchestration.NewQueue(kubeClient, recorder, cluster, clock, p)