You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

710 lines
34 KiB

  1. ---
  2. apiVersion: apiextensions.k8s.io/v1
  3. kind: CustomResourceDefinition
  4. metadata:
  5. annotations:
  6. controller-gen.kubebuilder.io/version: v0.14.0
  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: |-
  21. NodeFeature resource holds the features discovered for one node in the
  22. cluster.
  23. properties:
  24. apiVersion:
  25. description: |-
  26. APIVersion defines the versioned schema of this representation of an object.
  27. Servers should convert recognized schemas to the latest internal value, and
  28. may reject unrecognized values.
  29. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  30. type: string
  31. kind:
  32. description: |-
  33. Kind is a string value representing the REST resource this object represents.
  34. Servers may infer this from the endpoint the client submits requests to.
  35. Cannot be updated.
  36. In CamelCase.
  37. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  38. type: string
  39. metadata:
  40. type: object
  41. spec:
  42. description: Specification of the NodeFeature, containing features discovered
  43. for a node.
  44. properties:
  45. features:
  46. description: Features is the full "raw" features data that has been
  47. discovered.
  48. properties:
  49. attributes:
  50. additionalProperties:
  51. description: AttributeFeatureSet is a set of features having
  52. string value.
  53. properties:
  54. elements:
  55. additionalProperties:
  56. type: string
  57. description: Individual features of the feature set.
  58. type: object
  59. required:
  60. - elements
  61. type: object
  62. description: Attributes contains all the attribute-type features
  63. of the node.
  64. type: object
  65. flags:
  66. additionalProperties:
  67. description: FlagFeatureSet is a set of simple features only
  68. containing names without values.
  69. properties:
  70. elements:
  71. additionalProperties:
  72. description: Nil is a dummy empty struct for protobuf
  73. compatibility
  74. type: object
  75. description: Individual features of the feature set.
  76. type: object
  77. required:
  78. - elements
  79. type: object
  80. description: Flags contains all the flag-type features of the
  81. node.
  82. type: object
  83. instances:
  84. additionalProperties:
  85. description: InstanceFeatureSet is a set of features each of
  86. which is an instance having multiple attributes.
  87. properties:
  88. elements:
  89. description: Individual features of the feature set.
  90. items:
  91. description: InstanceFeature represents one instance of
  92. a complex features, e.g. a device.
  93. properties:
  94. attributes:
  95. additionalProperties:
  96. type: string
  97. description: Attributes of the instance feature.
  98. type: object
  99. required:
  100. - attributes
  101. type: object
  102. type: array
  103. required:
  104. - elements
  105. type: object
  106. description: Instances contains all the instance-type features
  107. of the node.
  108. type: object
  109. type: object
  110. labels:
  111. additionalProperties:
  112. type: string
  113. description: Labels is the set of node labels that are requested to
  114. be created.
  115. type: object
  116. type: object
  117. required:
  118. - spec
  119. type: object
  120. served: true
  121. storage: true
  122. ---
  123. apiVersion: apiextensions.k8s.io/v1
  124. kind: CustomResourceDefinition
  125. metadata:
  126. annotations:
  127. controller-gen.kubebuilder.io/version: v0.14.0
  128. name: nodefeaturegroups.nfd.k8s-sigs.io
  129. spec:
  130. group: nfd.k8s-sigs.io
  131. names:
  132. kind: NodeFeatureGroup
  133. listKind: NodeFeatureGroupList
  134. plural: nodefeaturegroups
  135. shortNames:
  136. - nfg
  137. singular: nodefeaturegroup
  138. scope: Namespaced
  139. versions:
  140. - name: v1alpha1
  141. schema:
  142. openAPIV3Schema:
  143. description: NodeFeatureGroup resource holds Node pools by featureGroup
  144. properties:
  145. apiVersion:
  146. description: |-
  147. APIVersion defines the versioned schema of this representation of an object.
  148. Servers should convert recognized schemas to the latest internal value, and
  149. may reject unrecognized values.
  150. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  151. type: string
  152. kind:
  153. description: |-
  154. Kind is a string value representing the REST resource this object represents.
  155. Servers may infer this from the endpoint the client submits requests to.
  156. Cannot be updated.
  157. In CamelCase.
  158. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  159. type: string
  160. metadata:
  161. type: object
  162. spec:
  163. description: Spec defines the rules to be evaluated.
  164. properties:
  165. featureGroupRules:
  166. description: List of rules to evaluate to determine nodes that belong
  167. in this group.
  168. items:
  169. description: GroupRule defines a rule for nodegroup filtering.
  170. properties:
  171. matchAny:
  172. description: MatchAny specifies a list of matchers one of which
  173. must match.
  174. items:
  175. description: MatchAnyElem specifies one sub-matcher of MatchAny.
  176. properties:
  177. matchFeatures:
  178. description: MatchFeatures specifies a set of matcher
  179. terms all of which must match.
  180. items:
  181. description: |-
  182. FeatureMatcherTerm defines requirements against one feature set. All
  183. requirements (specified as MatchExpressions) are evaluated against each
  184. element in the feature set.
  185. properties:
  186. feature:
  187. description: Feature is the name of the feature
  188. set to match against.
  189. type: string
  190. matchExpressions:
  191. additionalProperties:
  192. description: |-
  193. MatchExpression specifies an expression to evaluate against a set of input
  194. values. It contains an operator that is applied when matching the input and
  195. an array of values that the operator evaluates the input against.
  196. properties:
  197. op:
  198. description: Op is the operator to be applied.
  199. enum:
  200. - In
  201. - NotIn
  202. - InRegexp
  203. - Exists
  204. - DoesNotExist
  205. - Gt
  206. - Lt
  207. - GtLt
  208. - IsTrue
  209. - IsFalse
  210. type: string
  211. value:
  212. description: |-
  213. Value is the list of values that the operand evaluates the input
  214. against. Value should be empty if the operator is Exists, DoesNotExist,
  215. IsTrue or IsFalse. Value should contain exactly one element if the
  216. operator is Gt or Lt and exactly two elements if the operator is GtLt.
  217. In other cases Value should contain at least one element.
  218. items:
  219. type: string
  220. type: array
  221. required:
  222. - op
  223. type: object
  224. description: |-
  225. MatchExpressions is the set of per-element expressions evaluated. These
  226. match against the value of the specified elements.
  227. type: object
  228. matchName:
  229. description: |-
  230. MatchName in an expression that is matched against the name of each
  231. element in the feature set.
  232. properties:
  233. op:
  234. description: Op is the operator to be applied.
  235. enum:
  236. - In
  237. - NotIn
  238. - InRegexp
  239. - Exists
  240. - DoesNotExist
  241. - Gt
  242. - Lt
  243. - GtLt
  244. - IsTrue
  245. - IsFalse
  246. type: string
  247. value:
  248. description: |-
  249. Value is the list of values that the operand evaluates the input
  250. against. Value should be empty if the operator is Exists, DoesNotExist,
  251. IsTrue or IsFalse. Value should contain exactly one element if the
  252. operator is Gt or Lt and exactly two elements if the operator is GtLt.
  253. In other cases Value should contain at least one element.
  254. items:
  255. type: string
  256. type: array
  257. required:
  258. - op
  259. type: object
  260. required:
  261. - feature
  262. type: object
  263. type: array
  264. required:
  265. - matchFeatures
  266. type: object
  267. type: array
  268. matchFeatures:
  269. description: MatchFeatures specifies a set of matcher terms
  270. all of which must match.
  271. items:
  272. description: |-
  273. FeatureMatcherTerm defines requirements against one feature set. All
  274. requirements (specified as MatchExpressions) are evaluated against each
  275. element in the feature set.
  276. properties:
  277. feature:
  278. description: Feature is the name of the feature set to
  279. match against.
  280. type: string
  281. matchExpressions:
  282. additionalProperties:
  283. description: |-
  284. MatchExpression specifies an expression to evaluate against a set of input
  285. values. It contains an operator that is applied when matching the input and
  286. an array of values that the operator evaluates the input against.
  287. properties:
  288. op:
  289. description: Op is the operator to be applied.
  290. enum:
  291. - In
  292. - NotIn
  293. - InRegexp
  294. - Exists
  295. - DoesNotExist
  296. - Gt
  297. - Lt
  298. - GtLt
  299. - IsTrue
  300. - IsFalse
  301. type: string
  302. value:
  303. description: |-
  304. Value is the list of values that the operand evaluates the input
  305. against. Value should be empty if the operator is Exists, DoesNotExist,
  306. IsTrue or IsFalse. Value should contain exactly one element if the
  307. operator is Gt or Lt and exactly two elements if the operator is GtLt.
  308. In other cases Value should contain at least one element.
  309. items:
  310. type: string
  311. type: array
  312. required:
  313. - op
  314. type: object
  315. description: |-
  316. MatchExpressions is the set of per-element expressions evaluated. These
  317. match against the value of the specified elements.
  318. type: object
  319. matchName:
  320. description: |-
  321. MatchName in an expression that is matched against the name of each
  322. element in the feature set.
  323. properties:
  324. op:
  325. description: Op is the operator to be applied.
  326. enum:
  327. - In
  328. - NotIn
  329. - InRegexp
  330. - Exists
  331. - DoesNotExist
  332. - Gt
  333. - Lt
  334. - GtLt
  335. - IsTrue
  336. - IsFalse
  337. type: string
  338. value:
  339. description: |-
  340. Value is the list of values that the operand evaluates the input
  341. against. Value should be empty if the operator is Exists, DoesNotExist,
  342. IsTrue or IsFalse. Value should contain exactly one element if the
  343. operator is Gt or Lt and exactly two elements if the operator is GtLt.
  344. In other cases Value should contain at least one element.
  345. items:
  346. type: string
  347. type: array
  348. required:
  349. - op
  350. type: object
  351. required:
  352. - feature
  353. type: object
  354. type: array
  355. name:
  356. description: Name of the rule.
  357. type: string
  358. required:
  359. - name
  360. type: object
  361. type: array
  362. required:
  363. - featureGroupRules
  364. type: object
  365. status:
  366. description: |-
  367. Status of the NodeFeatureGroup after the most recent evaluation of the
  368. specification.
  369. properties:
  370. nodes:
  371. description: Nodes is a list of FeatureGroupNode in the cluster that
  372. match the featureGroupRules
  373. items:
  374. properties:
  375. name:
  376. description: Name of the node.
  377. type: string
  378. required:
  379. - name
  380. type: object
  381. type: array
  382. x-kubernetes-list-map-keys:
  383. - name
  384. x-kubernetes-list-type: map
  385. type: object
  386. required:
  387. - spec
  388. type: object
  389. served: true
  390. storage: true
  391. subresources:
  392. status: {}
  393. ---
  394. apiVersion: apiextensions.k8s.io/v1
  395. kind: CustomResourceDefinition
  396. metadata:
  397. annotations:
  398. controller-gen.kubebuilder.io/version: v0.14.0
  399. name: nodefeaturerules.nfd.k8s-sigs.io
  400. spec:
  401. group: nfd.k8s-sigs.io
  402. names:
  403. kind: NodeFeatureRule
  404. listKind: NodeFeatureRuleList
  405. plural: nodefeaturerules
  406. shortNames:
  407. - nfr
  408. singular: nodefeaturerule
  409. scope: Cluster
  410. versions:
  411. - name: v1alpha1
  412. schema:
  413. openAPIV3Schema:
  414. description: |-
  415. NodeFeatureRule resource specifies a configuration for feature-based
  416. customization of node objects, such as node labeling.
  417. properties:
  418. apiVersion:
  419. description: |-
  420. APIVersion defines the versioned schema of this representation of an object.
  421. Servers should convert recognized schemas to the latest internal value, and
  422. may reject unrecognized values.
  423. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  424. type: string
  425. kind:
  426. description: |-
  427. Kind is a string value representing the REST resource this object represents.
  428. Servers may infer this from the endpoint the client submits requests to.
  429. Cannot be updated.
  430. In CamelCase.
  431. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  432. type: string
  433. metadata:
  434. type: object
  435. spec:
  436. description: Spec defines the rules to be evaluated.
  437. properties:
  438. rules:
  439. description: Rules is a list of node customization rules.
  440. items:
  441. description: Rule defines a rule for node customization such as
  442. labeling.
  443. properties:
  444. annotations:
  445. additionalProperties:
  446. type: string
  447. description: Annotations to create if the rule matches.
  448. type: object
  449. extendedResources:
  450. additionalProperties:
  451. type: string
  452. description: ExtendedResources to create if the rule matches.
  453. type: object
  454. labels:
  455. additionalProperties:
  456. type: string
  457. description: Labels to create if the rule matches.
  458. type: object
  459. labelsTemplate:
  460. description: |-
  461. LabelsTemplate specifies a template to expand for dynamically generating
  462. multiple labels. Data (after template expansion) must be keys with an
  463. optional value (<key>[=<value>]) separated by newlines.
  464. type: string
  465. matchAny:
  466. description: MatchAny specifies a list of matchers one of which
  467. must match.
  468. items:
  469. description: MatchAnyElem specifies one sub-matcher of MatchAny.
  470. properties:
  471. matchFeatures:
  472. description: MatchFeatures specifies a set of matcher
  473. terms all of which must match.
  474. items:
  475. description: |-
  476. FeatureMatcherTerm defines requirements against one feature set. All
  477. requirements (specified as MatchExpressions) are evaluated against each
  478. element in the feature set.
  479. properties:
  480. feature:
  481. description: Feature is the name of the feature
  482. set to match against.
  483. type: string
  484. matchExpressions:
  485. additionalProperties:
  486. description: |-
  487. MatchExpression specifies an expression to evaluate against a set of input
  488. values. It contains an operator that is applied when matching the input and
  489. an array of values that the operator evaluates the input against.
  490. properties:
  491. op:
  492. description: Op is the operator to be applied.
  493. enum:
  494. - In
  495. - NotIn
  496. - InRegexp
  497. - Exists
  498. - DoesNotExist
  499. - Gt
  500. - Lt
  501. - GtLt
  502. - IsTrue
  503. - IsFalse
  504. type: string
  505. value:
  506. description: |-
  507. Value is the list of values that the operand evaluates the input
  508. against. Value should be empty if the operator is Exists, DoesNotExist,
  509. IsTrue or IsFalse. Value should contain exactly one element if the
  510. operator is Gt or Lt and exactly two elements if the operator is GtLt.
  511. In other cases Value should contain at least one element.
  512. items:
  513. type: string
  514. type: array
  515. required:
  516. - op
  517. type: object
  518. description: |-
  519. MatchExpressions is the set of per-element expressions evaluated. These
  520. match against the value of the specified elements.
  521. type: object
  522. matchName:
  523. description: |-
  524. MatchName in an expression that is matched against the name of each
  525. element in the feature set.
  526. properties:
  527. op:
  528. description: Op is the operator to be applied.
  529. enum:
  530. - In
  531. - NotIn
  532. - InRegexp
  533. - Exists
  534. - DoesNotExist
  535. - Gt
  536. - Lt
  537. - GtLt
  538. - IsTrue
  539. - IsFalse
  540. type: string
  541. value:
  542. description: |-
  543. Value is the list of values that the operand evaluates the input
  544. against. Value should be empty if the operator is Exists, DoesNotExist,
  545. IsTrue or IsFalse. Value should contain exactly one element if the
  546. operator is Gt or Lt and exactly two elements if the operator is GtLt.
  547. In other cases Value should contain at least one element.
  548. items:
  549. type: string
  550. type: array
  551. required:
  552. - op
  553. type: object
  554. required:
  555. - feature
  556. type: object
  557. type: array
  558. required:
  559. - matchFeatures
  560. type: object
  561. type: array
  562. matchFeatures:
  563. description: MatchFeatures specifies a set of matcher terms
  564. all of which must match.
  565. items:
  566. description: |-
  567. FeatureMatcherTerm defines requirements against one feature set. All
  568. requirements (specified as MatchExpressions) are evaluated against each
  569. element in the feature set.
  570. properties:
  571. feature:
  572. description: Feature is the name of the feature set to
  573. match against.
  574. type: string
  575. matchExpressions:
  576. additionalProperties:
  577. description: |-
  578. MatchExpression specifies an expression to evaluate against a set of input
  579. values. It contains an operator that is applied when matching the input and
  580. an array of values that the operator evaluates the input against.
  581. properties:
  582. op:
  583. description: Op is the operator to be applied.
  584. enum:
  585. - In
  586. - NotIn
  587. - InRegexp
  588. - Exists
  589. - DoesNotExist
  590. - Gt
  591. - Lt
  592. - GtLt
  593. - IsTrue
  594. - IsFalse
  595. type: string
  596. value:
  597. description: |-
  598. Value is the list of values that the operand evaluates the input
  599. against. Value should be empty if the operator is Exists, DoesNotExist,
  600. IsTrue or IsFalse. Value should contain exactly one element if the
  601. operator is Gt or Lt and exactly two elements if the operator is GtLt.
  602. In other cases Value should contain at least one element.
  603. items:
  604. type: string
  605. type: array
  606. required:
  607. - op
  608. type: object
  609. description: |-
  610. MatchExpressions is the set of per-element expressions evaluated. These
  611. match against the value of the specified elements.
  612. type: object
  613. matchName:
  614. description: |-
  615. MatchName in an expression that is matched against the name of each
  616. element in the feature set.
  617. properties:
  618. op:
  619. description: Op is the operator to be applied.
  620. enum:
  621. - In
  622. - NotIn
  623. - InRegexp
  624. - Exists
  625. - DoesNotExist
  626. - Gt
  627. - Lt
  628. - GtLt
  629. - IsTrue
  630. - IsFalse
  631. type: string
  632. value:
  633. description: |-
  634. Value is the list of values that the operand evaluates the input
  635. against. Value should be empty if the operator is Exists, DoesNotExist,
  636. IsTrue or IsFalse. Value should contain exactly one element if the
  637. operator is Gt or Lt and exactly two elements if the operator is GtLt.
  638. In other cases Value should contain at least one element.
  639. items:
  640. type: string
  641. type: array
  642. required:
  643. - op
  644. type: object
  645. required:
  646. - feature
  647. type: object
  648. type: array
  649. name:
  650. description: Name of the rule.
  651. type: string
  652. taints:
  653. description: Taints to create if the rule matches.
  654. items:
  655. description: |-
  656. The node this Taint is attached to has the "effect" on
  657. any pod that does not tolerate the Taint.
  658. properties:
  659. effect:
  660. description: |-
  661. Required. The effect of the taint on pods
  662. that do not tolerate the taint.
  663. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
  664. type: string
  665. key:
  666. description: Required. The taint key to be applied to
  667. a node.
  668. type: string
  669. timeAdded:
  670. description: |-
  671. TimeAdded represents the time at which the taint was added.
  672. It is only written for NoExecute taints.
  673. format: date-time
  674. type: string
  675. value:
  676. description: The taint value corresponding to the taint
  677. key.
  678. type: string
  679. required:
  680. - effect
  681. - key
  682. type: object
  683. type: array
  684. vars:
  685. additionalProperties:
  686. type: string
  687. description: |-
  688. Vars is the variables to store if the rule matches. Variables do not
  689. directly inflict any changes in the node object. However, they can be
  690. referenced from other rules enabling more complex rule hierarchies,
  691. without exposing intermediary output values as labels.
  692. type: object
  693. varsTemplate:
  694. description: |-
  695. VarsTemplate specifies a template to expand for dynamically generating
  696. multiple variables. Data (after template expansion) must be keys with an
  697. optional value (<key>[=<value>]) separated by newlines.
  698. type: string
  699. required:
  700. - name
  701. type: object
  702. type: array
  703. required:
  704. - rules
  705. type: object
  706. required:
  707. - spec
  708. type: object
  709. served: true
  710. storage: true