@@ -77,7 +77,6 @@ func init() {
77
77
var (
78
78
metricsHost = "0.0.0.0"
79
79
metricsPort int32 = 8383
80
- operatorMetricsPort int32 = 8686
81
80
defaultPrometheusAlertName = "file-integrity"
82
81
metricsServiceName = "metrics"
83
82
leaderElectionID = "962a0cf2.openshift.io"
@@ -200,9 +199,10 @@ func RunOperator(cmd *cobra.Command, args []string) {
200
199
}
201
200
202
201
func ensureMetricsServiceAndSecret (ctx context.Context , kClient * kubernetes.Clientset , ns string ) (* v1.Service , error ) {
203
- var mService * v1.Service
202
+ var returnService * v1.Service
204
203
var err error
205
- mService , err = kClient .CoreV1 ().Services (ns ).Create (ctx , & v1.Service {
204
+
205
+ newService := & v1.Service {
206
206
ObjectMeta : metav1.ObjectMeta {
207
207
Labels : map [string ]string {
208
208
"name" : "file-integrity-operator" ,
@@ -216,17 +216,11 @@ func ensureMetricsServiceAndSecret(ctx context.Context, kClient *kubernetes.Clie
216
216
Spec : v1.ServiceSpec {
217
217
Ports : []v1.ServicePort {
218
218
{
219
- Name : "http- metrics" ,
219
+ Name : "metrics" ,
220
220
Port : metricsPort ,
221
221
TargetPort : intstr .FromInt (int (metricsPort )),
222
222
Protocol : v1 .ProtocolTCP ,
223
223
},
224
- {
225
- Name : "cr-metrics" ,
226
- Port : operatorMetricsPort ,
227
- TargetPort : intstr .FromInt (int (operatorMetricsPort )),
228
- Protocol : v1 .ProtocolTCP ,
229
- },
230
224
{
231
225
Name : "metrics-fio" ,
232
226
Port : metrics .ControllerMetricsPort ,
@@ -239,15 +233,31 @@ func ensureMetricsServiceAndSecret(ctx context.Context, kClient *kubernetes.Clie
239
233
},
240
234
Type : v1 .ServiceTypeClusterIP ,
241
235
},
242
- }, metav1.CreateOptions {})
236
+ }
237
+
238
+ createdService , err := kClient .CoreV1 ().Services (ns ).Create (ctx , newService , metav1.CreateOptions {})
243
239
if err != nil && ! kerr .IsAlreadyExists (err ) {
244
240
return nil , err
245
241
}
246
242
if kerr .IsAlreadyExists (err ) {
247
- mService , err = kClient .CoreV1 ().Services (ns ).Get (ctx , metricsServiceName , metav1.GetOptions {})
248
- if err != nil {
249
- return nil , err
243
+ curService , getErr := kClient .CoreV1 ().Services (ns ).Get (ctx , metricsServiceName , metav1.GetOptions {})
244
+ if getErr != nil {
245
+ return nil , getErr
246
+ }
247
+ returnService = curService
248
+
249
+ // Needs update?
250
+ if ! reflect .DeepEqual (curService .Spec , newService .Spec ) {
251
+ serviceCopy := curService .DeepCopy ()
252
+ serviceCopy .Spec = newService .Spec
253
+ updatedService , updateErr := kClient .CoreV1 ().Services (ns ).Update (ctx , serviceCopy , metav1.UpdateOptions {})
254
+ if updateErr != nil {
255
+ return nil , updateErr
256
+ }
257
+ returnService = updatedService
250
258
}
259
+ } else {
260
+ returnService = createdService
251
261
}
252
262
253
263
// Ensure the serving-cert secret for metrics is available, we have to exit and restart if not
@@ -259,7 +269,7 @@ func ensureMetricsServiceAndSecret(ctx context.Context, kClient *kubernetes.Clie
259
269
}
260
270
}
261
271
262
- return mService , nil
272
+ return returnService , nil
263
273
}
264
274
265
275
func defaultPrometheusRule (alertName , namespace string ) * monitoring.PrometheusRule {
0 commit comments