cloud/shepherd/equinix: split out control loop logic

This is in preparation for implementing the recoverer/rebooter inside
the shepherd.

In the future this will likely be split away from from the shepherd and
end up as a generic bmdb library. But let's first wait for concrete
usages outside of the shepherd component.

Change-Id: I69b9a2e913dcefa2c6558e271b6853285c6120b3
Reviewed-on: https://review.monogon.dev/c/monogon/+/1559
Tested-by: Jenkins CI
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
diff --git a/cloud/shepherd/equinix/manager/server/main.go b/cloud/shepherd/equinix/manager/server/main.go
index 550eea3..e9b9289 100644
--- a/cloud/shepherd/equinix/manager/server/main.go
+++ b/cloud/shepherd/equinix/manager/server/main.go
@@ -22,7 +22,6 @@
 	BMDB      bmdb.BMDB
 
 	SharedConfig      manager.SharedConfig
-	AgentConfig       manager.AgentConfig
 	ProvisionerConfig manager.ProvisionerConfig
 	InitializerConfig manager.InitializerConfig
 	WebugConfig       webug.Config
@@ -45,7 +44,6 @@
 	c.BMDB.Database.RegisterFlags("bmdb")
 
 	c.SharedConfig.RegisterFlags("")
-	c.AgentConfig.RegisterFlags()
 	c.ProvisionerConfig.RegisterFlags()
 	c.InitializerConfig.RegisterFlags()
 	c.WebugConfig.RegisterFlags()
@@ -84,7 +82,7 @@
 		klog.Exitf("%v", err)
 	}
 
-	initializer, err := c.InitializerConfig.New(api, &c.SharedConfig, &c.AgentConfig)
+	initializer, err := manager.NewInitializer(api, c.InitializerConfig, &c.SharedConfig)
 	if err != nil {
 		klog.Exitf("%v", err)
 	}
@@ -101,7 +99,7 @@
 		}
 	}()
 	go func() {
-		err = initializer.Run(ctx, conn)
+		err = manager.RunControlLoop(ctx, conn, initializer)
 		if err != nil {
 			klog.Exit(err)
 		}