Skip to content

Commit 4b98550

Browse files
committed
MON-4432: Migrate windows-exporter ServiceMonitor to EndpointSlice
Update ServiceMonitor configuration to use EndpointSlice discovery instead of Endpoints API for improved scalability. - Set serviceDiscoveryRole to EndpointSlice - Update relabel metadata label for EndpointSlice - Add endpointslices RBAC permissions Signed-off-by: Jayapriya Pai <[email protected]> Assisted-By: Cursor AI
1 parent 07d5e4b commit 4b98550

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

bundle/manifests/prometheus-k8s_rbac.authorization.k8s.io_v1_role.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,11 @@ rules:
1313
verbs:
1414
- list
1515
- watch
16+
- apiGroups:
17+
- "discovery.k8s.io"
18+
resources:
19+
- endpointslices
20+
verbs:
21+
- get
22+
- list
23+
- watch

config/windows-exporter/windows-exporter-role.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,11 @@ rules:
1313
verbs:
1414
- list
1515
- watch
16+
- apiGroups:
17+
- "discovery.k8s.io"
18+
resources:
19+
- endpointslices
20+
verbs:
21+
- get
22+
- list
23+
- watch

controllers/metric_controller.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88

99
monv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1"
1010
monclient "github.com/prometheus-operator/prometheus-operator/pkg/client/versioned/typed/monitoring/v1"
11-
"k8s.io/api/core/v1"
11+
v1 "k8s.io/api/core/v1"
1212
apierrors "k8s.io/apimachinery/pkg/api/errors"
1313
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1414
"k8s.io/apimachinery/pkg/runtime"
@@ -132,6 +132,7 @@ func (r *metricReconciler) ensureServiceMonitor(ctx context.Context) error {
132132
replacement1 := "$1:9182"
133133
replacement2 := metrics.WindowsMetricsResource
134134
attachMetadataBool := true
135+
endpointSliceRole := monv1.EndpointSliceRole
135136
expectedSM := &monv1.ServiceMonitor{
136137
ObjectMeta: metav1.ObjectMeta{
137138
Name: metrics.WindowsMetricsResource,
@@ -141,6 +142,7 @@ func (r *metricReconciler) ensureServiceMonitor(ctx context.Context) error {
141142
},
142143
},
143144
Spec: monv1.ServiceMonitorSpec{
145+
ServiceDiscoveryRole: &endpointSliceRole,
144146
AttachMetadata: &monv1.AttachMetadata{
145147
Node: &attachMetadataBool,
146148
},
@@ -165,7 +167,7 @@ func (r *metricReconciler) ensureServiceMonitor(ctx context.Context) error {
165167
Replacement: &replacement0,
166168
TargetLabel: "instance",
167169
SourceLabels: []monv1.LabelName{
168-
"__meta_kubernetes_endpoint_address_target_name",
170+
"__meta_kubernetes_endpointslice_endpoint_target_name",
169171
},
170172
},
171173
{ // Include only Windows nodes for this serviceMonitor

0 commit comments

Comments
 (0)