Skip to content

Commit 4da7c3d

Browse files
authored
Merge pull request #2184 from Nordix/prefixless-extended-resources
Allow unprefixed extended resources via feature-gate
2 parents eae1710 + b59c8fe commit 4da7c3d

File tree

3 files changed

+52
-11
lines changed

3 files changed

+52
-11
lines changed

docs/usage/customization-guide.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -724,10 +724,10 @@ Resources names:
724724
generally be used
725725
- the only exception is `feature.node.kubernetes.io/` and its sub-namespaces
726726
(like `sub.ns.feature.node.kubernetes.io`)
727-
- unprefixed names (like `my-er`) site.version }} unprefixed names will be
728-
automatically prefixed with `feature.node.kubernetes.io/` but this will
729-
change in a future version (see the
730-
[DisableAutoPrefix](../reference/feature-gates.md#disableautoprefix) feature gate).
727+
- if an unprefixed name (e.g., `my-er`) is used, NFD {{ site.version }}
728+
will automatically prefix it with `feature.node.kubernetes.io/` unless the
729+
`DisableAutoPrefix` feature gate is set to true, in which case no prefixing
730+
occurs.
731731

732732
> **NOTE:** `.extendedResources` is not supported by the
733733
> [custom feature source](#custom-feature-source) -- it can only be used in

pkg/nfd-master/nfd-master-internal_test.go

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -379,12 +379,13 @@ func TestFilterLabels(t *testing.T) {
379379
}
380380

381381
type TC struct {
382-
description string
383-
labelName string
384-
labelValue string
385-
features nfdv1alpha1.Features
386-
expectErr bool
387-
expectedValue string
382+
description string
383+
labelName string
384+
labelValue string
385+
features nfdv1alpha1.Features
386+
expectErr bool
387+
expectedValue string
388+
expectedExtResources ExtendedResources
388389
}
389390

390391
tcs := []TC{
@@ -459,6 +460,24 @@ func TestFilterLabels(t *testing.T) {
459460
}
460461
})
461462
}
463+
464+
tcs = []TC{
465+
{
466+
description: "Unprefixed extended resources should not be allowed",
467+
expectedExtResources: ExtendedResources{},
468+
},
469+
}
470+
471+
extendedResources := ExtendedResources{"micromicrowaves": "10", "tooster": "5"}
472+
for _, tc := range tcs {
473+
t.Run(tc.description, func(t *testing.T) {
474+
outExtendedResources := fakeMaster.filterExtendedResources(&tc.features, extendedResources)
475+
Convey("Unprefixed extended resources should npotbe allowed", t, func() {
476+
So(outExtendedResources, ShouldEqual, tc.expectedExtResources)
477+
})
478+
})
479+
}
480+
462481
// Create a new fake master with the feature gate enabled
463482
fakeMaster = newFakeMasterWithFeatureGate()
464483
tcs = []TC{
@@ -481,6 +500,26 @@ func TestFilterLabels(t *testing.T) {
481500
})
482501
})
483502
}
503+
504+
tcs = []TC{
505+
{
506+
description: "Unprefixed extended resources should be allowed",
507+
expectedExtResources: ExtendedResources{
508+
"micromicrowaves": "10",
509+
"tooster": "5",
510+
},
511+
},
512+
}
513+
514+
extendedResources = ExtendedResources{"micromicrowaves": "10", "tooster": "5"}
515+
for _, tc := range tcs {
516+
t.Run(tc.description, func(t *testing.T) {
517+
outExtendedResources := fakeMaster.filterExtendedResources(&tc.features, extendedResources)
518+
Convey("Unprefixed extended resources should be allowed", t, func() {
519+
So(outExtendedResources, ShouldEqual, tc.expectedExtResources)
520+
})
521+
})
522+
}
484523
}
485524

486525
func TestCreatePatches(t *testing.T) {

pkg/nfd-master/nfd-master.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -809,7 +809,9 @@ func filterExtendedResource(name, value string, features *nfdv1alpha1.Features)
809809
// Validate
810810
err := validate.ExtendedResource(name, filteredValue)
811811
if err != nil {
812-
return "", err
812+
if !nfdfeatures.NFDFeatureGate.Enabled(nfdfeatures.DisableAutoPrefix) || err != validate.ErrUnprefixedKeysNotAllowed {
813+
return "", err
814+
}
813815
}
814816

815817
return filteredValue, nil

0 commit comments

Comments
 (0)