Skip to content

Commit 2708785

Browse files
VaishnaviHireopenshift-cherrypick-robot
authored and
openshift-cherrypick-robot
committed
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 5b5652e commit 2708785

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
@@ -283,8 +283,6 @@ spec:
283283
- create
284284
- delete
285285
- get
286-
- update
287-
- patch
288286
- apiGroups:
289287
- ""
290288
resources:
@@ -303,16 +301,20 @@ spec:
303301
- create
304302
- get
305303
- update
304+
- apiGroups:
305+
- ""
306+
resources:
307+
- namespaces
308+
verbs:
309+
- get
306310
- apiGroups:
307311
- monitoring.coreos.com
308312
resources:
309313
- servicemonitors
310314
verbs:
311315
- get
312316
- create
313-
- update
314317
- list
315-
- patch
316318
- delete
317319
- apiGroups:
318320
- 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)