Update custom-metrics-apiserver and metrics-server

This commit is contained in:
Johannes Würbach 2020-09-27 22:14:53 +02:00
parent 4c673534f2
commit b480e45a67
No known key found for this signature in database
GPG key ID: 74DB0F4D956CCCE3
915 changed files with 63694 additions and 106514 deletions

View file

@ -76,25 +76,30 @@ func (m *nodeMetrics) NewList() runtime.Object {
// Lister interface
func (m *nodeMetrics) List(ctx context.Context, options *metainternalversion.ListOptions) (runtime.Object, error) {
labelSelector := labels.Everything()
fieldSelector := fields.Everything()
if options != nil && options.LabelSelector != nil {
labelSelector = options.LabelSelector
}
if options != nil && options.FieldSelector != nil {
fieldSelector = options.FieldSelector
}
nodes, err := m.nodeLister.ListWithPredicate(func(node *v1.Node) bool {
if labelSelector.Empty() && fieldSelector.Empty() {
return true
}
fieldsSet := generic.AddObjectMetaFieldsSet(make(fields.Set, 2), &node.ObjectMeta, true)
return labelSelector.Matches(labels.Set(node.Labels)) && fieldSelector.Matches(fieldsSet)
})
nodes, err := m.nodeLister.List(labelSelector)
if err != nil {
errMsg := fmt.Errorf("Error while listing nodes for selector %v: %v", labelSelector, err)
klog.Error(errMsg)
return &metrics.NodeMetricsList{}, errMsg
}
if options != nil && options.FieldSelector != nil {
newNodes := make([]*v1.Node, 0, len(nodes))
fields := make(fields.Set, 2)
for _, node := range nodes {
for k := range fields {
delete(fields, k)
}
fieldsSet := generic.AddObjectMetaFieldsSet(fields, &node.ObjectMeta, true)
if !options.FieldSelector.Matches(fieldsSet) {
continue
}
newNodes = append(newNodes, node)
}
nodes = newNodes
}
names := make([]string, len(nodes))
for i, node := range nodes {
@ -185,17 +190,11 @@ func addNodeMetricsToTable(table *metav1beta1.Table, nodes ...metrics.NodeMetric
}
func (m *nodeMetrics) getNodeMetrics(names ...string) ([]metrics.NodeMetrics, error) {
timestamps, usages, err := m.metrics.GetNodeMetrics(names...)
if err != nil {
return nil, err
}
timestamps, usages := m.metrics.GetNodeMetrics(names...)
res := make([]metrics.NodeMetrics, 0, len(names))
for i, name := range names {
if usages[i] == nil {
klog.Errorf("unable to fetch node metrics for node %q: no metrics known for node", name)
continue
}
res = append(res, metrics.NodeMetrics{