Mohammed Naser | 65cda13 | 2024-05-02 14:34:08 -0400 | [diff] [blame] | 1 | --- |
| 2 | apiVersion: apiextensions.k8s.io/v1 |
| 3 | kind: CustomResourceDefinition |
| 4 | metadata: |
| 5 | annotations: |
| 6 | controller-gen.kubebuilder.io/version: v0.12.1 |
| 7 | name: nodefeatures.nfd.k8s-sigs.io |
| 8 | spec: |
| 9 | group: nfd.k8s-sigs.io |
| 10 | names: |
| 11 | kind: NodeFeature |
| 12 | listKind: NodeFeatureList |
| 13 | plural: nodefeatures |
| 14 | singular: nodefeature |
| 15 | scope: Namespaced |
| 16 | versions: |
| 17 | - name: v1alpha1 |
| 18 | schema: |
| 19 | openAPIV3Schema: |
| 20 | description: NodeFeature resource holds the features discovered for one node |
| 21 | in the cluster. |
| 22 | properties: |
| 23 | apiVersion: |
| 24 | description: 'APIVersion defines the versioned schema of this representation |
| 25 | of an object. Servers should convert recognized schemas to the latest |
| 26 | internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' |
| 27 | type: string |
| 28 | kind: |
| 29 | description: 'Kind is a string value representing the REST resource this |
| 30 | object represents. Servers may infer this from the endpoint the client |
| 31 | submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' |
| 32 | type: string |
| 33 | metadata: |
| 34 | type: object |
| 35 | spec: |
| 36 | description: NodeFeatureSpec describes a NodeFeature object. |
| 37 | properties: |
| 38 | features: |
| 39 | description: Features is the full "raw" features data that has been |
| 40 | discovered. |
| 41 | properties: |
| 42 | attributes: |
| 43 | additionalProperties: |
| 44 | description: AttributeFeatureSet is a set of features having |
| 45 | string value. |
| 46 | properties: |
| 47 | elements: |
| 48 | additionalProperties: |
| 49 | type: string |
| 50 | type: object |
| 51 | required: |
| 52 | - elements |
| 53 | type: object |
| 54 | description: Attributes contains all the attribute-type features |
| 55 | of the node. |
| 56 | type: object |
| 57 | flags: |
| 58 | additionalProperties: |
| 59 | description: FlagFeatureSet is a set of simple features only |
| 60 | containing names without values. |
| 61 | properties: |
| 62 | elements: |
| 63 | additionalProperties: |
| 64 | description: Nil is a dummy empty struct for protobuf |
| 65 | compatibility |
| 66 | type: object |
| 67 | type: object |
| 68 | required: |
| 69 | - elements |
| 70 | type: object |
| 71 | description: Flags contains all the flag-type features of the |
| 72 | node. |
| 73 | type: object |
| 74 | instances: |
| 75 | additionalProperties: |
| 76 | description: InstanceFeatureSet is a set of features each of |
| 77 | which is an instance having multiple attributes. |
| 78 | properties: |
| 79 | elements: |
| 80 | items: |
| 81 | description: InstanceFeature represents one instance of |
| 82 | a complex features, e.g. a device. |
| 83 | properties: |
| 84 | attributes: |
| 85 | additionalProperties: |
| 86 | type: string |
| 87 | type: object |
| 88 | required: |
| 89 | - attributes |
| 90 | type: object |
| 91 | type: array |
| 92 | required: |
| 93 | - elements |
| 94 | type: object |
| 95 | description: Instances contains all the instance-type features |
| 96 | of the node. |
| 97 | type: object |
| 98 | type: object |
| 99 | labels: |
| 100 | additionalProperties: |
| 101 | type: string |
| 102 | description: Labels is the set of node labels that are requested to |
| 103 | be created. |
| 104 | type: object |
| 105 | type: object |
| 106 | required: |
| 107 | - spec |
| 108 | type: object |
| 109 | served: true |
| 110 | storage: true |
| 111 | --- |
| 112 | apiVersion: apiextensions.k8s.io/v1 |
| 113 | kind: CustomResourceDefinition |
| 114 | metadata: |
| 115 | annotations: |
| 116 | controller-gen.kubebuilder.io/version: v0.12.1 |
| 117 | name: nodefeaturerules.nfd.k8s-sigs.io |
| 118 | spec: |
| 119 | group: nfd.k8s-sigs.io |
| 120 | names: |
| 121 | kind: NodeFeatureRule |
| 122 | listKind: NodeFeatureRuleList |
| 123 | plural: nodefeaturerules |
| 124 | shortNames: |
| 125 | - nfr |
| 126 | singular: nodefeaturerule |
| 127 | scope: Cluster |
| 128 | versions: |
| 129 | - name: v1alpha1 |
| 130 | schema: |
| 131 | openAPIV3Schema: |
| 132 | description: NodeFeatureRule resource specifies a configuration for feature-based |
| 133 | customization of node objects, such as node labeling. |
| 134 | properties: |
| 135 | apiVersion: |
| 136 | description: 'APIVersion defines the versioned schema of this representation |
| 137 | of an object. Servers should convert recognized schemas to the latest |
| 138 | internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' |
| 139 | type: string |
| 140 | kind: |
| 141 | description: 'Kind is a string value representing the REST resource this |
| 142 | object represents. Servers may infer this from the endpoint the client |
| 143 | submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' |
| 144 | type: string |
| 145 | metadata: |
| 146 | type: object |
| 147 | spec: |
| 148 | description: NodeFeatureRuleSpec describes a NodeFeatureRule. |
| 149 | properties: |
| 150 | rules: |
| 151 | description: Rules is a list of node customization rules. |
| 152 | items: |
| 153 | description: Rule defines a rule for node customization such as |
| 154 | labeling. |
| 155 | properties: |
| 156 | annotations: |
| 157 | additionalProperties: |
| 158 | type: string |
| 159 | description: Annotations to create if the rule matches. |
| 160 | type: object |
| 161 | extendedResources: |
| 162 | additionalProperties: |
| 163 | type: string |
| 164 | description: ExtendedResources to create if the rule matches. |
| 165 | type: object |
| 166 | labels: |
| 167 | additionalProperties: |
| 168 | type: string |
| 169 | description: Labels to create if the rule matches. |
| 170 | type: object |
| 171 | labelsTemplate: |
| 172 | description: LabelsTemplate specifies a template to expand for |
| 173 | dynamically generating multiple labels. Data (after template |
| 174 | expansion) must be keys with an optional value (<key>[=<value>]) |
| 175 | separated by newlines. |
| 176 | type: string |
| 177 | matchAny: |
| 178 | description: MatchAny specifies a list of matchers one of which |
| 179 | must match. |
| 180 | items: |
| 181 | description: MatchAnyElem specifies one sub-matcher of MatchAny. |
| 182 | properties: |
| 183 | matchFeatures: |
| 184 | description: MatchFeatures specifies a set of matcher |
| 185 | terms all of which must match. |
| 186 | items: |
| 187 | description: FeatureMatcherTerm defines requirements |
| 188 | against one feature set. All requirements (specified |
| 189 | as MatchExpressions) are evaluated against each element |
| 190 | in the feature set. |
| 191 | properties: |
| 192 | feature: |
| 193 | description: Feature is the name of the feature |
| 194 | set to match against. |
| 195 | type: string |
| 196 | matchExpressions: |
| 197 | additionalProperties: |
| 198 | description: MatchExpression specifies an expression |
| 199 | to evaluate against a set of input values. It |
| 200 | contains an operator that is applied when matching |
| 201 | the input and an array of values that the operator |
| 202 | evaluates the input against. |
| 203 | properties: |
| 204 | op: |
| 205 | description: Op is the operator to be applied. |
| 206 | enum: |
| 207 | - In |
| 208 | - NotIn |
| 209 | - InRegexp |
| 210 | - Exists |
| 211 | - DoesNotExist |
| 212 | - Gt |
| 213 | - Lt |
| 214 | - GtLt |
| 215 | - IsTrue |
| 216 | - IsFalse |
| 217 | type: string |
| 218 | value: |
| 219 | description: Value is the list of values that |
| 220 | the operand evaluates the input against. |
| 221 | Value should be empty if the operator is |
| 222 | Exists, DoesNotExist, IsTrue or IsFalse. |
| 223 | Value should contain exactly one element |
| 224 | if the operator is Gt or Lt and exactly |
| 225 | two elements if the operator is GtLt. In |
| 226 | other cases Value should contain at least |
| 227 | one element. |
| 228 | items: |
| 229 | type: string |
| 230 | type: array |
| 231 | required: |
| 232 | - op |
| 233 | type: object |
| 234 | description: MatchExpressions is the set of per-element |
| 235 | expressions evaluated. These match against the |
| 236 | value of the specified elements. |
| 237 | type: object |
| 238 | matchName: |
| 239 | description: MatchName in an expression that is |
| 240 | matched against the name of each element in the |
| 241 | feature set. |
| 242 | properties: |
| 243 | op: |
| 244 | description: Op is the operator to be applied. |
| 245 | enum: |
| 246 | - In |
| 247 | - NotIn |
| 248 | - InRegexp |
| 249 | - Exists |
| 250 | - DoesNotExist |
| 251 | - Gt |
| 252 | - Lt |
| 253 | - GtLt |
| 254 | - IsTrue |
| 255 | - IsFalse |
| 256 | type: string |
| 257 | value: |
| 258 | description: Value is the list of values that |
| 259 | the operand evaluates the input against. Value |
| 260 | should be empty if the operator is Exists, |
| 261 | DoesNotExist, IsTrue or IsFalse. Value should |
| 262 | contain exactly one element if the operator |
| 263 | is Gt or Lt and exactly two elements if the |
| 264 | operator is GtLt. In other cases Value should |
| 265 | contain at least one element. |
| 266 | items: |
| 267 | type: string |
| 268 | type: array |
| 269 | required: |
| 270 | - op |
| 271 | type: object |
| 272 | required: |
| 273 | - feature |
| 274 | type: object |
| 275 | type: array |
| 276 | required: |
| 277 | - matchFeatures |
| 278 | type: object |
| 279 | type: array |
| 280 | matchFeatures: |
| 281 | description: MatchFeatures specifies a set of matcher terms |
| 282 | all of which must match. |
| 283 | items: |
| 284 | description: FeatureMatcherTerm defines requirements against |
| 285 | one feature set. All requirements (specified as MatchExpressions) |
| 286 | are evaluated against each element in the feature set. |
| 287 | properties: |
| 288 | feature: |
| 289 | description: Feature is the name of the feature set to |
| 290 | match against. |
| 291 | type: string |
| 292 | matchExpressions: |
| 293 | additionalProperties: |
| 294 | description: MatchExpression specifies an expression |
| 295 | to evaluate against a set of input values. It contains |
| 296 | an operator that is applied when matching the input |
| 297 | and an array of values that the operator evaluates |
| 298 | the input against. |
| 299 | properties: |
| 300 | op: |
| 301 | description: Op is the operator to be applied. |
| 302 | enum: |
| 303 | - In |
| 304 | - NotIn |
| 305 | - InRegexp |
| 306 | - Exists |
| 307 | - DoesNotExist |
| 308 | - Gt |
| 309 | - Lt |
| 310 | - GtLt |
| 311 | - IsTrue |
| 312 | - IsFalse |
| 313 | type: string |
| 314 | value: |
| 315 | description: Value is the list of values that the |
| 316 | operand evaluates the input against. Value should |
| 317 | be empty if the operator is Exists, DoesNotExist, |
| 318 | IsTrue or IsFalse. Value should contain exactly |
| 319 | one element if the operator is Gt or Lt and exactly |
| 320 | two elements if the operator is GtLt. In other |
| 321 | cases Value should contain at least one element. |
| 322 | items: |
| 323 | type: string |
| 324 | type: array |
| 325 | required: |
| 326 | - op |
| 327 | type: object |
| 328 | description: MatchExpressions is the set of per-element |
| 329 | expressions evaluated. These match against the value |
| 330 | of the specified elements. |
| 331 | type: object |
| 332 | matchName: |
| 333 | description: MatchName in an expression that is matched |
| 334 | against the name of each element in the feature set. |
| 335 | properties: |
| 336 | op: |
| 337 | description: Op is the operator to be applied. |
| 338 | enum: |
| 339 | - In |
| 340 | - NotIn |
| 341 | - InRegexp |
| 342 | - Exists |
| 343 | - DoesNotExist |
| 344 | - Gt |
| 345 | - Lt |
| 346 | - GtLt |
| 347 | - IsTrue |
| 348 | - IsFalse |
| 349 | type: string |
| 350 | value: |
| 351 | description: Value is the list of values that the |
| 352 | operand evaluates the input against. Value should |
| 353 | be empty if the operator is Exists, DoesNotExist, |
| 354 | IsTrue or IsFalse. Value should contain exactly |
| 355 | one element if the operator is Gt or Lt and exactly |
| 356 | two elements if the operator is GtLt. In other cases |
| 357 | Value should contain at least one element. |
| 358 | items: |
| 359 | type: string |
| 360 | type: array |
| 361 | required: |
| 362 | - op |
| 363 | type: object |
| 364 | required: |
| 365 | - feature |
| 366 | type: object |
| 367 | type: array |
| 368 | name: |
| 369 | description: Name of the rule. |
| 370 | type: string |
| 371 | taints: |
| 372 | description: Taints to create if the rule matches. |
| 373 | items: |
| 374 | description: The node this Taint is attached to has the "effect" |
| 375 | on any pod that does not tolerate the Taint. |
| 376 | properties: |
| 377 | effect: |
| 378 | description: Required. The effect of the taint on pods |
| 379 | that do not tolerate the taint. Valid effects are NoSchedule, |
| 380 | PreferNoSchedule and NoExecute. |
| 381 | type: string |
| 382 | key: |
| 383 | description: Required. The taint key to be applied to |
| 384 | a node. |
| 385 | type: string |
| 386 | timeAdded: |
| 387 | description: TimeAdded represents the time at which the |
| 388 | taint was added. It is only written for NoExecute taints. |
| 389 | format: date-time |
| 390 | type: string |
| 391 | value: |
| 392 | description: The taint value corresponding to the taint |
| 393 | key. |
| 394 | type: string |
| 395 | required: |
| 396 | - effect |
| 397 | - key |
| 398 | type: object |
| 399 | type: array |
| 400 | vars: |
| 401 | additionalProperties: |
| 402 | type: string |
| 403 | description: Vars is the variables to store if the rule matches. |
| 404 | Variables do not directly inflict any changes in the node |
| 405 | object. However, they can be referenced from other rules enabling |
| 406 | more complex rule hierarchies, without exposing intermediary |
| 407 | output values as labels. |
| 408 | type: object |
| 409 | varsTemplate: |
| 410 | description: VarsTemplate specifies a template to expand for |
| 411 | dynamically generating multiple variables. Data (after template |
| 412 | expansion) must be keys with an optional value (<key>[=<value>]) |
| 413 | separated by newlines. |
| 414 | type: string |
| 415 | required: |
| 416 | - name |
| 417 | type: object |
| 418 | type: array |
| 419 | required: |
| 420 | - rules |
| 421 | type: object |
| 422 | required: |
| 423 | - spec |
| 424 | type: object |
| 425 | served: true |
| 426 | storage: true |