@@ -62,7 +62,6 @@ func main() {
62
62
For (& corev1.Pod {}).Complete (reconcile .Func (
63
63
func (ctx context.Context , req ctrl.Request ) (ctrl.Result , error ) {
64
64
log := log .FromContext (ctx )
65
- log .Info ("Reconciling pod" , "name" , req .Name )
66
65
67
66
cluster , err := mgr .GetCluster (req .Cluster )
68
67
if err != nil {
@@ -75,6 +74,7 @@ func main() {
75
74
if err := client .Get (ctx , req .NamespacedName , pod ); err != nil {
76
75
return reconcile.Result {}, err
77
76
}
77
+ log .Info ("Reconciling pod" , "name" , pod .Name , "uuid" , pod .UID )
78
78
79
79
// Print any annotations that start with fleet.
80
80
for k , v := range pod .Labels {
@@ -87,7 +87,7 @@ func main() {
87
87
},
88
88
))
89
89
90
- entryLog .Info ("starting manager" )
90
+ entryLog .Info ("Starting manager" )
91
91
if err := mgr .Start (signals .SetupSignalHandler ()); err != nil {
92
92
entryLog .Error (err , "unable to run manager" )
93
93
os .Exit (1 )
@@ -129,6 +129,7 @@ func (k *KindAdapter) Watch() (logical.Watcher, error) {
129
129
}
130
130
131
131
type KindWatcher struct {
132
+ init sync.Once
132
133
wg sync.WaitGroup
133
134
ch chan logical.Event
134
135
cancel context.CancelFunc
@@ -142,47 +143,49 @@ func (k *KindWatcher) Stop() {
142
143
close (k .ch )
143
144
}
144
145
func (k * KindWatcher ) ResultChan () <- chan logical.Event {
145
- ctx , cancel := context .WithCancel (context .Background ())
146
- k .cancel = cancel
147
- set := sets .New [string ]()
148
- k .wg .Add (1 )
149
- go func () {
150
- defer k .wg .Done ()
151
- for {
152
- select {
153
- case <- time .After (2 * time .Second ):
154
- provider := kind .NewProvider ()
155
- list , err := provider .List ()
156
- if err != nil {
157
- klog .Error (err )
158
- continue
159
- }
160
- newSet := sets .New (list ... )
161
- // Check for new clusters.
162
- for _ , cluster := range newSet .Difference (set ).UnsortedList () {
163
- if ! strings .HasPrefix (cluster , "fleet-" ) {
146
+ k .init .Do (func () {
147
+ ctx , cancel := context .WithCancel (context .Background ())
148
+ k .cancel = cancel
149
+ set := sets .New [string ]()
150
+ k .wg .Add (1 )
151
+ go func () {
152
+ defer k .wg .Done ()
153
+ for {
154
+ select {
155
+ case <- time .After (2 * time .Second ):
156
+ provider := kind .NewProvider ()
157
+ list , err := provider .List ()
158
+ if err != nil {
159
+ klog .Error (err )
164
160
continue
165
161
}
166
- k .ch <- logical.Event {
167
- Type : watch .Added ,
168
- Name : logical .Name (cluster ),
169
- }
170
- }
171
- // Check for deleted clusters.
172
- for _ , cluster := range set .Difference (newSet ).UnsortedList () {
173
- if ! strings .HasPrefix (cluster , "fleet-" ) {
174
- continue
162
+ newSet := sets .New (list ... )
163
+ // Check for new clusters.
164
+ for _ , cluster := range newSet .Difference (set ).UnsortedList () {
165
+ if ! strings .HasPrefix (cluster , "fleet-" ) {
166
+ continue
167
+ }
168
+ k .ch <- logical.Event {
169
+ Type : watch .Added ,
170
+ Name : logical .Name (cluster ),
171
+ }
175
172
}
176
- k .ch <- logical.Event {
177
- Type : watch .Deleted ,
178
- Name : logical .Name (cluster ),
173
+ // Check for deleted clusters.
174
+ for _ , cluster := range set .Difference (newSet ).UnsortedList () {
175
+ if ! strings .HasPrefix (cluster , "fleet-" ) {
176
+ continue
177
+ }
178
+ k .ch <- logical.Event {
179
+ Type : watch .Deleted ,
180
+ Name : logical .Name (cluster ),
181
+ }
179
182
}
183
+ set = newSet
184
+ case <- ctx .Done ():
185
+ return
180
186
}
181
- set = newSet
182
- case <- ctx .Done ():
183
- return
184
187
}
185
- }
186
- }( )
188
+ }()
189
+ })
187
190
return k .ch
188
191
}
0 commit comments