1apiVersion: apiextensions.k8s.io/v1
2kind: CustomResourceDefinition
3metadata:
4 annotations:
5 api-approved.openshift.io: https://github.com/openshift/api/pull/555
6 include.release.openshift.io/ibm-cloud-managed: "true"
7 include.release.openshift.io/self-managed-high-availability: "true"
8 include.release.openshift.io/single-node-developer: "true"
9 name: imagepruners.imageregistry.operator.openshift.io
10spec:
11 group: imageregistry.operator.openshift.io
12 names:
13 kind: ImagePruner
14 listKind: ImagePrunerList
15 plural: imagepruners
16 singular: imagepruner
17 scope: Cluster
18 versions:
19 - name: v1
20 schema:
21 openAPIV3Schema:
22 description: "ImagePruner is the configuration object for an image registry pruner managed by the registry operator. \n Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer)."
23 type: object
24 required:
25 - metadata
26 - spec
27 properties:
28 apiVersion:
29 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'
30 type: string
31 kind:
32 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'
33 type: string
34 metadata:
35 type: object
36 spec:
37 description: ImagePrunerSpec defines the specs for the running image pruner.
38 type: object
39 properties:
40 affinity:
41 description: affinity is a group of node affinity scheduling rules for the image pruner pod.
42 type: object
43 properties:
44 nodeAffinity:
45 description: Describes node affinity scheduling rules for the pod.
46 type: object
47 properties:
48 preferredDuringSchedulingIgnoredDuringExecution:
49 description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
50 type: array
51 items:
52 description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
53 type: object
54 required:
55 - preference
56 - weight
57 properties:
58 preference:
59 description: A node selector term, associated with the corresponding weight.
60 type: object
61 properties:
62 matchExpressions:
63 description: A list of node selector requirements by node's labels.
64 type: array
65 items:
66 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
67 type: object
68 required:
69 - key
70 - operator
71 properties:
72 key:
73 description: The label key that the selector applies to.
74 type: string
75 operator:
76 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
77 type: string
78 values:
79 description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
80 type: array
81 items:
82 type: string
83 matchFields:
84 description: A list of node selector requirements by node's fields.
85 type: array
86 items:
87 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
88 type: object
89 required:
90 - key
91 - operator
92 properties:
93 key:
94 description: The label key that the selector applies to.
95 type: string
96 operator:
97 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
98 type: string
99 values:
100 description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
101 type: array
102 items:
103 type: string
104 x-kubernetes-map-type: atomic
105 weight:
106 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
107 type: integer
108 format: int32
109 requiredDuringSchedulingIgnoredDuringExecution:
110 description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
111 type: object
112 required:
113 - nodeSelectorTerms
114 properties:
115 nodeSelectorTerms:
116 description: Required. A list of node selector terms. The terms are ORed.
117 type: array
118 items:
119 description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
120 type: object
121 properties:
122 matchExpressions:
123 description: A list of node selector requirements by node's labels.
124 type: array
125 items:
126 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
127 type: object
128 required:
129 - key
130 - operator
131 properties:
132 key:
133 description: The label key that the selector applies to.
134 type: string
135 operator:
136 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
137 type: string
138 values:
139 description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
140 type: array
141 items:
142 type: string
143 matchFields:
144 description: A list of node selector requirements by node's fields.
145 type: array
146 items:
147 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
148 type: object
149 required:
150 - key
151 - operator
152 properties:
153 key:
154 description: The label key that the selector applies to.
155 type: string
156 operator:
157 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
158 type: string
159 values:
160 description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
161 type: array
162 items:
163 type: string
164 x-kubernetes-map-type: atomic
165 x-kubernetes-map-type: atomic
166 podAffinity:
167 description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
168 type: object
169 properties:
170 preferredDuringSchedulingIgnoredDuringExecution:
171 description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
172 type: array
173 items:
174 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
175 type: object
176 required:
177 - podAffinityTerm
178 - weight
179 properties:
180 podAffinityTerm:
181 description: Required. A pod affinity term, associated with the corresponding weight.
182 type: object
183 required:
184 - topologyKey
185 properties:
186 labelSelector:
187 description: A label query over a set of resources, in this case pods.
188 type: object
189 properties:
190 matchExpressions:
191 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
192 type: array
193 items:
194 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
195 type: object
196 required:
197 - key
198 - operator
199 properties:
200 key:
201 description: key is the label key that the selector applies to.
202 type: string
203 operator:
204 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
205 type: string
206 values:
207 description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
208 type: array
209 items:
210 type: string
211 matchLabels:
212 description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
213 type: object
214 additionalProperties:
215 type: string
216 x-kubernetes-map-type: atomic
217 namespaceSelector:
218 description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
219 type: object
220 properties:
221 matchExpressions:
222 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
223 type: array
224 items:
225 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
226 type: object
227 required:
228 - key
229 - operator
230 properties:
231 key:
232 description: key is the label key that the selector applies to.
233 type: string
234 operator:
235 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
236 type: string
237 values:
238 description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
239 type: array
240 items:
241 type: string
242 matchLabels:
243 description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
244 type: object
245 additionalProperties:
246 type: string
247 x-kubernetes-map-type: atomic
248 namespaces:
249 description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
250 type: array
251 items:
252 type: string
253 topologyKey:
254 description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
255 type: string
256 weight:
257 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
258 type: integer
259 format: int32
260 requiredDuringSchedulingIgnoredDuringExecution:
261 description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
262 type: array
263 items:
264 description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
265 type: object
266 required:
267 - topologyKey
268 properties:
269 labelSelector:
270 description: A label query over a set of resources, in this case pods.
271 type: object
272 properties:
273 matchExpressions:
274 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
275 type: array
276 items:
277 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
278 type: object
279 required:
280 - key
281 - operator
282 properties:
283 key:
284 description: key is the label key that the selector applies to.
285 type: string
286 operator:
287 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
288 type: string
289 values:
290 description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
291 type: array
292 items:
293 type: string
294 matchLabels:
295 description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
296 type: object
297 additionalProperties:
298 type: string
299 x-kubernetes-map-type: atomic
300 namespaceSelector:
301 description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
302 type: object
303 properties:
304 matchExpressions:
305 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
306 type: array
307 items:
308 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
309 type: object
310 required:
311 - key
312 - operator
313 properties:
314 key:
315 description: key is the label key that the selector applies to.
316 type: string
317 operator:
318 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
319 type: string
320 values:
321 description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
322 type: array
323 items:
324 type: string
325 matchLabels:
326 description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
327 type: object
328 additionalProperties:
329 type: string
330 x-kubernetes-map-type: atomic
331 namespaces:
332 description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
333 type: array
334 items:
335 type: string
336 topologyKey:
337 description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
338 type: string
339 podAntiAffinity:
340 description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
341 type: object
342 properties:
343 preferredDuringSchedulingIgnoredDuringExecution:
344 description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
345 type: array
346 items:
347 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
348 type: object
349 required:
350 - podAffinityTerm
351 - weight
352 properties:
353 podAffinityTerm:
354 description: Required. A pod affinity term, associated with the corresponding weight.
355 type: object
356 required:
357 - topologyKey
358 properties:
359 labelSelector:
360 description: A label query over a set of resources, in this case pods.
361 type: object
362 properties:
363 matchExpressions:
364 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
365 type: array
366 items:
367 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
368 type: object
369 required:
370 - key
371 - operator
372 properties:
373 key:
374 description: key is the label key that the selector applies to.
375 type: string
376 operator:
377 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
378 type: string
379 values:
380 description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
381 type: array
382 items:
383 type: string
384 matchLabels:
385 description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
386 type: object
387 additionalProperties:
388 type: string
389 x-kubernetes-map-type: atomic
390 namespaceSelector:
391 description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
392 type: object
393 properties:
394 matchExpressions:
395 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
396 type: array
397 items:
398 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
399 type: object
400 required:
401 - key
402 - operator
403 properties:
404 key:
405 description: key is the label key that the selector applies to.
406 type: string
407 operator:
408 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
409 type: string
410 values:
411 description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
412 type: array
413 items:
414 type: string
415 matchLabels:
416 description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
417 type: object
418 additionalProperties:
419 type: string
420 x-kubernetes-map-type: atomic
421 namespaces:
422 description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
423 type: array
424 items:
425 type: string
426 topologyKey:
427 description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
428 type: string
429 weight:
430 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
431 type: integer
432 format: int32
433 requiredDuringSchedulingIgnoredDuringExecution:
434 description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
435 type: array
436 items:
437 description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
438 type: object
439 required:
440 - topologyKey
441 properties:
442 labelSelector:
443 description: A label query over a set of resources, in this case pods.
444 type: object
445 properties:
446 matchExpressions:
447 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
448 type: array
449 items:
450 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
451 type: object
452 required:
453 - key
454 - operator
455 properties:
456 key:
457 description: key is the label key that the selector applies to.
458 type: string
459 operator:
460 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
461 type: string
462 values:
463 description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
464 type: array
465 items:
466 type: string
467 matchLabels:
468 description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
469 type: object
470 additionalProperties:
471 type: string
472 x-kubernetes-map-type: atomic
473 namespaceSelector:
474 description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
475 type: object
476 properties:
477 matchExpressions:
478 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
479 type: array
480 items:
481 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
482 type: object
483 required:
484 - key
485 - operator
486 properties:
487 key:
488 description: key is the label key that the selector applies to.
489 type: string
490 operator:
491 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
492 type: string
493 values:
494 description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
495 type: array
496 items:
497 type: string
498 matchLabels:
499 description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
500 type: object
501 additionalProperties:
502 type: string
503 x-kubernetes-map-type: atomic
504 namespaces:
505 description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
506 type: array
507 items:
508 type: string
509 topologyKey:
510 description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
511 type: string
512 failedJobsHistoryLimit:
513 description: failedJobsHistoryLimit specifies how many failed image pruner jobs to retain. Defaults to 3 if not set.
514 type: integer
515 format: int32
516 ignoreInvalidImageReferences:
517 description: ignoreInvalidImageReferences indicates whether the pruner can ignore errors while parsing image references.
518 type: boolean
519 keepTagRevisions:
520 description: keepTagRevisions specifies the number of image revisions for a tag in an image stream that will be preserved. Defaults to 3.
521 type: integer
522 keepYoungerThan:
523 description: 'keepYoungerThan specifies the minimum age in nanoseconds of an image and its referrers for it to be considered a candidate for pruning. DEPRECATED: This field is deprecated in favor of keepYoungerThanDuration. If both are set, this field is ignored and keepYoungerThanDuration takes precedence.'
524 type: integer
525 format: int64
526 keepYoungerThanDuration:
527 description: keepYoungerThanDuration specifies the minimum age of an image and its referrers for it to be considered a candidate for pruning. Defaults to 60m (60 minutes).
528 type: string
529 format: duration
530 logLevel:
531 description: "logLevel sets the level of log output for the pruner job. \n Valid values are: \"Normal\", \"Debug\", \"Trace\", \"TraceAll\". Defaults to \"Normal\"."
532 type: string
533 default: Normal
534 enum:
535 - ""
536 - Normal
537 - Debug
538 - Trace
539 - TraceAll
540 nodeSelector:
541 description: nodeSelector defines the node selection constraints for the image pruner pod.
542 type: object
543 additionalProperties:
544 type: string
545 resources:
546 description: resources defines the resource requests and limits for the image pruner pod.
547 type: object
548 properties:
549 claims:
550 description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
551 type: array
552 items:
553 description: ResourceClaim references one entry in PodSpec.ResourceClaims.
554 type: object
555 required:
556 - name
557 properties:
558 name:
559 description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
560 type: string
561 x-kubernetes-list-map-keys:
562 - name
563 x-kubernetes-list-type: map
564 limits:
565 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
566 type: object
567 additionalProperties:
568 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
569 anyOf:
570 - type: integer
571 - type: string
572 x-kubernetes-int-or-string: true
573 requests:
574 description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
575 type: object
576 additionalProperties:
577 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
578 anyOf:
579 - type: integer
580 - type: string
581 x-kubernetes-int-or-string: true
582 schedule:
583 description: 'schedule specifies when to execute the job using standard cronjob syntax: https://wikipedia.org/wiki/Cron. Defaults to `0 0 * * *`.'
584 type: string
585 successfulJobsHistoryLimit:
586 description: successfulJobsHistoryLimit specifies how many successful image pruner jobs to retain. Defaults to 3 if not set.
587 type: integer
588 format: int32
589 suspend:
590 description: suspend specifies whether or not to suspend subsequent executions of this cronjob. Defaults to false.
591 type: boolean
592 tolerations:
593 description: tolerations defines the node tolerations for the image pruner pod.
594 type: array
595 items:
596 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
597 type: object
598 properties:
599 effect:
600 description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
601 type: string
602 key:
603 description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
604 type: string
605 operator:
606 description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
607 type: string
608 tolerationSeconds:
609 description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
610 type: integer
611 format: int64
612 value:
613 description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
614 type: string
615 status:
616 description: ImagePrunerStatus reports image pruner operational status.
617 type: object
618 properties:
619 conditions:
620 description: conditions is a list of conditions and their status.
621 type: array
622 items:
623 description: OperatorCondition is just the standard condition fields.
624 type: object
625 properties:
626 lastTransitionTime:
627 type: string
628 format: date-time
629 message:
630 type: string
631 reason:
632 type: string
633 status:
634 type: string
635 type:
636 type: string
637 observedGeneration:
638 description: observedGeneration is the last generation change that has been applied.
639 type: integer
640 format: int64
641 served: true
642 storage: true
643 subresources:
644 status: {}
View as plain text