go.mod: bump metrics-server

Include a fix to the NodeMetrics and PodMetrics APIs to match k8s
conventions.
- NodeMetrics and PodMetrics now have labels as they can be filtered by
them
- Field selector is now applied to NodeMetrics and PodMetrics instead
of Nodes and Pods

Signed-off-by: Damien Grisonnet <dgrisonn@redhat.com>
This commit is contained in:
Damien Grisonnet 2020-12-02 18:28:56 +01:00
parent e0ddb886a7
commit 6d8a82f423
5 changed files with 63 additions and 29 deletions

View file

@ -120,6 +120,22 @@ func (m *podMetrics) List(ctx context.Context, options *metainternalversion.List
return &metrics.PodMetricsList{}, errMsg
}
if options != nil && options.FieldSelector != nil {
newMetrics := make([]metrics.PodMetrics, 0, len(metricsItems))
fields := make(fields.Set, 2)
for _, metric := range metricsItems {
for k := range fields {
delete(fields, k)
}
fieldsSet := generic.AddObjectMetaFieldsSet(fields, &metric.ObjectMeta, true)
if !options.FieldSelector.Matches(fieldsSet) {
continue
}
newMetrics = append(newMetrics, metric)
}
metricsItems = newMetrics
}
return &metrics.PodMetricsList{Items: metricsItems}, nil
}
@ -246,6 +262,7 @@ func (m *podMetrics) getPodMetrics(pods ...*v1.Pod) ([]metrics.PodMetrics, error
Name: pod.Name,
Namespace: pod.Namespace,
CreationTimestamp: metav1.NewTime(myClock.Now()),
Labels: pod.Labels,
},
Timestamp: metav1.NewTime(timestamps[i].Timestamp),
Window: metav1.Duration{Duration: timestamps[i].Window},