2021-09-23 12:58:45 +00:00
|
|
|
apiVersion: nfd.k8s-sigs.io/v1alpha1
|
|
|
|
kind: NodeFeatureRule
|
|
|
|
metadata:
|
|
|
|
name: my-sample-rule-object
|
|
|
|
spec:
|
|
|
|
rules:
|
|
|
|
- name: "my sample rule"
|
|
|
|
labels:
|
Option to stop implicitly adding default prefix to names
Add new autoDefaultNs (default is "true") config option to nfd-master.
Setting the config option to false stops NFD from automatically adding
the "feature.node.kubernetes.io/" prefix to labels, annotations and
extended resources. Taints are not affected as for them no prefix is
automatically added. The user-visible part of enabling the option change
is that NodeFeatureRules, local feature files, hooks and configuration
of the "custom" may need to be altereda (if the auto-prefixing is
relied on).
For now, the config option defaults to "true", meaning no change in
default behavior. However, the intent is to change the default to
"false" in a future release, deprecating the option and eventually
removing it (forcing it to "false").
The goal of stopping doing "auto-prefixing" is to simplify the operation
(of nfd and users). Make the naming more straightforward and easier to
understand and debug (kind of WYSIWYG), eliminating peculiar corner
cases:
1. Make validation simpler and unambiguous
2. Remove "overloading" of names, i.e. the mapping two values to the
same actual name. E.g. previously something like
labels:
feature.node.kubernetes.io/foo: bar
foo: baz
Could actually result in node label:
feature.node.kubernetes.io/foo: baz
3. Make the processing/usagee of the "rule.matched" and "local.labels"
feature in NodeFeatureRules unambiguous and more understadable. E.g.
previously you could have node label
"feature.node.kubernetes.io/local-foo: bar" but in the NodeFeatureRule
you'd need to use the unprefixed name "local-foo" or the fully
prefixed name, depending on what was specified in the feature file (or
hook) on the node(s).
NOTE: setting autoDefaultNs to false is a breaking change for users who
rely on automatic prefixing with the default feature.node.kubernetes.io/
namespace. NodeFeatureRules, feature files, hooks and custom rules
(configuration of the "custom" source of nfd-worker) will need to be
altered. Unprefixed labels, annoations and extended resources will be
denied by nfd-master.
2023-11-08 07:51:19 +00:00
|
|
|
"vendor.io/my-sample-feature": "true"
|
2021-09-23 12:58:45 +00:00
|
|
|
matchFeatures:
|
|
|
|
- feature: kernel.loadedmodule
|
|
|
|
matchExpressions:
|
2023-11-01 14:55:56 +00:00
|
|
|
dummy: { op: Exists }
|
2021-09-23 12:58:45 +00:00
|
|
|
- feature: kernel.config
|
|
|
|
matchExpressions:
|
2023-11-01 14:55:56 +00:00
|
|
|
X86: { op: In, value: ["y"] }
|
2023-03-10 10:39:41 +00:00
|
|
|
---
|
|
|
|
apiVersion: nfd.k8s-sigs.io/v1alpha1
|
|
|
|
kind: NodeFeatureRule
|
|
|
|
metadata:
|
|
|
|
name: my-sample-extened-resource
|
|
|
|
spec:
|
|
|
|
rules:
|
|
|
|
- name: "my sample rule"
|
|
|
|
extendedResources:
|
|
|
|
vendor.io/dynamic: "@kernel.version.major"
|
|
|
|
vendor.io/static: "123"
|
|
|
|
matchFeatures:
|
|
|
|
- feature: kernel.version
|
|
|
|
matchExpressions:
|
2023-11-01 14:55:56 +00:00
|
|
|
major: { op: Exists }
|