@@ -20,6 +20,7 @@ import (
2020 "crypto/tls"
2121 "crypto/x509"
2222 "fmt"
23+ "maps"
2324 "net"
2425 "os"
2526 "path"
@@ -477,11 +478,9 @@ func (m *nfdMaster) prune() error {
477478 if err != nil {
478479 return err
479480 }
480- for a := range node .Annotations {
481- if strings .HasPrefix (a , m .instanceAnnotation (nfdv1alpha1 .AnnotationNs )) {
482- delete (node .Annotations , a )
483- }
484- }
481+ maps .DeleteFunc (node .Annotations , func (k , v string ) bool {
482+ return strings .HasPrefix (k , m .instanceAnnotation (nfdv1alpha1 .AnnotationNs ))
483+ })
485484 err = m .apihelper .UpdateNode (cli , node )
486485 if err != nil {
487486 return fmt .Errorf ("failed to prune annotations from node %q: %v" , node .Name , err )
@@ -812,18 +811,14 @@ func (m *nfdMaster) refreshNodeFeatures(cli *kubernetes.Clientset, nodeName stri
812811 crLabels , crAnnotations , crExtendedResources , crTaints := m .processNodeFeatureRule (nodeName , features )
813812
814813 // Mix in CR-originated labels
815- for k , v := range crLabels {
816- labels [k ] = v
817- }
814+ maps .Copy (labels , crLabels )
818815
819816 // Remove labels which are intended to be extended resources via
820817 // -resource-labels or their NS is not whitelisted
821818 labels , extendedResources := m .filterFeatureLabels (labels , features )
822819
823820 // Mix in CR-originated extended resources with -resource-labels
824- for k , v := range crExtendedResources {
825- extendedResources [k ] = v
826- }
821+ maps .Copy (extendedResources , crExtendedResources )
827822 extendedResources = m .filterExtendedResources (features , extendedResources )
828823
829824 // Annotations
@@ -991,15 +986,9 @@ func (m *nfdMaster) processNodeFeatureRule(nodeName string, features *nfdv1alpha
991986 e = addNsToMapKeys (ruleOut .ExtendedResources , nfdv1alpha1 .ExtendedResourceNs )
992987 a = addNsToMapKeys (ruleOut .Annotations , nfdv1alpha1 .FeatureAnnotationNs )
993988 }
994- for k , v := range l {
995- labels [k ] = v
996- }
997- for k , v := range e {
998- extendedResources [k ] = v
999- }
1000- for k , v := range a {
1001- annotations [k ] = v
1002- }
989+ maps .Copy (labels , l )
990+ maps .Copy (extendedResources , e )
991+ maps .Copy (annotations , a )
1003992
1004993 // Feed back rule output to features map for subsequent rules to match
1005994 features .InsertAttributeFeatures (nfdv1alpha1 .RuleBackrefDomain , nfdv1alpha1 .RuleBackrefFeature , ruleOut .Labels )
@@ -1061,9 +1050,7 @@ func (m *nfdMaster) updateNodeObject(cli *kubernetes.Clientset, nodeName string,
10611050 }
10621051 sort .Strings (annotationKeys )
10631052 annotations [m .instanceAnnotation (nfdv1alpha1 .FeatureAnnotationsTrackingAnnotation )] = strings .Join (annotationKeys , "," )
1064- for k , v := range featureAnnotations {
1065- annotations [k ] = v
1066- }
1053+ maps .Copy (annotations , featureAnnotations )
10671054 }
10681055
10691056 // Create JSON patches for changes in labels and annotations
0 commit comments