Skip to content

Commit 44683e8

Browse files
authored
refactor Leader controller (#6349)
1 parent 90a52a0 commit 44683e8

File tree

2 files changed

+42
-39
lines changed

2 files changed

+42
-39
lines changed

internal/k8s/controller.go

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -493,15 +493,6 @@ func (lbc *LoadBalancerController) newNamespacedInformer(ns string) *namespacedI
493493
return nsi
494494
}
495495

496-
// addLeaderHandler adds the handler for leader election to the controller
497-
func (lbc *LoadBalancerController) addLeaderHandler(leaderHandler leaderelection.LeaderCallbacks) {
498-
var err error
499-
lbc.leaderElector, err = newLeaderElector(lbc.client, leaderHandler, lbc.controllerNamespace, lbc.leaderElectionLockName)
500-
if err != nil {
501-
glog.V(3).Infof("Error starting LeaderElection: %v", err)
502-
}
503-
}
504-
505496
// AddSyncQueue enqueues the provided item on the sync queue
506497
func (lbc *LoadBalancerController) AddSyncQueue(item interface{}) {
507498
lbc.syncQueue.Enqueue(item)
@@ -2295,36 +2286,6 @@ func (lbc *LoadBalancerController) updateVirtualServerRoutesStatusFromEvents() e
22952286
return nil
22962287
}
22972288

2298-
func (lbc *LoadBalancerController) updatePoliciesStatus() error {
2299-
var allErrs []error
2300-
for _, nsi := range lbc.namespacedInformers {
2301-
for _, obj := range nsi.policyLister.List() {
2302-
pol := obj.(*conf_v1.Policy)
2303-
2304-
err := validation.ValidatePolicy(pol, lbc.isNginxPlus, lbc.enableOIDC, lbc.appProtectEnabled)
2305-
if err != nil {
2306-
msg := fmt.Sprintf("Policy %v/%v is invalid and was rejected: %v", pol.Namespace, pol.Name, err)
2307-
err = lbc.statusUpdater.UpdatePolicyStatus(pol, conf_v1.StateInvalid, "Rejected", msg)
2308-
if err != nil {
2309-
allErrs = append(allErrs, err)
2310-
}
2311-
} else {
2312-
msg := fmt.Sprintf("Policy %v/%v was added or updated", pol.Namespace, pol.Name)
2313-
err = lbc.statusUpdater.UpdatePolicyStatus(pol, conf_v1.StateValid, "AddedOrUpdated", msg)
2314-
if err != nil {
2315-
allErrs = append(allErrs, err)
2316-
}
2317-
}
2318-
}
2319-
}
2320-
2321-
if len(allErrs) != 0 {
2322-
return fmt.Errorf("not all Policies statuses were updated: %v", allErrs)
2323-
}
2324-
2325-
return nil
2326-
}
2327-
23282289
func (lbc *LoadBalancerController) updateTransportServersStatusFromEvents() error {
23292290
var allErrs []error
23302291
for _, nsi := range lbc.namespacedInformers {

internal/k8s/leader.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@ package k8s
22

33
import (
44
"context"
5+
"fmt"
56
"os"
67
"time"
78

89
"github.com/golang/glog"
10+
conf_v1 "github.com/nginxinc/kubernetes-ingress/pkg/apis/configuration/v1"
11+
"github.com/nginxinc/kubernetes-ingress/pkg/apis/configuration/validation"
912

1013
v1 "k8s.io/api/core/v1"
1114
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -102,3 +105,42 @@ func createLeaderHandler(lbc *LoadBalancerController) leaderelection.LeaderCallb
102105
},
103106
}
104107
}
108+
109+
// addLeaderHandler adds the handler for leader election to the controller
110+
func (lbc *LoadBalancerController) addLeaderHandler(leaderHandler leaderelection.LeaderCallbacks) {
111+
var err error
112+
lbc.leaderElector, err = newLeaderElector(lbc.client, leaderHandler, lbc.controllerNamespace, lbc.leaderElectionLockName)
113+
if err != nil {
114+
glog.V(3).Infof("Error starting LeaderElection: %v", err)
115+
}
116+
}
117+
118+
func (lbc *LoadBalancerController) updatePoliciesStatus() error {
119+
var allErrs []error
120+
for _, nsi := range lbc.namespacedInformers {
121+
for _, obj := range nsi.policyLister.List() {
122+
pol := obj.(*conf_v1.Policy)
123+
124+
err := validation.ValidatePolicy(pol, lbc.isNginxPlus, lbc.enableOIDC, lbc.appProtectEnabled)
125+
if err != nil {
126+
msg := fmt.Sprintf("Policy %v/%v is invalid and was rejected: %v", pol.Namespace, pol.Name, err)
127+
err = lbc.statusUpdater.UpdatePolicyStatus(pol, conf_v1.StateInvalid, "Rejected", msg)
128+
if err != nil {
129+
allErrs = append(allErrs, err)
130+
}
131+
} else {
132+
msg := fmt.Sprintf("Policy %v/%v was added or updated", pol.Namespace, pol.Name)
133+
err = lbc.statusUpdater.UpdatePolicyStatus(pol, conf_v1.StateValid, "AddedOrUpdated", msg)
134+
if err != nil {
135+
allErrs = append(allErrs, err)
136+
}
137+
}
138+
}
139+
}
140+
141+
if len(allErrs) != 0 {
142+
return fmt.Errorf("not all Policies statuses were updated: %v", allErrs)
143+
}
144+
145+
return nil
146+
}

0 commit comments

Comments
 (0)