Skip to content

Commit e298f7c

Browse files
fix: Fix unintentionally importing envtest when running NewTestingQueue (#1660)
1 parent 14cd098 commit e298f7c

File tree

3 files changed

+41
-26
lines changed

3 files changed

+41
-26
lines changed

pkg/controllers/disruption/orchestration/queue.go

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ import (
4545
"sigs.k8s.io/karpenter/pkg/events"
4646
"sigs.k8s.io/karpenter/pkg/metrics"
4747
"sigs.k8s.io/karpenter/pkg/operator/injection"
48-
"sigs.k8s.io/karpenter/pkg/test"
4948
)
5049

5150
const (
@@ -141,23 +140,6 @@ func NewQueue(kubeClient client.Client, recorder events.Recorder, cluster *state
141140
return queue
142141
}
143142

144-
func NewTestingQueue(kubeClient client.Client, recorder events.Recorder, cluster *state.Cluster, clock clock.Clock,
145-
provisioner *provisioning.Provisioner) *Queue {
146-
147-
queue := &Queue{
148-
// nolint:staticcheck
149-
// We need to implement a deprecated interface since Command currently doesn't implement "comparable"
150-
RateLimitingInterface: test.NewRateLimitingInterface(workqueue.QueueConfig{Name: "disruption.workqueue"}),
151-
providerIDToCommand: map[string]*Command{},
152-
kubeClient: kubeClient,
153-
recorder: recorder,
154-
cluster: cluster,
155-
clock: clock,
156-
provisioner: provisioner,
157-
}
158-
return queue
159-
}
160-
161143
// NewCommand creates a command key and adds in initial data for the orchestration queue.
162144
func NewCommand(replacements []string, candidates []*state.StateNode, id types.UID, reason v1.DisruptionReason, consolidationType string) *Command {
163145
return &Command{

pkg/controllers/disruption/orchestration/suite_test.go

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,15 @@ import (
2121
"testing"
2222
"time"
2323

24+
"github.com/samber/lo"
25+
"k8s.io/client-go/util/workqueue"
26+
27+
"sigs.k8s.io/karpenter/pkg/events"
28+
29+
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
30+
2431
. "github.com/onsi/ginkgo/v2"
2532
. "github.com/onsi/gomega"
26-
"github.com/samber/lo"
2733
corev1 "k8s.io/api/core/v1"
2834
"k8s.io/apimachinery/pkg/api/resource"
2935
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -41,8 +47,9 @@ import (
4147
"sigs.k8s.io/karpenter/pkg/operator/options"
4248
"sigs.k8s.io/karpenter/pkg/test"
4349
. "sigs.k8s.io/karpenter/pkg/test/expectations"
44-
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
4550
. "sigs.k8s.io/karpenter/pkg/utils/testing"
51+
52+
clockiface "k8s.io/utils/clock"
4653
)
4754

4855
var ctx context.Context
@@ -79,15 +86,15 @@ var _ = BeforeSuite(func() {
7986
nodeClaimStateController = informer.NewNodeClaimController(env.Client, cluster)
8087
recorder = test.NewEventRecorder()
8188
prov = provisioning.NewProvisioner(env.Client, recorder, cloudProvider, cluster)
82-
queue = orchestration.NewTestingQueue(env.Client, recorder, cluster, fakeClock, prov)
89+
queue = NewTestingQueue(env.Client, recorder, cluster, fakeClock, prov)
8390
})
8491

8592
var _ = AfterSuite(func() {
8693
Expect(env.Stop()).To(Succeed(), "Failed to stop environment")
8794
})
8895

8996
var _ = BeforeEach(func() {
90-
*queue = lo.FromPtr(orchestration.NewTestingQueue(env.Client, recorder, cluster, fakeClock, prov))
97+
*queue = lo.FromPtr(NewTestingQueue(env.Client, recorder, cluster, fakeClock, prov))
9198
recorder.Reset() // Reset the events that we captured during the run
9299
cluster.Reset()
93100
cloudProvider.Reset()
@@ -341,3 +348,13 @@ var _ = Describe("Queue", func() {
341348

342349
})
343350
})
351+
352+
func NewTestingQueue(kubeClient client.Client, recorder events.Recorder, cluster *state.Cluster, clock clockiface.Clock,
353+
provisioner *provisioning.Provisioner) *orchestration.Queue {
354+
355+
q := orchestration.NewQueue(kubeClient, recorder, cluster, clock, provisioner)
356+
// nolint:staticcheck
357+
// We need to implement a deprecated interface since Command currently doesn't implement "comparable"
358+
q.RateLimitingInterface = test.NewRateLimitingInterface(workqueue.QueueConfig{Name: "disruption.workqueue"})
359+
return q
360+
}

pkg/controllers/disruption/suite_test.go

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@ import (
2424
"testing"
2525
"time"
2626

27+
"k8s.io/client-go/util/workqueue"
28+
clockiface "k8s.io/utils/clock"
29+
30+
"sigs.k8s.io/karpenter/pkg/events"
31+
"sigs.k8s.io/karpenter/pkg/metrics"
32+
33+
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
34+
2735
. "github.com/onsi/ginkgo/v2"
2836
. "github.com/onsi/gomega"
2937
"github.com/samber/lo"
@@ -44,12 +52,10 @@ import (
4452
"sigs.k8s.io/karpenter/pkg/controllers/provisioning"
4553
"sigs.k8s.io/karpenter/pkg/controllers/state"
4654
"sigs.k8s.io/karpenter/pkg/controllers/state/informer"
47-
"sigs.k8s.io/karpenter/pkg/metrics"
4855
"sigs.k8s.io/karpenter/pkg/operator/options"
4956
"sigs.k8s.io/karpenter/pkg/scheduling"
5057
"sigs.k8s.io/karpenter/pkg/test"
5158
. "sigs.k8s.io/karpenter/pkg/test/expectations"
52-
"sigs.k8s.io/karpenter/pkg/test/v1alpha1"
5359
disruptionutils "sigs.k8s.io/karpenter/pkg/utils/disruption"
5460
"sigs.k8s.io/karpenter/pkg/utils/pdb"
5561
. "sigs.k8s.io/karpenter/pkg/utils/testing"
@@ -91,7 +97,7 @@ var _ = BeforeSuite(func() {
9197
nodeClaimStateController = informer.NewNodeClaimController(env.Client, cluster)
9298
recorder = test.NewEventRecorder()
9399
prov = provisioning.NewProvisioner(env.Client, recorder, cloudProvider, cluster)
94-
queue = orchestration.NewTestingQueue(env.Client, recorder, cluster, fakeClock, prov)
100+
queue = NewTestingQueue(env.Client, recorder, cluster, fakeClock, prov)
95101
disruptionController = disruption.NewController(fakeClock, env.Client, prov, cloudProvider, recorder, cluster, queue)
96102
})
97103

@@ -111,7 +117,7 @@ var _ = BeforeEach(func() {
111117
}
112118
fakeClock.SetTime(time.Now())
113119
cluster.Reset()
114-
*queue = lo.FromPtr(orchestration.NewTestingQueue(env.Client, recorder, cluster, fakeClock, prov))
120+
*queue = lo.FromPtr(NewTestingQueue(env.Client, recorder, cluster, fakeClock, prov))
115121
cluster.MarkUnconsolidated()
116122

117123
// Reset Feature Flags to test defaults
@@ -2114,3 +2120,13 @@ func ExpectMakeNewNodeClaimsReady(ctx context.Context, c client.Client, wg *sync
21142120
}
21152121
}()
21162122
}
2123+
2124+
func NewTestingQueue(kubeClient client.Client, recorder events.Recorder, cluster *state.Cluster, clock clockiface.Clock,
2125+
provisioner *provisioning.Provisioner) *orchestration.Queue {
2126+
2127+
q := orchestration.NewQueue(kubeClient, recorder, cluster, clock, provisioner)
2128+
// nolint:staticcheck
2129+
// We need to implement a deprecated interface since Command currently doesn't implement "comparable"
2130+
q.RateLimitingInterface = test.NewRateLimitingInterface(workqueue.QueueConfig{Name: "disruption.workqueue"})
2131+
return q
2132+
}

0 commit comments

Comments
 (0)