Skip to content

Commit d728365

Browse files
authored
Fix KSM VPA metrics for VPA versions 1.3.0+ (#36222)
1 parent 2d4a9c5 commit d728365

File tree

3 files changed

+36
-22
lines changed

3 files changed

+36
-22
lines changed

pkg/collector/corechecks/cluster/ksm/customresources/vpa.go

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2222
"k8s.io/apimachinery/pkg/runtime"
2323
"k8s.io/apimachinery/pkg/watch"
24-
vpav1beta2 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2"
24+
vpav1 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1"
2525
"k8s.io/autoscaler/vertical-pod-autoscaler/pkg/client/clientset/versioned"
2626
"k8s.io/client-go/rest"
2727
"k8s.io/client-go/tools/cache"
@@ -69,7 +69,7 @@ func (f *vpaFactory) MetricFamilyGenerators() []generator.FamilyGenerator {
6969
metric.Gauge,
7070
basemetrics.ALPHA,
7171
"",
72-
wrapVPAFunc(func(a *vpav1beta2.VerticalPodAutoscaler) *metric.Family {
72+
wrapVPAFunc(func(a *vpav1.VerticalPodAutoscaler) *metric.Family {
7373
annotationKeys, annotationValues := kubeMapToPrometheusLabels("annotation", a.Annotations)
7474
return &metric.Family{
7575
Metrics: []*metric.Metric{
@@ -88,7 +88,7 @@ func (f *vpaFactory) MetricFamilyGenerators() []generator.FamilyGenerator {
8888
metric.Gauge,
8989
basemetrics.ALPHA,
9090
"",
91-
wrapVPAFunc(func(a *vpav1beta2.VerticalPodAutoscaler) *metric.Family {
91+
wrapVPAFunc(func(a *vpav1.VerticalPodAutoscaler) *metric.Family {
9292
labelKeys, labelValues := kubeMapToPrometheusLabels("label", a.Labels)
9393
return &metric.Family{
9494
Metrics: []*metric.Metric{
@@ -107,7 +107,7 @@ func (f *vpaFactory) MetricFamilyGenerators() []generator.FamilyGenerator {
107107
metric.Gauge,
108108
basemetrics.ALPHA,
109109
"",
110-
wrapVPAFunc(func(a *vpav1beta2.VerticalPodAutoscaler) *metric.Family {
110+
wrapVPAFunc(func(a *vpav1.VerticalPodAutoscaler) *metric.Family {
111111
ms := []*metric.Metric{}
112112

113113
if a.Spec.UpdatePolicy == nil || a.Spec.UpdatePolicy.UpdateMode == nil {
@@ -116,11 +116,11 @@ func (f *vpaFactory) MetricFamilyGenerators() []generator.FamilyGenerator {
116116
}
117117
}
118118

119-
for _, mode := range []vpav1beta2.UpdateMode{
120-
vpav1beta2.UpdateModeOff,
121-
vpav1beta2.UpdateModeInitial,
122-
vpav1beta2.UpdateModeRecreate,
123-
vpav1beta2.UpdateModeAuto,
119+
for _, mode := range []vpav1.UpdateMode{
120+
vpav1.UpdateModeOff,
121+
vpav1.UpdateModeInitial,
122+
vpav1.UpdateModeRecreate,
123+
vpav1.UpdateModeAuto,
124124
} {
125125
var v float64
126126
if *a.Spec.UpdatePolicy.UpdateMode == mode {
@@ -146,7 +146,7 @@ func (f *vpaFactory) MetricFamilyGenerators() []generator.FamilyGenerator {
146146
metric.Gauge,
147147
basemetrics.ALPHA,
148148
"",
149-
wrapVPAFunc(func(a *vpav1beta2.VerticalPodAutoscaler) *metric.Family {
149+
wrapVPAFunc(func(a *vpav1.VerticalPodAutoscaler) *metric.Family {
150150
ms := []*metric.Metric{}
151151
if a.Spec.ResourcePolicy == nil || a.Spec.ResourcePolicy.ContainerPolicies == nil {
152152
return &metric.Family{
@@ -169,7 +169,7 @@ func (f *vpaFactory) MetricFamilyGenerators() []generator.FamilyGenerator {
169169
metric.Gauge,
170170
basemetrics.ALPHA,
171171
"",
172-
wrapVPAFunc(func(a *vpav1beta2.VerticalPodAutoscaler) *metric.Family {
172+
wrapVPAFunc(func(a *vpav1.VerticalPodAutoscaler) *metric.Family {
173173
ms := []*metric.Metric{}
174174
if a.Spec.ResourcePolicy == nil || a.Spec.ResourcePolicy.ContainerPolicies == nil {
175175
return &metric.Family{
@@ -191,7 +191,7 @@ func (f *vpaFactory) MetricFamilyGenerators() []generator.FamilyGenerator {
191191
metric.Gauge,
192192
basemetrics.ALPHA,
193193
"",
194-
wrapVPAFunc(func(a *vpav1beta2.VerticalPodAutoscaler) *metric.Family {
194+
wrapVPAFunc(func(a *vpav1.VerticalPodAutoscaler) *metric.Family {
195195
ms := []*metric.Metric{}
196196
if a.Status.Recommendation == nil || a.Status.Recommendation.ContainerRecommendations == nil {
197197
return &metric.Family{
@@ -213,7 +213,7 @@ func (f *vpaFactory) MetricFamilyGenerators() []generator.FamilyGenerator {
213213
metric.Gauge,
214214
basemetrics.ALPHA,
215215
"",
216-
wrapVPAFunc(func(a *vpav1beta2.VerticalPodAutoscaler) *metric.Family {
216+
wrapVPAFunc(func(a *vpav1.VerticalPodAutoscaler) *metric.Family {
217217
ms := []*metric.Metric{}
218218
if a.Status.Recommendation == nil || a.Status.Recommendation.ContainerRecommendations == nil {
219219
return &metric.Family{
@@ -235,7 +235,7 @@ func (f *vpaFactory) MetricFamilyGenerators() []generator.FamilyGenerator {
235235
metric.Gauge,
236236
basemetrics.ALPHA,
237237
"",
238-
wrapVPAFunc(func(a *vpav1beta2.VerticalPodAutoscaler) *metric.Family {
238+
wrapVPAFunc(func(a *vpav1.VerticalPodAutoscaler) *metric.Family {
239239
ms := []*metric.Metric{}
240240
if a.Status.Recommendation == nil || a.Status.Recommendation.ContainerRecommendations == nil {
241241
return &metric.Family{
@@ -256,7 +256,7 @@ func (f *vpaFactory) MetricFamilyGenerators() []generator.FamilyGenerator {
256256
metric.Gauge,
257257
basemetrics.ALPHA,
258258
"",
259-
wrapVPAFunc(func(a *vpav1beta2.VerticalPodAutoscaler) *metric.Family {
259+
wrapVPAFunc(func(a *vpav1.VerticalPodAutoscaler) *metric.Family {
260260
ms := []*metric.Metric{}
261261
if a.Status.Recommendation == nil || a.Status.Recommendation.ContainerRecommendations == nil {
262262
return &metric.Family{
@@ -275,10 +275,10 @@ func (f *vpaFactory) MetricFamilyGenerators() []generator.FamilyGenerator {
275275
}
276276

277277
func (f *vpaFactory) ExpectedType() interface{} {
278-
return &vpav1beta2.VerticalPodAutoscaler{
278+
return &vpav1.VerticalPodAutoscaler{
279279
TypeMeta: metav1.TypeMeta{
280280
Kind: "VerticalPodAutoscaler",
281-
APIVersion: vpav1beta2.SchemeGroupVersion.String(),
281+
APIVersion: vpav1.SchemeGroupVersion.String(),
282282
},
283283
}
284284
}
@@ -309,9 +309,9 @@ func vpaResourcesToMetrics(containerName string, resources corev1.ResourceList)
309309
return ms
310310
}
311311

312-
func wrapVPAFunc(f func(*vpav1beta2.VerticalPodAutoscaler) *metric.Family) func(interface{}) *metric.Family {
312+
func wrapVPAFunc(f func(*vpav1.VerticalPodAutoscaler) *metric.Family) func(interface{}) *metric.Family {
313313
return func(obj interface{}) *metric.Family {
314-
vpa := obj.(*vpav1beta2.VerticalPodAutoscaler)
314+
vpa := obj.(*vpav1.VerticalPodAutoscaler)
315315

316316
metricFamily := f(vpa)
317317
targetRef := vpa.Spec.TargetRef
@@ -338,11 +338,11 @@ func (f *vpaFactory) ListWatch(customResourceClient interface{}, ns string, fiel
338338
return &cache.ListWatch{
339339
ListFunc: func(opts metav1.ListOptions) (runtime.Object, error) {
340340
opts.FieldSelector = fieldSelector
341-
return vpaClient.AutoscalingV1beta2().VerticalPodAutoscalers(ns).List(ctx, opts)
341+
return vpaClient.AutoscalingV1().VerticalPodAutoscalers(ns).List(ctx, opts)
342342
},
343343
WatchFunc: func(opts metav1.ListOptions) (watch.Interface, error) {
344344
opts.FieldSelector = fieldSelector
345-
return vpaClient.AutoscalingV1beta2().VerticalPodAutoscalers(ns).Watch(ctx, opts)
345+
return vpaClient.AutoscalingV1().VerticalPodAutoscalers(ns).Watch(ctx, opts)
346346
},
347347
}
348348
}

pkg/collector/corechecks/cluster/ksm/kubernetes_state.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ var collectorNameReplacement = map[string]string{
7878
"customresourcedefinitions": "apiextensions.k8s.io/v1, Resource=customresourcedefinitions",
7979
// verticalpodautoscalers were removed from the built-in KSM metrics in KSM 2.9, and the changes made to
8080
// the KSM builder in KSM 2.9 result in the detected custom resource store name being different.
81-
"verticalpodautoscalers": "autoscaling.k8s.io/v1beta2, Resource=verticalpodautoscalers",
81+
"verticalpodautoscalers": "autoscaling.k8s.io/v1, Resource=verticalpodautoscalers",
8282
}
8383

8484
var matchAllCap = regexp.MustCompile("([a-z0-9])([A-Z])")
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Each section from every release note are combined when the
2+
# CHANGELOG.rst is rendered. So the text needs to be worded so that
3+
# it does not depend on any information only available in another
4+
# section. This may mean repeating some details, but each section
5+
# must be readable independently of the other.
6+
#
7+
# Each section note must be formatted as reStructuredText.
8+
---
9+
deprecations:
10+
- |
11+
The Kubernetes State check no longer supports VPA versions <0.7.0.
12+
fixes:
13+
- |
14+
Fixes a bug where the Kubernetes State check could not generate VPA metrics for VPA versions 1.3.0+

0 commit comments

Comments
 (0)