Skip to content

Commit aadf64f

Browse files
VaishnaviHiremansikulkarni96
authored andcommitted
Remove dependency on operator-sdk metrics package
This commit removes the dependency on operator-sdk metrics package by adding service and service monitors through package manifests and validating their creation on operator startup. Since WMCO is no longer creating a service with selector, no Endpoint object is created. This commit also ensures we create an Endpoints object before accessing it. We cannot create Endpoints resources through manifests as they are not currently OLM supported operator-framework/operator-lifecycle-manager#1996
1 parent b0dd499 commit aadf64f

File tree

7 files changed

+152
-102
lines changed

7 files changed

+152
-102
lines changed

cmd/manager/main.go

+12-5
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import (
2222
"github.com/openshift/windows-machine-config-operator/apis"
2323
"github.com/openshift/windows-machine-config-operator/controllers"
2424
"github.com/openshift/windows-machine-config-operator/pkg/cluster"
25-
winmetrics "github.com/openshift/windows-machine-config-operator/pkg/metrics"
25+
"github.com/openshift/windows-machine-config-operator/pkg/metrics"
2626
"github.com/openshift/windows-machine-config-operator/pkg/nodeconfig/payload"
2727
"github.com/openshift/windows-machine-config-operator/version"
2828
)
@@ -131,7 +131,7 @@ func main() {
131131
// Create a new Cmd to provide shared dependencies and start components
132132
mgr, err := manager.New(cfg, manager.Options{
133133
NewCache: cache.MultiNamespacedCacheBuilder(namespaces),
134-
MetricsBindAddress: fmt.Sprintf("%s:%d", winmetrics.Host, winmetrics.Port),
134+
MetricsBindAddress: fmt.Sprintf("%s:%d", metrics.Host, metrics.Port),
135135
})
136136
if err != nil {
137137
log.Error(err, "failed to create a new Manager")
@@ -152,9 +152,16 @@ func main() {
152152
os.Exit(1)
153153
}
154154

155-
// Add the Metrics Service and Service Monitor
156-
if err := winmetrics.Add(ctx, cfg, namespace); err != nil {
157-
log.Error(err, "failed to add Metrics Service and Service Monitor")
155+
metricsConfig, err := metrics.NewConfig(mgr, cfg, namespace)
156+
if err != nil {
157+
log.Error(err, "failed to create MetricsConfig object")
158+
os.Exit(1)
159+
}
160+
161+
// Configure the metric resources
162+
if err := metricsConfig.Configure(ctx); err != nil {
163+
log.Error(err, "error setting up metrics")
164+
os.Exit(1)
158165
}
159166

160167
log.Info("starting the Cmd.")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Prometheus Monitor Service (Metrics)
2+
apiVersion: monitoring.coreos.com/v1
3+
kind: ServiceMonitor
4+
metadata:
5+
labels:
6+
name: windows-machine-config-operator
7+
name: windows-machine-config-operator-metrics
8+
spec:
9+
endpoints:
10+
- path: /metrics
11+
port: metrics
12+
interval: 30s
13+
honorLabels: true
14+
relabelings:
15+
- action: replace
16+
regex: (.*)
17+
replacement: $1
18+
sourceLabels:
19+
- __meta_kubernetes_endpoint_address_target_name
20+
targetLabel: instance
21+
selector:
22+
matchLabels:
23+
name: windows-machine-config-operator
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
kind: Service
2+
apiVersion: v1
3+
metadata:
4+
name: windows-machine-config-operator-metrics
5+
labels:
6+
name: windows-machine-config-operator
7+
spec:
8+
ports:
9+
- name: metrics
10+
protocol: TCP
11+
port: 9182
12+
targetPort: 9182

deploy/olm-catalog/windows-machine-config-operator/manifests/windows-machine-config-operator.clusterserviceversion.yaml

+6-4
Original file line numberDiff line numberDiff line change
@@ -284,8 +284,6 @@ spec:
284284
- create
285285
- delete
286286
- get
287-
- update
288-
- patch
289287
- apiGroups:
290288
- ""
291289
resources:
@@ -304,16 +302,20 @@ spec:
304302
- create
305303
- get
306304
- update
305+
- apiGroups:
306+
- ""
307+
resources:
308+
- namespaces
309+
verbs:
310+
- get
307311
- apiGroups:
308312
- monitoring.coreos.com
309313
resources:
310314
- servicemonitors
311315
verbs:
312316
- get
313317
- create
314-
- update
315318
- list
316-
- patch
317319
- delete
318320
- apiGroups:
319321
- apps

deploy/role.yaml

+6-4
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ rules:
2323
- create
2424
- delete
2525
- get
26-
- update
27-
- patch
2826
- apiGroups:
2927
- ""
3028
resources:
@@ -43,16 +41,20 @@ rules:
4341
- create
4442
- get
4543
- update
44+
- apiGroups:
45+
- ""
46+
resources:
47+
- namespaces
48+
verbs:
49+
- get
4650
- apiGroups:
4751
- monitoring.coreos.com
4852
resources:
4953
- servicemonitors
5054
verbs:
5155
- get
5256
- create
53-
- update
5457
- list
55-
- patch
5658
- delete
5759
# deployment/finalizers permissions needed for the metrics server
5860
- apiGroups:

0 commit comments

Comments
 (0)