Skip to content

Commit f108e81

Browse files
committed
🐛 Manager leader election: Don't reset restcfg UserAgent
In pkg.LeaderElection.NewResourceLock we call rest.AddUserAgent which resets the restcfgs useragent and sets it to the default one plus a suffix. This resets whatever was originally set as UserAgent and since we do not copy our restcfg before passing it in there, this leads to the UserAgent being set to the leader-election one globally.
1 parent e388e1e commit f108e81

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

pkg/manager/manager.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -308,9 +308,9 @@ func New(config *rest.Config, options Options) (Manager, error) {
308308
}
309309

310310
// Create the resource lock to enable leader election)
311-
leaderConfig := config
312-
if options.LeaderElectionConfig != nil {
313-
leaderConfig = options.LeaderElectionConfig
311+
leaderConfig := options.LeaderElectionConfig
312+
if leaderConfig == nil {
313+
leaderConfig = rest.CopyConfig(config)
314314
}
315315
resourceLock, err := options.newResourceLock(leaderConfig, recorderProvider, leaderelection.Options{
316316
LeaderElection: options.LeaderElection,

pkg/manager/manager_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,17 @@ var _ = Describe("manger.Manager", func() {
592592
close(done)
593593
})
594594

595+
It("should not manipulate the provided config", func() {
596+
originalCfg := rest.CopyConfig(cfg)
597+
options.newResourceLock = nil
598+
m, err := New(cfg, options)
599+
Expect(err).NotTo(HaveOccurred())
600+
for _, cb := range callbacks {
601+
cb(m)
602+
}
603+
Expect(m.GetConfig()).To(Equal(originalCfg))
604+
})
605+
595606
It("should stop when context is cancelled", func(done Done) {
596607
m, err := New(cfg, options)
597608
Expect(err).NotTo(HaveOccurred())

0 commit comments

Comments
 (0)