...

Text file src/edge-infra.dev/test/fixtures/warehouse/layout/blobs/sha256/c5fdc8ae5d94a90a566c64c056b4820e214c6506ad3abd5b71dfe4a4454a6c6e

Documentation: edge-infra.dev/test/fixtures/warehouse/layout/blobs/sha256

     1apiVersion: v1
     2kind: Namespace
     3metadata:
     4  name: nfd
     5  labels:
     6    workload.edge.ncr.com: platform
     7    platform.edge.ncr.com/component: node-feature-discovery
     8  annotations:
     9    pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
    10    pallet.edge.ncr.com/name: nfd
    11    pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
    12    pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
    13    pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
    14    pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
    15---
    16apiVersion: apiextensions.k8s.io/v1
    17kind: CustomResourceDefinition
    18metadata:
    19  name: nodefeaturerules.nfd.k8s-sigs.io
    20  labels:
    21    platform.edge.ncr.com/component: node-feature-discovery
    22  annotations:
    23    controller-gen.kubebuilder.io/version: v0.9.2
    24    pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
    25    pallet.edge.ncr.com/name: nfd
    26    pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
    27    pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
    28    pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
    29    pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
    30spec:
    31  group: nfd.k8s-sigs.io
    32  names:
    33    kind: NodeFeatureRule
    34    listKind: NodeFeatureRuleList
    35    plural: nodefeaturerules
    36    shortNames:
    37    - nfr
    38    singular: nodefeaturerule
    39  scope: Cluster
    40  versions:
    41  - name: v1alpha1
    42    schema:
    43      openAPIV3Schema:
    44        type: object
    45        description: NodeFeatureRule resource specifies a configuration for feature-based customization of node objects, such as node labeling.
    46        properties:
    47          apiVersion:
    48            type: string
    49            description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    50          kind:
    51            type: string
    52            description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    53          metadata:
    54            type: object
    55          spec:
    56            type: object
    57            description: NodeFeatureRuleSpec describes a NodeFeatureRule.
    58            properties:
    59              rules:
    60                type: array
    61                description: Rules is a list of node customization rules.
    62                items:
    63                  type: object
    64                  description: Rule defines a rule for node customization such as labeling.
    65                  properties:
    66                    name:
    67                      type: string
    68                      description: Name of the rule.
    69                    labels:
    70                      type: object
    71                      additionalProperties:
    72                        type: string
    73                      description: Labels to create if the rule matches.
    74                    labelsTemplate:
    75                      type: string
    76                      description: LabelsTemplate specifies a template to expand for dynamically generating multiple labels. Data (after template expansion) must be keys with an optional value (<key>[=<value>]) separated by newlines.
    77                    matchAny:
    78                      type: array
    79                      description: MatchAny specifies a list of matchers one of which must match.
    80                      items:
    81                        type: object
    82                        description: MatchAnyElem specifies one sub-matcher of MatchAny.
    83                        properties:
    84                          matchFeatures:
    85                            type: array
    86                            description: MatchFeatures specifies a set of matcher terms all of which must match.
    87                            items:
    88                              type: object
    89                              description: FeatureMatcherTerm defines requirements against one feature set. All requirements (specified as MatchExpressions) are evaluated against each element in the feature set.
    90                              properties:
    91                                feature:
    92                                  type: string
    93                                matchExpressions:
    94                                  type: object
    95                                  additionalProperties:
    96                                    type: object
    97                                    description: "MatchExpression specifies an expression to evaluate against a set of input values. It contains an operator that is applied when matching the input and an array of values that the operator evaluates the input against. \n NB: CreateMatchExpression or MustCreateMatchExpression() should be used for creating new instances. \n NB: Validate() must be called if Op or Value fields are modified or if a new instance is created from scratch without using the helper functions."
    98                                    properties:
    99                                      value:
   100                                        type: array
   101                                        description: Value is the list of values that the operand evaluates the input against. Value should be empty if the operator is Exists, DoesNotExist, IsTrue or IsFalse. Value should contain exactly one element if the operator is Gt or Lt and exactly two elements if the operator is GtLt. In other cases Value should contain at least one element.
   102                                        items:
   103                                          type: string
   104                                      op:
   105                                        type: string
   106                                        description: Op is the operator to be applied.
   107                                        enum:
   108                                        - In
   109                                        - NotIn
   110                                        - InRegexp
   111                                        - Exists
   112                                        - DoesNotExist
   113                                        - Gt
   114                                        - Lt
   115                                        - GtLt
   116                                        - IsTrue
   117                                        - IsFalse
   118                                    required:
   119                                    - op
   120                                  description: MatchExpressionSet contains a set of MatchExpressions, each of which is evaluated against a set of input values.
   121                              required:
   122                              - feature
   123                              - matchExpressions
   124                        required:
   125                        - matchFeatures
   126                    matchFeatures:
   127                      type: array
   128                      description: MatchFeatures specifies a set of matcher terms all of which must match.
   129                      items:
   130                        type: object
   131                        description: FeatureMatcherTerm defines requirements against one feature set. All requirements (specified as MatchExpressions) are evaluated against each element in the feature set.
   132                        properties:
   133                          feature:
   134                            type: string
   135                          matchExpressions:
   136                            type: object
   137                            additionalProperties:
   138                              type: object
   139                              description: "MatchExpression specifies an expression to evaluate against a set of input values. It contains an operator that is applied when matching the input and an array of values that the operator evaluates the input against. \n NB: CreateMatchExpression or MustCreateMatchExpression() should be used for creating new instances. \n NB: Validate() must be called if Op or Value fields are modified or if a new instance is created from scratch without using the helper functions."
   140                              properties:
   141                                value:
   142                                  type: array
   143                                  description: Value is the list of values that the operand evaluates the input against. Value should be empty if the operator is Exists, DoesNotExist, IsTrue or IsFalse. Value should contain exactly one element if the operator is Gt or Lt and exactly two elements if the operator is GtLt. In other cases Value should contain at least one element.
   144                                  items:
   145                                    type: string
   146                                op:
   147                                  type: string
   148                                  description: Op is the operator to be applied.
   149                                  enum:
   150                                  - In
   151                                  - NotIn
   152                                  - InRegexp
   153                                  - Exists
   154                                  - DoesNotExist
   155                                  - Gt
   156                                  - Lt
   157                                  - GtLt
   158                                  - IsTrue
   159                                  - IsFalse
   160                              required:
   161                              - op
   162                            description: MatchExpressionSet contains a set of MatchExpressions, each of which is evaluated against a set of input values.
   163                        required:
   164                        - feature
   165                        - matchExpressions
   166                    taints:
   167                      type: array
   168                      description: Taints to create if the rule matches.
   169                      items:
   170                        type: object
   171                        description: The node this Taint is attached to has the "effect" on any pod that does not tolerate the Taint.
   172                        properties:
   173                          value:
   174                            type: string
   175                            description: The taint value corresponding to the taint key.
   176                          effect:
   177                            type: string
   178                            description: Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
   179                          key:
   180                            type: string
   181                            description: Required. The taint key to be applied to a node.
   182                          timeAdded:
   183                            type: string
   184                            description: TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.
   185                            format: date-time
   186                        required:
   187                        - effect
   188                        - key
   189                    vars:
   190                      type: object
   191                      additionalProperties:
   192                        type: string
   193                      description: Vars is the variables to store if the rule matches. Variables do not directly inflict any changes in the node object. However, they can be referenced from other rules enabling more complex rule hierarchies, without exposing intermediary output values as labels.
   194                    varsTemplate:
   195                      type: string
   196                      description: VarsTemplate specifies a template to expand for dynamically generating multiple variables. Data (after template expansion) must be keys with an optional value (<key>[=<value>]) separated by newlines.
   197                  required:
   198                  - name
   199            required:
   200            - rules
   201        required:
   202        - spec
   203    served: true
   204    storage: true
   205---
   206apiVersion: apiextensions.k8s.io/v1
   207kind: CustomResourceDefinition
   208metadata:
   209  name: nodefeatures.nfd.k8s-sigs.io
   210  labels:
   211    platform.edge.ncr.com/component: node-feature-discovery
   212  annotations:
   213    controller-gen.kubebuilder.io/version: v0.9.2
   214    pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
   215    pallet.edge.ncr.com/name: nfd
   216    pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
   217    pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
   218    pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
   219    pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
   220spec:
   221  group: nfd.k8s-sigs.io
   222  names:
   223    kind: NodeFeature
   224    listKind: NodeFeatureList
   225    plural: nodefeatures
   226    singular: nodefeature
   227  scope: Namespaced
   228  versions:
   229  - name: v1alpha1
   230    schema:
   231      openAPIV3Schema:
   232        type: object
   233        description: NodeFeature resource holds the features discovered for one node in the cluster.
   234        properties:
   235          apiVersion:
   236            type: string
   237            description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
   238          kind:
   239            type: string
   240            description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   241          metadata:
   242            type: object
   243          spec:
   244            type: object
   245            description: NodeFeatureSpec describes a NodeFeature object.
   246            properties:
   247              labels:
   248                type: object
   249                additionalProperties:
   250                  type: string
   251                description: Labels is the set of node labels that are requested to be created.
   252              features:
   253                type: object
   254                description: Features is the full "raw" features data that has been discovered.
   255                properties:
   256                  attributes:
   257                    type: object
   258                    additionalProperties:
   259                      type: object
   260                      description: AttributeFeatureSet is a set of features having string value.
   261                      properties:
   262                        elements:
   263                          type: object
   264                          additionalProperties:
   265                            type: string
   266                      required:
   267                      - elements
   268                  flags:
   269                    type: object
   270                    additionalProperties:
   271                      type: object
   272                      description: FlagFeatureSet is a set of simple features only containing names without values.
   273                      properties:
   274                        elements:
   275                          type: object
   276                          additionalProperties:
   277                            type: object
   278                            description: Nil is a dummy empty struct for protobuf compatibility
   279                      required:
   280                      - elements
   281                  instances:
   282                    type: object
   283                    additionalProperties:
   284                      type: object
   285                      description: InstanceFeatureSet is a set of features each of which is an instance having multiple attributes.
   286                      properties:
   287                        elements:
   288                          type: array
   289                          items:
   290                            type: object
   291                            description: InstanceFeature represents one instance of a complex features, e.g. a device.
   292                            properties:
   293                              attributes:
   294                                type: object
   295                                additionalProperties:
   296                                  type: string
   297                            required:
   298                            - attributes
   299                      required:
   300                      - elements
   301                required:
   302                - attributes
   303                - flags
   304                - instances
   305            required:
   306            - features
   307        required:
   308        - spec
   309    served: true
   310    storage: true
   311---
   312apiVersion: v1
   313kind: ServiceAccount
   314metadata:
   315  name: nfd-master
   316  namespace: nfd
   317  labels:
   318    platform.edge.ncr.com/component: node-feature-discovery
   319  annotations:
   320    pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
   321    pallet.edge.ncr.com/name: nfd
   322    pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
   323    pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
   324    pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
   325    pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
   326---
   327apiVersion: v1
   328kind: ServiceAccount
   329metadata:
   330  name: nfd-worker
   331  namespace: nfd
   332  labels:
   333    platform.edge.ncr.com/component: node-feature-discovery
   334  annotations:
   335    pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
   336    pallet.edge.ncr.com/name: nfd
   337    pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
   338    pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
   339    pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
   340    pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
   341---
   342apiVersion: rbac.authorization.k8s.io/v1
   343kind: Role
   344metadata:
   345  name: nfd-worker
   346  namespace: nfd
   347  labels:
   348    platform.edge.ncr.com/component: node-feature-discovery
   349  annotations:
   350    pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
   351    pallet.edge.ncr.com/name: nfd
   352    pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
   353    pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
   354    pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
   355    pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
   356rules:
   357- resources:
   358  - nodefeatures
   359  apiGroups:
   360  - nfd.k8s-sigs.io
   361  verbs:
   362  - create
   363  - get
   364  - update
   365---
   366apiVersion: rbac.authorization.k8s.io/v1
   367kind: ClusterRole
   368metadata:
   369  name: nfd-master
   370  labels:
   371    platform.edge.ncr.com/component: node-feature-discovery
   372  annotations:
   373    pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
   374    pallet.edge.ncr.com/name: nfd
   375    pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
   376    pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
   377    pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
   378    pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
   379rules:
   380- resources:
   381  - nodes
   382  apiGroups:
   383  - ""
   384  verbs:
   385  - get
   386  - patch
   387  - update
   388  - list
   389- resources:
   390  - nodefeatures
   391  - nodefeaturerules
   392  apiGroups:
   393  - nfd.k8s-sigs.io
   394  verbs:
   395  - get
   396  - list
   397  - watch
   398---
   399apiVersion: rbac.authorization.k8s.io/v1
   400kind: RoleBinding
   401metadata:
   402  name: nfd-worker
   403  namespace: nfd
   404  labels:
   405    platform.edge.ncr.com/component: node-feature-discovery
   406  annotations:
   407    pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
   408    pallet.edge.ncr.com/name: nfd
   409    pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
   410    pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
   411    pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
   412    pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
   413roleRef:
   414  name: nfd-worker
   415  kind: Role
   416  apiGroup: rbac.authorization.k8s.io
   417subjects:
   418- name: nfd-worker
   419  namespace: nfd
   420  kind: ServiceAccount
   421---
   422apiVersion: rbac.authorization.k8s.io/v1
   423kind: ClusterRoleBinding
   424metadata:
   425  name: nfd-master
   426  labels:
   427    platform.edge.ncr.com/component: node-feature-discovery
   428  annotations:
   429    pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
   430    pallet.edge.ncr.com/name: nfd
   431    pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
   432    pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
   433    pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
   434    pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
   435roleRef:
   436  name: nfd-master
   437  kind: ClusterRole
   438  apiGroup: rbac.authorization.k8s.io
   439subjects:
   440- name: nfd-master
   441  namespace: nfd
   442  kind: ServiceAccount
   443---
   444apiVersion: v1
   445kind: ConfigMap
   446metadata:
   447  name: edge-custom-labels
   448  namespace: nfd
   449  labels:
   450    platform.edge.ncr.com/component: node-feature-discovery
   451  annotations:
   452    pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
   453    pallet.edge.ncr.com/name: nfd
   454    pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
   455    pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
   456    pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
   457    pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
   458data:
   459  edge-custom-labels.sh: "#! /bin/bash\n\n# dmi labels\nfor i in /sys/devices/virtual/dmi/id/*\ndo\n    if [ ! -f $i ]\n    then\n        continue\n    fi\n\n    fname=$(basename $i)\n    val=$(cat $i | tr ' /' '--')\n\n    if [ \"$val\" != \"\" ]\n    then\n        if [ \"$fname\" != \"uevent\" -a \"$fname\" != \"modalias\" ]\n        then\n            echo $fname=\"$val\"\n        fi\n    fi\n    \ndone\n\n# ien version\nif [ -f /ien-version ]; then\n    version=$(cat /ien-version)\n    if [ \"$version\" != \"\" ]; then\n        echo \"ien-version=\"$version\n    else\n        echo \"ien-version=v1.0.0\"\n    fi\nfi"
   460---
   461apiVersion: v1
   462kind: ConfigMap
   463metadata:
   464  name: nfd-worker-conf
   465  namespace: nfd
   466  labels:
   467    platform.edge.ncr.com/component: node-feature-discovery
   468  annotations:
   469    pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
   470    pallet.edge.ncr.com/name: nfd
   471    pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
   472    pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
   473    pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
   474    pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
   475data:
   476  nfd-worker.conf: |
   477    #core:
   478    #  labelWhiteList:
   479    #  noPublish: false
   480    #  sleepInterval: 60s
   481    #  featureSources: [all]
   482    #  labelSources: [all]
   483    #  klog:
   484    #    addDirHeader: false
   485    #    alsologtostderr: false
   486    #    logBacktraceAt:
   487    #    logtostderr: true
   488    #    skipHeaders: false
   489    #    stderrthreshold: 2
   490    #    v: 0
   491    #    vmodule:
   492    ##   NOTE: the following options are not dynamically run-time configurable
   493    ##         and require a nfd-worker restart to take effect after being changed
   494    #    logDir:
   495    #    logFile:
   496    #    logFileMaxSize: 1800
   497    #    skipLogHeaders: false
   498    #sources:
   499    #  cpu:
   500    #    cpuid:
   501    ##     NOTE: whitelist has priority over blacklist
   502    #      attributeBlacklist:
   503    #        - "BMI1"
   504    #        - "BMI2"
   505    #        - "CLMUL"
   506    #        - "CMOV"
   507    #        - "CX16"
   508    #        - "ERMS"
   509    #        - "F16C"
   510    #        - "HTT"
   511    #        - "LZCNT"
   512    #        - "MMX"
   513    #        - "MMXEXT"
   514    #        - "NX"
   515    #        - "POPCNT"
   516    #        - "RDRAND"
   517    #        - "RDSEED"
   518    #        - "RDTSCP"
   519    #        - "SGX"
   520    #        - "SSE"
   521    #        - "SSE2"
   522    #        - "SSE3"
   523    #        - "SSE4"
   524    #        - "SSE42"
   525    #        - "SSSE3"
   526    #      attributeWhitelist:
   527    #  kernel:
   528    #    kconfigFile: "/path/to/kconfig"
   529    #    configOpts:
   530    #      - "NO_HZ"
   531    #      - "X86"
   532    #      - "DMI"
   533    #  pci:
   534    #    deviceClassWhitelist:
   535    #      - "0200"
   536    #      - "03"
   537    #      - "12"
   538    #    deviceLabelFields:
   539    #      - "class"
   540    #      - "vendor"
   541    #      - "device"
   542    #      - "subsystem_vendor"
   543    #      - "subsystem_device"
   544    #  usb:
   545    #    deviceClassWhitelist:
   546    #      - "0e"
   547    #      - "ef"
   548    #      - "fe"
   549    #      - "ff"
   550    #    deviceLabelFields:
   551    #      - "class"
   552    #      - "vendor"
   553    #      - "device"
   554    #  local:
   555    #    hooksEnabled: true
   556    #  custom:
   557    #    # The following feature demonstrates the capabilities of the matchFeatures
   558    #    - name: "my custom rule"
   559    #      labels:
   560    #        my-ng-feature: "true"
   561    #      # matchFeatures implements a logical AND over all matcher terms in the
   562    #      # list (i.e. all of the terms, or per-feature matchers, must match)
   563    #      matchFeatures:
   564    #        - feature: cpu.cpuid
   565    #          matchExpressions:
   566    #            AVX512F: {op: Exists}
   567    #        - feature: cpu.cstate
   568    #          matchExpressions:
   569    #            enabled: {op: IsTrue}
   570    #        - feature: cpu.pstate
   571    #          matchExpressions:
   572    #            no_turbo: {op: IsFalse}
   573    #            scaling_governor: {op: In, value: ["performance"]}
   574    #        - feature: cpu.rdt
   575    #          matchExpressions:
   576    #            RDTL3CA: {op: Exists}
   577    #        - feature: cpu.sst
   578    #          matchExpressions:
   579    #            bf.enabled: {op: IsTrue}
   580    #        - feature: cpu.topology
   581    #          matchExpressions:
   582    #            hardware_multithreading: {op: IsFalse}
   583    #
   584    #        - feature: kernel.config
   585    #          matchExpressions:
   586    #            X86: {op: Exists}
   587    #            LSM: {op: InRegexp, value: ["apparmor"]}
   588    #        - feature: kernel.loadedmodule
   589    #          matchExpressions:
   590    #            e1000e: {op: Exists}
   591    #        - feature: kernel.selinux
   592    #          matchExpressions:
   593    #            enabled: {op: IsFalse}
   594    #        - feature: kernel.version
   595    #          matchExpressions:
   596    #            major: {op: In, value: ["5"]}
   597    #            minor: {op: Gt, value: ["10"]}
   598    #
   599    #        - feature: storage.block
   600    #          matchExpressions:
   601    #            rotational: {op: In, value: ["0"]}
   602    #            dax: {op: In, value: ["0"]}
   603    #
   604    #        - feature: network.device
   605    #          matchExpressions:
   606    #            operstate: {op: In, value: ["up"]}
   607    #            speed: {op: Gt, value: ["100"]}
   608    #
   609    #        - feature: memory.numa
   610    #          matchExpressions:
   611    #            node_count: {op: Gt, value: ["2"]}
   612    #        - feature: memory.nv
   613    #          matchExpressions:
   614    #            devtype: {op: In, value: ["nd_dax"]}
   615    #            mode: {op: In, value: ["memory"]}
   616    #
   617    #        - feature: system.osrelease
   618    #          matchExpressions:
   619    #            ID: {op: In, value: ["fedora", "centos"]}
   620    #        - feature: system.name
   621    #          matchExpressions:
   622    #            nodename: {op: InRegexp, value: ["^worker-X"]}
   623    #
   624    #        - feature: local.label
   625    #          matchExpressions:
   626    #            custom-feature-knob: {op: Gt, value: ["100"]}
   627    #
   628    #    # The following feature demonstrates the capabilities of the matchAny
   629    #    - name: "my matchAny rule"
   630    #      labels:
   631    #        my-ng-feature-2: "my-value"
   632    #      # matchAny implements a logical IF over all elements (sub-matchers) in
   633    #      # the list (i.e. at least one feature matcher must match)
   634    #      matchAny:
   635    #        - matchFeatures:
   636    #            - feature: kernel.loadedmodule
   637    #              matchExpressions:
   638    #                driver-module-X: {op: Exists}
   639    #            - feature: pci.device
   640    #              matchExpressions:
   641    #                vendor: {op: In, value: ["8086"]}
   642    #                class: {op: In, value: ["0200"]}
   643    #        - matchFeatures:
   644    #            - feature: kernel.loadedmodule
   645    #              matchExpressions:
   646    #                driver-module-Y: {op: Exists}
   647    #            - feature: usb.device
   648    #              matchExpressions:
   649    #                vendor: {op: In, value: ["8086"]}
   650    #                class: {op: In, value: ["02"]}
   651    #
   652    #    # The following features demonstreate label templating capabilities
   653    #    - name: "my template rule"
   654    #      labelsTemplate: |
   655    #        {{ range .system.osrelease }}my-system-feature.{{ .Name }}={{ .Value }}
   656    #        {{ end }}
   657    #      matchFeatures:
   658    #        - feature: system.osrelease
   659    #          matchExpressions:
   660    #            ID: {op: InRegexp, value: ["^open.*"]}
   661    #            VERSION_ID.major: {op: In, value: ["13", "15"]}
   662    #
   663    #    - name: "my template rule 2"
   664    #      labelsTemplate: |
   665    #        {{ range .pci.device }}my-pci-device.{{ .class }}-{{ .device }}=with-cpuid
   666    #        {{ end }}
   667    #      matchFeatures:
   668    #        - feature: pci.device
   669    #          matchExpressions:
   670    #            class: {op: InRegexp, value: ["^06"]}
   671    #            vendor: ["8086"]
   672    #        - feature: cpu.cpuid
   673    #          matchExpressions:
   674    #            AVX: {op: Exists}
   675    #
   676    #    # The following examples demonstrate vars field and back-referencing
   677    #    # previous labels and vars
   678    #    - name: "my dummy kernel rule"
   679    #      labels:
   680    #        "my.kernel.feature": "true"
   681    #      matchFeatures:
   682    #        - feature: kernel.version
   683    #          matchExpressions:
   684    #            major: {op: Gt, value: ["2"]}
   685    #
   686    #    - name: "my dummy rule with no labels"
   687    #      vars:
   688    #        "my.dummy.var": "1"
   689    #      matchFeatures:
   690    #        - feature: cpu.cpuid
   691    #          matchExpressions: {}
   692    #
   693    #    - name: "my rule using backrefs"
   694    #      labels:
   695    #        "my.backref.feature": "true"
   696    #      matchFeatures:
   697    #        - feature: rule.matched
   698    #          matchExpressions:
   699    #            my.kernel.feature: {op: IsTrue}
   700    #            my.dummy.var: {op: Gt, value: ["0"]}
   701    #
   702---
   703apiVersion: v1
   704kind: Service
   705metadata:
   706  name: nfd-master
   707  namespace: nfd
   708  labels:
   709    platform.edge.ncr.com/component: node-feature-discovery
   710  annotations:
   711    pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
   712    pallet.edge.ncr.com/name: nfd
   713    pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
   714    pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
   715    pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
   716    pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
   717spec:
   718  type: ClusterIP
   719  selector:
   720    app: nfd-master
   721    platform.edge.ncr.com/component: node-feature-discovery
   722  ports:
   723  - protocol: TCP
   724    port: 8080
   725---
   726apiVersion: apps/v1
   727kind: Deployment
   728metadata:
   729  name: nfd-master
   730  namespace: nfd
   731  labels:
   732    app: nfd
   733    platform.edge.ncr.com/component: node-feature-discovery
   734  annotations:
   735    pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
   736    pallet.edge.ncr.com/name: nfd
   737    pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
   738    pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
   739    pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
   740    pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
   741spec:
   742  replicas: 1
   743  selector:
   744    matchLabels:
   745      app: nfd-master
   746      platform.edge.ncr.com/component: node-feature-discovery
   747  template:
   748    metadata:
   749      labels:
   750        app: nfd-master
   751        platform.edge.ncr.com/component: node-feature-discovery
   752      annotations:
   753        pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
   754        pallet.edge.ncr.com/name: nfd
   755        pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
   756        pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
   757        pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
   758        pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
   759    spec:
   760      serviceAccount: nfd-master
   761      containers:
   762      - name: nfd-master
   763        image: us-east1-docker.pkg.dev/ret-edge-pltf-infra/thirdparty/k8s.gcr.io/nfd/node-feature-discovery:v0.12.1
   764        command:
   765        - nfd-master
   766        args: []
   767        env:
   768        - name: NODE_NAME
   769          valueFrom:
   770            fieldRef:
   771              fieldPath: spec.nodeName
   772        volumeMounts: []
   773        livenessProbe:
   774          exec:
   775            command:
   776            - /usr/bin/grpc_health_probe
   777            - -addr=:8080
   778          initialDelaySeconds: 10
   779          periodSeconds: 10
   780        readinessProbe:
   781          exec:
   782            command:
   783            - /usr/bin/grpc_health_probe
   784            - -addr=:8080
   785          failureThreshold: 10
   786          initialDelaySeconds: 5
   787          periodSeconds: 10
   788        imagePullPolicy: IfNotPresent
   789        securityContext:
   790          allowPrivilegeEscalation: false
   791          capabilities:
   792            drop:
   793            - ALL
   794          readOnlyRootFilesystem: true
   795          runAsNonRoot: true
   796        ports:
   797        - containerPort: 8080
   798      volumes: []
   799      affinity:
   800        nodeAffinity:
   801          preferredDuringSchedulingIgnoredDuringExecution:
   802          - preference:
   803              matchExpressions:
   804              - key: node-role.kubernetes.io/master
   805                operator: In
   806                values:
   807                - ""
   808            weight: 1
   809          - preference:
   810              matchExpressions:
   811              - key: node-role.kubernetes.io/control-plane
   812                operator: In
   813                values:
   814                - ""
   815            weight: 1
   816      tolerations:
   817      - value: ""
   818        effect: NoSchedule
   819        key: node-role.kubernetes.io/master
   820        operator: Equal
   821      - value: ""
   822        effect: NoSchedule
   823        key: node-role.kubernetes.io/control-plane
   824        operator: Equal
   825---
   826apiVersion: apps/v1
   827kind: DaemonSet
   828metadata:
   829  name: nfd-worker
   830  namespace: nfd
   831  labels:
   832    app: nfd
   833    platform.edge.ncr.com/component: node-feature-discovery
   834  annotations:
   835    pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
   836    pallet.edge.ncr.com/name: nfd
   837    pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
   838    pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
   839    pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
   840    pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
   841spec:
   842  selector:
   843    matchLabels:
   844      app: nfd-worker
   845      platform.edge.ncr.com/component: node-feature-discovery
   846  template:
   847    metadata:
   848      labels:
   849        app: nfd-worker
   850        platform.edge.ncr.com/component: node-feature-discovery
   851      annotations:
   852        pallet.edge.ncr.com/created: "2023-02-16T21:26:39Z"
   853        pallet.edge.ncr.com/name: nfd
   854        pallet.edge.ncr.com/revision: 696897a3df910b6e84a88c9336907a17b18159c1
   855        pallet.edge.ncr.com/source: https://github.com/ncrvoyix-swt-retail/edge-infra/tree/696897a3df910b6e84a88c9336907a17b18159c1
   856        pallet.edge.ncr.com/team: '@ncrvoyix-swt-retail/sds'
   857        pallet.edge.ncr.com/version: 7.7.7-rc.1676582799+commit.696897a
   858    spec:
   859      dnsPolicy: ClusterFirstWithHostNet
   860      serviceAccount: nfd-worker
   861      containers:
   862      - name: nfd-worker
   863        image: us-east1-docker.pkg.dev/ret-edge-pltf-infra/thirdparty/k8s.gcr.io/nfd/node-feature-discovery:v0.12.1
   864        command:
   865        - nfd-worker
   866        args:
   867        - -server=nfd-master:8080
   868        env:
   869        - name: NODE_NAME
   870          valueFrom:
   871            fieldRef:
   872              fieldPath: spec.nodeName
   873        volumeMounts:
   874        - name: ien-version
   875          mountPath: /ien-version
   876        - name: host-boot
   877          readOnly: true
   878          mountPath: /host-boot
   879        - name: host-os-release
   880          readOnly: true
   881          mountPath: /host-etc/os-release
   882        - name: host-sys
   883          readOnly: true
   884          mountPath: /host-sys
   885        - name: host-usr-lib
   886          readOnly: true
   887          mountPath: /host-usr/lib
   888        - name: source-d
   889          readOnly: true
   890          mountPath: /etc/kubernetes/node-feature-discovery/source.d/
   891        - name: features-d
   892          readOnly: true
   893          mountPath: /etc/kubernetes/node-feature-discovery/features.d/
   894        - name: nfd-worker-conf
   895          readOnly: true
   896          mountPath: /etc/kubernetes/node-feature-discovery
   897        imagePullPolicy: IfNotPresent
   898      volumes:
   899      - name: ien-version
   900        hostPath:
   901          type: FileOrCreate
   902          path: /ien-version
   903      - name: source-d
   904        configMap:
   905          name: edge-custom-labels
   906          defaultMode: 0777
   907      - name: features-d
   908        hostPath:
   909          path: /etc/kubernetes/node-feature-discovery/features.d/
   910      - name: host-boot
   911        hostPath:
   912          path: /boot
   913      - name: host-os-release
   914        hostPath:
   915          path: /etc/os-release
   916      - name: host-sys
   917        hostPath:
   918          path: /sys
   919      - name: host-usr-lib
   920        hostPath:
   921          path: /usr/lib
   922      - name: nfd-worker-conf
   923        configMap:
   924          name: nfd-worker-conf

View as plain text