Skip to content

Commit 7131cd8

Browse files
committed
⚠️ Propagate context.Context throughout the codebase
Signed-off-by: Vince Prignano <[email protected]>
1 parent 6af4e7c commit 7131cd8

36 files changed

+442
-405
lines changed

designs/move-cluster-specific-code-out-of-manager.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ func NewSecretMirrorReconciler(mgr manager.Manager, mirrorCluster cluster.Cluste
203203

204204
func main(){
205205

206-
mgr, err := manager.New(cfg1, manager.Options{})
206+
mgr, err := manager.New(context.Background(), cfg1, manager.Options{})
207207
if err != nil {
208208
panic(err)
209209
}

example_test.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import (
3838
func Example() {
3939
var log = controllers.Log.WithName("builder-examples")
4040

41-
manager, err := controllers.NewManager(controllers.GetConfigOrDie(), controllers.Options{})
41+
manager, err := controllers.NewManager(context.Background(), controllers.GetConfigOrDie(), controllers.Options{})
4242
if err != nil {
4343
log.Error(err, "could not create manager")
4444
os.Exit(1)
@@ -78,11 +78,14 @@ func Example_updateLeaderElectionDurations() {
7878
leaseDuration := 100 * time.Second
7979
renewDeadline := 80 * time.Second
8080
retryPeriod := 20 * time.Second
81-
manager, err := controllers.NewManager(controllers.GetConfigOrDie(), controllers.Options{
82-
LeaseDuration: &leaseDuration,
83-
RenewDeadline: &renewDeadline,
84-
RetryPeriod: &retryPeriod,
85-
})
81+
manager, err := controllers.NewManager(
82+
context.Background(),
83+
controllers.GetConfigOrDie(),
84+
controllers.Options{
85+
LeaseDuration: &leaseDuration,
86+
RenewDeadline: &renewDeadline,
87+
RetryPeriod: &retryPeriod,
88+
})
8689
if err != nil {
8790
log.Error(err, "could not create manager")
8891
os.Exit(1)

examples/builtins/main.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
package main
1818

1919
import (
20+
"context"
2021
"os"
2122

2223
appsv1 "k8s.io/api/apps/v1"
@@ -42,7 +43,7 @@ func main() {
4243

4344
// Setup a Manager
4445
entryLog.Info("setting up manager")
45-
mgr, err := manager.New(config.GetConfigOrDie(), manager.Options{})
46+
mgr, err := manager.New(context.Background(), config.GetConfigOrDie(), manager.Options{})
4647
if err != nil {
4748
entryLog.Error(err, "unable to set up overall controller manager")
4849
os.Exit(1)

examples/crd/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ func (r *reconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Resu
104104
func main() {
105105
ctrl.SetLogger(zap.New())
106106

107-
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{})
107+
mgr, err := ctrl.NewManager(context.Background(), ctrl.GetConfigOrDie(), ctrl.Options{})
108108
if err != nil {
109109
setupLog.Error(err, "unable to start manager")
110110
os.Exit(1)

pkg/builder/controller_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ var _ = Describe("application", func() {
7979
Describe("New", func() {
8080
It("should return success if given valid objects", func() {
8181
By("creating a controller manager")
82-
m, err := manager.New(cfg, manager.Options{})
82+
m, err := manager.New(context.Background(), cfg, manager.Options{})
8383
Expect(err).NotTo(HaveOccurred())
8484

8585
instance, err := ControllerManagedBy(m).
@@ -92,7 +92,7 @@ var _ = Describe("application", func() {
9292

9393
It("should return error if given two apiType objects in For function", func() {
9494
By("creating a controller manager")
95-
m, err := manager.New(cfg, manager.Options{})
95+
m, err := manager.New(context.Background(), cfg, manager.Options{})
9696
Expect(err).NotTo(HaveOccurred())
9797

9898
instance, err := ControllerManagedBy(m).
@@ -106,7 +106,7 @@ var _ = Describe("application", func() {
106106

107107
It("should return an error if there is no GVK for an object, and thus we can't default the controller name", func() {
108108
By("creating a controller manager")
109-
m, err := manager.New(cfg, manager.Options{})
109+
m, err := manager.New(context.Background(), cfg, manager.Options{})
110110
Expect(err).NotTo(HaveOccurred())
111111

112112
By("creating a controller with a bad For type")
@@ -129,7 +129,7 @@ var _ = Describe("application", func() {
129129
}
130130

131131
By("creating a controller manager")
132-
m, err := manager.New(cfg, manager.Options{})
132+
m, err := manager.New(context.Background(), cfg, manager.Options{})
133133
Expect(err).NotTo(HaveOccurred())
134134

135135
instance, err := ControllerManagedBy(m).
@@ -152,7 +152,7 @@ var _ = Describe("application", func() {
152152
}
153153

154154
By("creating a controller manager")
155-
m, err := manager.New(cfg, manager.Options{})
155+
m, err := manager.New(context.Background(), cfg, manager.Options{})
156156
Expect(err).NotTo(HaveOccurred())
157157

158158
instance, err := ControllerManagedBy(m).
@@ -174,7 +174,7 @@ var _ = Describe("application", func() {
174174
}
175175

176176
By("creating a controller manager")
177-
m, err := manager.New(cfg, manager.Options{})
177+
m, err := manager.New(context.Background(), cfg, manager.Options{})
178178
Expect(err).NotTo(HaveOccurred())
179179

180180
instance, err := ControllerManagedBy(m).
@@ -197,7 +197,7 @@ var _ = Describe("application", func() {
197197
}
198198

199199
By("creating a controller manager")
200-
m, err := manager.New(cfg, manager.Options{})
200+
m, err := manager.New(context.Background(), cfg, manager.Options{})
201201
Expect(err).NotTo(HaveOccurred())
202202

203203
instance, err := ControllerManagedBy(m).
@@ -218,7 +218,7 @@ var _ = Describe("application", func() {
218218
}
219219

220220
By("creating a controller manager")
221-
m, err := manager.New(cfg, manager.Options{})
221+
m, err := manager.New(context.Background(), cfg, manager.Options{})
222222
Expect(err).NotTo(HaveOccurred())
223223

224224
instance, err := ControllerManagedBy(m).
@@ -232,7 +232,7 @@ var _ = Describe("application", func() {
232232

233233
It("should allow multiple controllers for the same kind", func() {
234234
By("creating a controller manager")
235-
m, err := manager.New(cfg, manager.Options{})
235+
m, err := manager.New(context.Background(), cfg, manager.Options{})
236236
Expect(err).NotTo(HaveOccurred())
237237

238238
By("registering the type in the Scheme")
@@ -261,7 +261,7 @@ var _ = Describe("application", func() {
261261

262262
Describe("Start with ControllerManagedBy", func() {
263263
It("should Reconcile Owns objects", func(done Done) {
264-
m, err := manager.New(cfg, manager.Options{})
264+
m, err := manager.New(context.Background(), cfg, manager.Options{})
265265
Expect(err).NotTo(HaveOccurred())
266266

267267
bldr := ControllerManagedBy(m).
@@ -272,7 +272,7 @@ var _ = Describe("application", func() {
272272
}, 10)
273273

274274
It("should Reconcile Watches objects", func(done Done) {
275-
m, err := manager.New(cfg, manager.Options{})
275+
m, err := manager.New(context.Background(), cfg, manager.Options{})
276276
Expect(err).NotTo(HaveOccurred())
277277

278278
bldr := ControllerManagedBy(m).
@@ -287,7 +287,7 @@ var _ = Describe("application", func() {
287287

288288
Describe("Set custom predicates", func() {
289289
It("should execute registered predicates only for assigned kind", func(done Done) {
290-
m, err := manager.New(cfg, manager.Options{})
290+
m, err := manager.New(context.Background(), cfg, manager.Options{})
291291
Expect(err).NotTo(HaveOccurred())
292292

293293
var (

pkg/builder/example_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func ExampleBuilder() {
4545

4646
var log = logf.Log.WithName("builder-examples")
4747

48-
mgr, err := manager.New(config.GetConfigOrDie(), manager.Options{})
48+
mgr, err := manager.New(context.Background(), config.GetConfigOrDie(), manager.Options{})
4949
if err != nil {
5050
log.Error(err, "could not create manager")
5151
os.Exit(1)

pkg/builder/example_webhook_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
package builder_test
1818

1919
import (
20+
"context"
2021
"os"
2122

2223
"sigs.k8s.io/controller-runtime/pkg/builder"
@@ -39,7 +40,7 @@ var _ admission.Validator = &examplegroup.ChaosPod{}
3940
func ExampleWebhookBuilder() {
4041
var log = logf.Log.WithName("webhookbuilder-example")
4142

42-
mgr, err := manager.New(config.GetConfigOrDie(), manager.Options{})
43+
mgr, err := manager.New(context.Background(), config.GetConfigOrDie(), manager.Options{})
4344
if err != nil {
4445
log.Error(err, "could not create manager")
4546
os.Exit(1)

pkg/builder/webhook_test.go

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
package builder
1818

1919
import (
20+
"context"
2021
"errors"
2122
"fmt"
2223
"net/http"
@@ -49,7 +50,7 @@ var _ = Describe("webhook", func() {
4950
Describe("New", func() {
5051
It("should scaffold a defaulting webhook if the type implements the Defaulter interface", func() {
5152
By("creating a controller manager")
52-
m, err := manager.New(cfg, manager.Options{})
53+
m, err := manager.New(context.Background(), cfg, manager.Options{})
5354
Expect(err).NotTo(HaveOccurred())
5455

5556
By("registering the type in the Scheme")
@@ -89,11 +90,11 @@ var _ = Describe("webhook", func() {
8990
}
9091
}`)
9192

92-
stopCh := make(chan struct{})
93-
close(stopCh)
93+
ctx, cancel := context.WithCancel(context.Background())
94+
cancel()
9495
// TODO: we may want to improve it to make it be able to inject dependencies,
9596
// but not always try to load certs and return not found error.
96-
err = svr.Start(stopCh)
97+
err = svr.Start(ctx)
9798
if err != nil && !os.IsNotExist(err) {
9899
Expect(err).NotTo(HaveOccurred())
99100
}
@@ -121,7 +122,7 @@ var _ = Describe("webhook", func() {
121122

122123
It("should scaffold a validating webhook if the type implements the Validator interface", func() {
123124
By("creating a controller manager")
124-
m, err := manager.New(cfg, manager.Options{})
125+
m, err := manager.New(context.Background(), cfg, manager.Options{})
125126
Expect(err).NotTo(HaveOccurred())
126127

127128
By("registering the type in the Scheme")
@@ -163,11 +164,11 @@ var _ = Describe("webhook", func() {
163164
}
164165
}`)
165166

166-
stopCh := make(chan struct{})
167-
close(stopCh)
167+
ctx, cancel := context.WithCancel(context.Background())
168+
cancel()
168169
// TODO: we may want to improve it to make it be able to inject dependencies,
169170
// but not always try to load certs and return not found error.
170-
err = svr.Start(stopCh)
171+
err = svr.Start(ctx)
171172
if err != nil && !os.IsNotExist(err) {
172173
Expect(err).NotTo(HaveOccurred())
173174
}
@@ -194,7 +195,7 @@ var _ = Describe("webhook", func() {
194195

195196
It("should scaffold defaulting and validating webhooks if the type implements both Defaulter and Validator interfaces", func() {
196197
By("creating a controller manager")
197-
m, err := manager.New(cfg, manager.Options{})
198+
m, err := manager.New(context.Background(), cfg, manager.Options{})
198199
Expect(err).NotTo(HaveOccurred())
199200

200201
By("registering the type in the Scheme")
@@ -234,11 +235,11 @@ var _ = Describe("webhook", func() {
234235
}
235236
}`)
236237

237-
stopCh := make(chan struct{})
238-
close(stopCh)
238+
ctx, cancel := context.WithCancel(context.Background())
239+
cancel()
239240
// TODO: we may want to improve it to make it be able to inject dependencies,
240241
// but not always try to load certs and return not found error.
241-
err = svr.Start(stopCh)
242+
err = svr.Start(ctx)
242243
if err != nil && !os.IsNotExist(err) {
243244
Expect(err).NotTo(HaveOccurred())
244245
}
@@ -269,7 +270,9 @@ var _ = Describe("webhook", func() {
269270

270271
It("should scaffold a validating webhook if the type implements the Validator interface to validate deletes", func() {
271272
By("creating a controller manager")
272-
m, err := manager.New(cfg, manager.Options{})
273+
ctx, cancel := context.WithCancel(context.Background())
274+
275+
m, err := manager.New(ctx, cfg, manager.Options{})
273276
Expect(err).NotTo(HaveOccurred())
274277

275278
By("registering the type in the Scheme")
@@ -308,11 +311,11 @@ var _ = Describe("webhook", func() {
308311
}
309312
}
310313
}`)
311-
stopCh := make(chan struct{})
312-
close(stopCh)
314+
315+
cancel()
313316
// TODO: we may want to improve it to make it be able to inject dependencies,
314317
// but not always try to load certs and return not found error.
315-
err = svr.Start(stopCh)
318+
err = svr.Start(ctx)
316319
if err != nil && !os.IsNotExist(err) {
317320
Expect(err).NotTo(HaveOccurred())
318321
}

pkg/cache/cache.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,12 @@ type Informers interface {
5858
// of the underlying object.
5959
GetInformerForKind(ctx context.Context, gvk schema.GroupVersionKind) (Informer, error)
6060

61-
// Start runs all the informers known to this cache until the given channel is closed.
61+
// Start runs all the informers known to this cache until the context is closed.
6262
// It blocks.
63-
Start(stopCh <-chan struct{}) error
63+
Start(ctx context.Context) error
6464

6565
// WaitForCacheSync waits for all the caches to sync. Returns false if it could not sync a cache.
66-
WaitForCacheSync(stop <-chan struct{}) bool
66+
WaitForCacheSync(ctx context.Context) bool
6767

6868
// Informers knows how to add indices to the caches (informers) that it manages.
6969
client.FieldIndexer

0 commit comments

Comments
 (0)