@@ -19,10 +19,13 @@ import (
19
19
pccontroller "k8s.io/ingress-gce/pkg/multiproject/controller"
20
20
"k8s.io/ingress-gce/pkg/multiproject/gce"
21
21
"k8s.io/ingress-gce/pkg/multiproject/manager"
22
+ "k8s.io/ingress-gce/pkg/neg/metrics"
23
+ syncMetrics "k8s.io/ingress-gce/pkg/neg/metrics/metricscollector"
22
24
"k8s.io/ingress-gce/pkg/neg/syncers/labels"
23
25
providerconfigclient "k8s.io/ingress-gce/pkg/providerconfig/client/clientset/versioned"
24
26
providerconfiginformers "k8s.io/ingress-gce/pkg/providerconfig/client/informers/externalversions"
25
27
"k8s.io/ingress-gce/pkg/recorders"
28
+
26
29
svcnegclient "k8s.io/ingress-gce/pkg/svcneg/client/clientset/versioned"
27
30
informersvcneg "k8s.io/ingress-gce/pkg/svcneg/client/informers/externalversions"
28
31
"k8s.io/ingress-gce/pkg/utils/namer"
@@ -31,6 +34,12 @@ import (
31
34
32
35
const multiProjectLeaderElectionLockName = "ingress-gce-multi-project-lock"
33
36
37
+ func init () {
38
+ // register prometheus metrics
39
+ metrics .RegisterMetrics ()
40
+ syncMetrics .RegisterMetrics ()
41
+ }
42
+
34
43
// StartWithLeaderElection starts the ProviderConfig controller with leader election.
35
44
func StartWithLeaderElection (
36
45
parentCtx context.Context ,
@@ -49,12 +58,13 @@ func StartWithLeaderElection(
49
58
gceCreator gce.GCECreator ,
50
59
rootNamer * namer.Namer ,
51
60
stopCh <- chan struct {},
61
+ syncerMetrics * syncMetrics.SyncerMetrics ,
52
62
) error {
53
63
logger .V (1 ).Info ("Starting multi-project controller with leader election" , "host" , hostname )
54
64
55
65
recordersManager := recorders .NewManager (eventRecorderKubeClient , logger )
56
66
57
- leConfig , err := makeLeaderElectionConfig (leaderElectKubeClient , hostname , recordersManager , logger , kubeClient , svcNegClient , kubeSystemUID , eventRecorderKubeClient , providerConfigClient , informersFactory , svcNegFactory , networkFactory , nodeTopologyFactory , gceCreator , rootNamer )
67
+ leConfig , err := makeLeaderElectionConfig (leaderElectKubeClient , hostname , recordersManager , logger , kubeClient , svcNegClient , kubeSystemUID , eventRecorderKubeClient , providerConfigClient , informersFactory , svcNegFactory , networkFactory , nodeTopologyFactory , gceCreator , rootNamer , syncerMetrics )
58
68
if err != nil {
59
69
return err
60
70
}
@@ -88,6 +98,7 @@ func makeLeaderElectionConfig(
88
98
nodeTopologyFactory informernodetopology.SharedInformerFactory ,
89
99
gceCreator gce.GCECreator ,
90
100
rootNamer * namer.Namer ,
101
+ syncerMetrics * syncMetrics.SyncerMetrics ,
91
102
) (* leaderelection.LeaderElectionConfig , error ) {
92
103
recorder := recordersManager .Recorder (flags .F .LeaderElection .LockObjectNamespace )
93
104
// add a uniquifier so that two processes on the same host don't accidentally both become active
@@ -116,7 +127,7 @@ func makeLeaderElectionConfig(
116
127
Callbacks : leaderelection.LeaderCallbacks {
117
128
OnStartedLeading : func (ctx context.Context ) {
118
129
logger .Info ("Became leader, starting multi-project controller" )
119
- Start (logger , kubeClient , svcNegClient , kubeSystemUID , eventRecorderKubeClient , providerConfigClient , informersFactory , svcNegFactory , networkFactory , nodeTopologyFactory , gceCreator , rootNamer , ctx .Done ())
130
+ Start (logger , kubeClient , svcNegClient , kubeSystemUID , eventRecorderKubeClient , providerConfigClient , informersFactory , svcNegFactory , networkFactory , nodeTopologyFactory , gceCreator , rootNamer , ctx .Done (), syncerMetrics )
120
131
},
121
132
OnStoppedLeading : func () {
122
133
logger .Info ("Stop running multi-project leader election" )
@@ -143,6 +154,7 @@ func Start(
143
154
gceCreator gce.GCECreator ,
144
155
rootNamer * namer.Namer ,
145
156
stopCh <- chan struct {},
157
+ syncerMetrics * syncMetrics.SyncerMetrics ,
146
158
) {
147
159
logger .V (1 ).Info ("Starting ProviderConfig controller" )
148
160
lpConfig := labels.PodLabelPropagationConfig {}
@@ -173,6 +185,7 @@ func Start(
173
185
gceCreator ,
174
186
stopCh ,
175
187
logger ,
188
+ syncerMetrics ,
176
189
)
177
190
logger .V (1 ).Info ("Initialized ProviderConfig controller manager" )
178
191
0 commit comments