diff --git a/cloud/shepherd/equinix/manager/initializer.go b/cloud/shepherd/equinix/manager/initializer.go
index 2f1721b..272df20 100644
--- a/cloud/shepherd/equinix/manager/initializer.go
+++ b/cloud/shepherd/equinix/manager/initializer.go
@@ -20,6 +20,7 @@
 	"k8s.io/klog/v2"
 
 	apb "source.monogon.dev/cloud/agent/api"
+
 	"source.monogon.dev/cloud/bmaas/bmdb"
 	"source.monogon.dev/cloud/bmaas/bmdb/metrics"
 	"source.monogon.dev/cloud/bmaas/bmdb/model"
@@ -162,7 +163,10 @@
 }
 
 func (c *Initializer) getMachines(ctx context.Context, q *model.Queries, limit int32) ([]model.MachineProvided, error) {
-	return q.GetMachinesForAgentStart(ctx, limit)
+	return q.GetMachinesForAgentStart(ctx, model.GetMachinesForAgentStartParams{
+		Limit:    limit,
+		Provider: model.ProviderEquinix,
+	})
 }
 
 func (c *Initializer) processMachine(ctx context.Context, t *task) error {
diff --git a/cloud/shepherd/equinix/manager/initializer_test.go b/cloud/shepherd/equinix/manager/initializer_test.go
index 20c2f16..82e1f90 100644
--- a/cloud/shepherd/equinix/manager/initializer_test.go
+++ b/cloud/shepherd/equinix/manager/initializer_test.go
@@ -14,6 +14,7 @@
 	"google.golang.org/protobuf/proto"
 
 	apb "source.monogon.dev/cloud/agent/api"
+
 	"source.monogon.dev/cloud/bmaas/bmdb"
 	"source.monogon.dev/cloud/bmaas/bmdb/model"
 	"source.monogon.dev/cloud/lib/component"
@@ -193,7 +194,10 @@
 		var machines []model.MachineProvided
 		err = sess.Transact(ctx, func(q *model.Queries) error {
 			var err error
-			machines, err = q.GetMachinesForAgentStart(ctx, 100)
+			machines, err = q.GetMachinesForAgentStart(ctx, model.GetMachinesForAgentStartParams{
+				Limit:    100,
+				Provider: model.ProviderEquinix,
+			})
 			return err
 		})
 		if err != nil {
diff --git a/cloud/shepherd/equinix/manager/recoverer.go b/cloud/shepherd/equinix/manager/recoverer.go
index 72b5588..3779b02 100644
--- a/cloud/shepherd/equinix/manager/recoverer.go
+++ b/cloud/shepherd/equinix/manager/recoverer.go
@@ -55,7 +55,10 @@
 }
 
 func (r *Recoverer) getMachines(ctx context.Context, q *model.Queries, limit int32) ([]model.MachineProvided, error) {
-	return q.GetMachineForAgentRecovery(ctx, limit)
+	return q.GetMachineForAgentRecovery(ctx, model.GetMachineForAgentRecoveryParams{
+		Limit:    limit,
+		Provider: model.ProviderEquinix,
+	})
 }
 
 func (r *Recoverer) processMachine(ctx context.Context, t *task) error {
diff --git a/cloud/shepherd/equinix/manager/recoverer_test.go b/cloud/shepherd/equinix/manager/recoverer_test.go
index 8583efd..63e244e 100644
--- a/cloud/shepherd/equinix/manager/recoverer_test.go
+++ b/cloud/shepherd/equinix/manager/recoverer_test.go
@@ -121,7 +121,10 @@
 		var machines []model.MachineProvided
 		err = sess.Transact(ctx, func(q *model.Queries) error {
 			var err error
-			machines, err = q.GetMachineForAgentRecovery(ctx, 100)
+			machines, err = q.GetMachineForAgentRecovery(ctx, model.GetMachineForAgentRecoveryParams{
+				Limit:    100,
+				Provider: model.ProviderEquinix,
+			})
 			return err
 		})
 		if err != nil {
@@ -144,7 +147,10 @@
 	var machines []model.MachineProvided
 	err = sess.Transact(ctx, func(q *model.Queries) error {
 		var err error
-		machines, err = q.GetMachinesForAgentStart(ctx, 100)
+		machines, err = q.GetMachinesForAgentStart(ctx, model.GetMachinesForAgentStartParams{
+			Limit:    100,
+			Provider: model.ProviderEquinix,
+		})
 		return err
 	})
 	if err != nil {
