Skip to content

Commit 5c56fc3

Browse files
Merge pull request buildpacks-community#1214 from pivotal/fix-tracker
Fix TrackKind behavior
2 parents 1c20046 + 1625679 commit 5c56fc3

2 files changed

Lines changed: 31 additions & 2 deletions

File tree

pkg/tracker/tracker.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@ import (
2525
"sync"
2626
"time"
2727

28-
"github.com/pivotal/kpack/pkg/reconciler"
2928
"k8s.io/apimachinery/pkg/runtime/schema"
3029
"k8s.io/apimachinery/pkg/types"
30+
31+
"github.com/pivotal/kpack/pkg/reconciler"
3132
)
3233

3334
func New(callback func(types.NamespacedName), lease time.Duration) *Tracker {
@@ -82,7 +83,7 @@ func (i *Tracker) TrackKind(kind schema.GroupKind, obj types.NamespacedName) {
8283
i.m.Lock()
8384
defer i.m.Unlock()
8485

85-
l, ok := i.objects[kind.String()]
86+
l, ok := i.kinds[kind.String()]
8687
if !ok {
8788
l = set{}
8889
}

pkg/tracker/tracker_test.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,34 @@ func testTracker(t *testing.T, when spec.G, it spec.S) {
170170

171171
require.Equal(t, wasCalledWith, types.NamespacedName{})
172172
})
173+
174+
it("supports multiple reconcilers tracking the same kind", func() {
175+
calledWith := []types.NamespacedName{}
176+
track := tracker.New(func(key types.NamespacedName) {
177+
calledWith = append(calledWith, key)
178+
}, 5*time.Minute)
179+
180+
builder := &buildapi.Builder{
181+
ObjectMeta: v1.ObjectMeta{
182+
Name: "some-name",
183+
},
184+
TypeMeta: v1.TypeMeta{
185+
Kind: "Builder",
186+
APIVersion: "kpack.io/v1alpha2",
187+
},
188+
}
189+
190+
secondReconciler := types.NamespacedName{Name: "second reconciler", Namespace: "some namespace"}
191+
192+
track.TrackKind(groupKind, reconcilerName)
193+
track.TrackKind(groupKind, secondReconciler)
194+
195+
track.OnChanged(builder)
196+
197+
require.Len(t, calledWith, 2)
198+
require.Contains(t, calledWith, reconcilerName)
199+
require.Contains(t, calledWith, secondReconciler)
200+
})
173201
})
174202

175203
when("tracking expires", func() {

0 commit comments

Comments
 (0)