blob: 4e630416300d3a5759221b16eb58fede43daad61 [file] [log] [blame]
Mohammed Naser65cda132024-05-02 14:34:08 -04001---
2apiVersion: apiextensions.k8s.io/v1
3kind: CustomResourceDefinition
4metadata:
5 annotations:
6 controller-gen.kubebuilder.io/version: v0.12.1
7 name: nodefeatures.nfd.k8s-sigs.io
8spec:
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---
112apiVersion: apiextensions.k8s.io/v1
113kind: CustomResourceDefinition
114metadata:
115 annotations:
116 controller-gen.kubebuilder.io/version: v0.12.1
117 name: nodefeaturerules.nfd.k8s-sigs.io
118spec:
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