blob: f6f70db6af708e10ffc9b54cd0dd094ea36cf141 [file] [log] [blame]
okozachenko120323147262023-01-28 04:16:42 +11001{{- if .Values.crds.enabled }}
2apiVersion: apiextensions.k8s.io/v1
3kind: CustomResourceDefinition
4metadata:
5 annotations:
6 controller-gen.kubebuilder.io/version: v0.6.2
7 helm.sh/resource-policy: keep
8 creationTimestamp: null
9 name: cephblockpoolradosnamespaces.ceph.rook.io
10spec:
11 group: ceph.rook.io
12 names:
13 kind: CephBlockPoolRadosNamespace
14 listKind: CephBlockPoolRadosNamespaceList
15 plural: cephblockpoolradosnamespaces
16 singular: cephblockpoolradosnamespace
17 scope: Namespaced
18 versions:
19 - name: v1
20 schema:
21 openAPIV3Schema:
22 description: CephBlockPoolRadosNamespace represents a Ceph BlockPool Rados Namespace
23 properties:
24 apiVersion:
25 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'
26 type: string
27 kind:
28 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'
29 type: string
30 metadata:
31 type: object
32 spec:
33 description: Spec represents the specification of a Ceph BlockPool Rados Namespace
34 properties:
35 blockPoolName:
36 description: BlockPoolName is the name of Ceph BlockPool. Typically it's the name of the CephBlockPool CR.
37 type: string
38 required:
39 - blockPoolName
40 type: object
41 status:
42 description: Status represents the status of a CephBlockPool Rados Namespace
43 properties:
44 info:
45 additionalProperties:
46 type: string
47 nullable: true
48 type: object
49 phase:
50 description: ConditionType represent a resource's status
51 type: string
52 type: object
53 x-kubernetes-preserve-unknown-fields: true
54 required:
55 - metadata
56 - spec
57 type: object
58 served: true
59 storage: true
60 subresources:
61 status: {}
62status:
63 acceptedNames:
64 kind: ""
65 plural: ""
66 conditions: []
67 storedVersions: []
68---
69apiVersion: apiextensions.k8s.io/v1
70kind: CustomResourceDefinition
71metadata:
72 annotations:
73 controller-gen.kubebuilder.io/version: v0.6.2
74 helm.sh/resource-policy: keep
75 creationTimestamp: null
76 name: cephblockpools.ceph.rook.io
77spec:
78 group: ceph.rook.io
79 names:
80 kind: CephBlockPool
81 listKind: CephBlockPoolList
82 plural: cephblockpools
83 singular: cephblockpool
84 scope: Namespaced
85 versions:
86 - additionalPrinterColumns:
87 - jsonPath: .status.phase
88 name: Phase
89 type: string
90 name: v1
91 schema:
92 openAPIV3Schema:
93 description: CephBlockPool represents a Ceph Storage Pool
94 properties:
95 apiVersion:
96 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'
97 type: string
98 kind:
99 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'
100 type: string
101 metadata:
102 type: object
103 spec:
104 description: NamedBlockPoolSpec allows a block pool to be created with a non-default name. This is more specific than the NamedPoolSpec so we get schema validation on the allowed pool names that can be specified.
105 properties:
106 compressionMode:
107 description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
108 enum:
109 - none
110 - passive
111 - aggressive
112 - force
113 - ""
114 nullable: true
115 type: string
116 crushRoot:
117 description: The root of the crush hierarchy utilized by the pool
118 nullable: true
119 type: string
120 deviceClass:
121 description: The device class the OSD should set to for use in the pool
122 nullable: true
123 type: string
124 enableRBDStats:
125 description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
126 type: boolean
127 erasureCoded:
128 description: The erasure code settings
129 properties:
130 algorithm:
131 description: The algorithm for erasure coding
132 type: string
133 codingChunks:
134 description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
135 minimum: 0
136 type: integer
137 dataChunks:
138 description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
139 minimum: 0
140 type: integer
141 required:
142 - codingChunks
143 - dataChunks
144 type: object
145 failureDomain:
146 description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
147 type: string
148 mirroring:
149 description: The mirroring settings
150 properties:
151 enabled:
152 description: Enabled whether this pool is mirrored or not
153 type: boolean
154 mode:
155 description: 'Mode is the mirroring mode: either pool or image'
156 type: string
157 peers:
158 description: Peers represents the peers spec
159 nullable: true
160 properties:
161 secretNames:
162 description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
163 items:
164 type: string
165 type: array
166 type: object
167 snapshotSchedules:
168 description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
169 items:
170 description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
171 properties:
172 interval:
173 description: Interval represent the periodicity of the snapshot.
174 type: string
175 path:
176 description: Path is the path to snapshot, only valid for CephFS
177 type: string
178 startTime:
179 description: StartTime indicates when to start the snapshot
180 type: string
181 type: object
182 type: array
183 type: object
184 name:
185 description: The desired name of the pool if different from the CephBlockPool CR name.
186 enum:
187 - device_health_metrics
188 - .nfs
189 - .mgr
190 type: string
191 parameters:
192 additionalProperties:
193 type: string
194 description: Parameters is a list of properties to enable on a given pool
195 nullable: true
196 type: object
197 x-kubernetes-preserve-unknown-fields: true
198 quotas:
199 description: The quota settings
200 nullable: true
201 properties:
202 maxBytes:
203 description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
204 format: int64
205 type: integer
206 maxObjects:
207 description: MaxObjects represents the quota in objects
208 format: int64
209 type: integer
210 maxSize:
211 description: MaxSize represents the quota in bytes as a string
212 pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
213 type: string
214 type: object
215 replicated:
216 description: The replication settings
217 properties:
218 hybridStorage:
219 description: HybridStorage represents hybrid storage tier settings
220 nullable: true
221 properties:
222 primaryDeviceClass:
223 description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
224 minLength: 1
225 type: string
226 secondaryDeviceClass:
227 description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
228 minLength: 1
229 type: string
230 required:
231 - primaryDeviceClass
232 - secondaryDeviceClass
233 type: object
234 replicasPerFailureDomain:
235 description: ReplicasPerFailureDomain the number of replica in the specified failure domain
236 minimum: 1
237 type: integer
238 requireSafeReplicaSize:
239 description: RequireSafeReplicaSize if false allows you to set replica 1
240 type: boolean
241 size:
242 description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
243 minimum: 0
244 type: integer
245 subFailureDomain:
246 description: SubFailureDomain the name of the sub-failure domain
247 type: string
248 targetSizeRatio:
249 description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
250 type: number
251 required:
252 - size
253 type: object
254 statusCheck:
255 description: The mirroring statusCheck
256 properties:
257 mirror:
258 description: HealthCheckSpec represents the health check of an object store bucket
259 nullable: true
260 properties:
261 disabled:
262 type: boolean
263 interval:
264 description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
265 type: string
266 timeout:
267 type: string
268 type: object
269 type: object
270 x-kubernetes-preserve-unknown-fields: true
271 type: object
272 status:
273 description: CephBlockPoolStatus represents the mirroring status of Ceph Storage Pool
274 properties:
275 conditions:
276 items:
277 description: Condition represents a status condition on any Rook-Ceph Custom Resource.
278 properties:
279 lastHeartbeatTime:
280 format: date-time
281 type: string
282 lastTransitionTime:
283 format: date-time
284 type: string
285 message:
286 type: string
287 reason:
288 description: ConditionReason is a reason for a condition
289 type: string
290 status:
291 type: string
292 type:
293 description: ConditionType represent a resource's status
294 type: string
295 type: object
296 type: array
297 info:
298 additionalProperties:
299 type: string
300 nullable: true
301 type: object
302 mirroringInfo:
303 description: MirroringInfoSpec is the status of the pool mirroring
304 properties:
305 details:
306 type: string
307 lastChanged:
308 type: string
309 lastChecked:
310 type: string
311 mode:
312 description: Mode is the mirroring mode
313 type: string
314 peers:
315 description: Peers are the list of peer sites connected to that cluster
316 items:
317 description: PeersSpec contains peer details
318 properties:
319 client_name:
320 description: ClientName is the CephX user used to connect to the peer
321 type: string
322 direction:
323 description: Direction is the peer mirroring direction
324 type: string
325 mirror_uuid:
326 description: MirrorUUID is the mirror UUID
327 type: string
328 site_name:
329 description: SiteName is the current site name
330 type: string
331 uuid:
332 description: UUID is the peer UUID
333 type: string
334 type: object
335 type: array
336 site_name:
337 description: SiteName is the current site name
338 type: string
339 type: object
340 mirroringStatus:
341 description: MirroringStatusSpec is the status of the pool mirroring
342 properties:
343 details:
344 description: Details contains potential status errors
345 type: string
346 lastChanged:
347 description: LastChanged is the last time time the status last changed
348 type: string
349 lastChecked:
350 description: LastChecked is the last time time the status was checked
351 type: string
352 summary:
353 description: Summary is the mirroring status summary
354 properties:
355 daemon_health:
356 description: DaemonHealth is the health of the mirroring daemon
357 type: string
358 health:
359 description: Health is the mirroring health
360 type: string
361 image_health:
362 description: ImageHealth is the health of the mirrored image
363 type: string
364 states:
365 description: States is the various state for all mirrored images
366 nullable: true
367 properties:
368 error:
369 description: Error is when the mirroring state is errored
370 type: integer
371 replaying:
372 description: Replaying is when the replay of the mirroring journal is on-going
373 type: integer
374 starting_replay:
375 description: StartingReplay is when the replay of the mirroring journal starts
376 type: integer
377 stopped:
378 description: Stopped is when the mirroring state is stopped
379 type: integer
380 stopping_replay:
381 description: StopReplaying is when the replay of the mirroring journal stops
382 type: integer
383 syncing:
384 description: Syncing is when the image is syncing
385 type: integer
386 unknown:
387 description: Unknown is when the mirroring state is unknown
388 type: integer
389 type: object
390 type: object
391 type: object
392 observedGeneration:
393 description: ObservedGeneration is the latest generation observed by the controller.
394 format: int64
395 type: integer
396 phase:
397 description: ConditionType represent a resource's status
398 type: string
399 snapshotScheduleStatus:
400 description: SnapshotScheduleStatusSpec is the status of the snapshot schedule
401 properties:
402 details:
403 description: Details contains potential status errors
404 type: string
405 lastChanged:
406 description: LastChanged is the last time time the status last changed
407 type: string
408 lastChecked:
409 description: LastChecked is the last time time the status was checked
410 type: string
411 snapshotSchedules:
412 description: SnapshotSchedules is the list of snapshots scheduled
413 items:
414 description: SnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool
415 properties:
416 image:
417 description: Image is the mirrored image
418 type: string
419 items:
420 description: Items is the list schedules times for a given snapshot
421 items:
422 description: SnapshotSchedule is a schedule
423 properties:
424 interval:
425 description: Interval is the interval in which snapshots will be taken
426 type: string
427 start_time:
428 description: StartTime is the snapshot starting time
429 type: string
430 type: object
431 type: array
432 namespace:
433 description: Namespace is the RADOS namespace the image is part of
434 type: string
435 pool:
436 description: Pool is the pool name
437 type: string
438 type: object
439 nullable: true
440 type: array
441 type: object
442 type: object
443 x-kubernetes-preserve-unknown-fields: true
444 required:
445 - metadata
446 - spec
447 type: object
448 served: true
449 storage: true
450 subresources:
451 status: {}
452status:
453 acceptedNames:
454 kind: ""
455 plural: ""
456 conditions: []
457 storedVersions: []
458---
459apiVersion: apiextensions.k8s.io/v1
460kind: CustomResourceDefinition
461metadata:
462 annotations:
463 controller-gen.kubebuilder.io/version: v0.6.2
464 helm.sh/resource-policy: keep
465 creationTimestamp: null
466 name: cephbucketnotifications.ceph.rook.io
467spec:
468 group: ceph.rook.io
469 names:
470 kind: CephBucketNotification
471 listKind: CephBucketNotificationList
472 plural: cephbucketnotifications
473 singular: cephbucketnotification
474 scope: Namespaced
475 versions:
476 - name: v1
477 schema:
478 openAPIV3Schema:
479 description: CephBucketNotification represents a Bucket Notifications
480 properties:
481 apiVersion:
482 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'
483 type: string
484 kind:
485 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'
486 type: string
487 metadata:
488 type: object
489 spec:
490 description: BucketNotificationSpec represent the spec of a Bucket Notification
491 properties:
492 events:
493 description: List of events that should trigger the notification
494 items:
495 description: BucketNotificationSpec represent the event type of the bucket notification
496 enum:
497 - s3:ObjectCreated:*
498 - s3:ObjectCreated:Put
499 - s3:ObjectCreated:Post
500 - s3:ObjectCreated:Copy
501 - s3:ObjectCreated:CompleteMultipartUpload
502 - s3:ObjectRemoved:*
503 - s3:ObjectRemoved:Delete
504 - s3:ObjectRemoved:DeleteMarkerCreated
505 type: string
506 type: array
507 filter:
508 description: Spec of notification filter
509 properties:
510 keyFilters:
511 description: Filters based on the object's key
512 items:
513 description: NotificationKeyFilterRule represent a single key rule in the Notification Filter spec
514 properties:
515 name:
516 description: Name of the filter - prefix/suffix/regex
517 enum:
518 - prefix
519 - suffix
520 - regex
521 type: string
522 value:
523 description: Value to filter on
524 type: string
525 required:
526 - name
527 - value
528 type: object
529 type: array
530 metadataFilters:
531 description: Filters based on the object's metadata
532 items:
533 description: NotificationFilterRule represent a single rule in the Notification Filter spec
534 properties:
535 name:
536 description: Name of the metadata or tag
537 minLength: 1
538 type: string
539 value:
540 description: Value to filter on
541 type: string
542 required:
543 - name
544 - value
545 type: object
546 type: array
547 tagFilters:
548 description: Filters based on the object's tags
549 items:
550 description: NotificationFilterRule represent a single rule in the Notification Filter spec
551 properties:
552 name:
553 description: Name of the metadata or tag
554 minLength: 1
555 type: string
556 value:
557 description: Value to filter on
558 type: string
559 required:
560 - name
561 - value
562 type: object
563 type: array
564 type: object
565 topic:
566 description: The name of the topic associated with this notification
567 minLength: 1
568 type: string
569 required:
570 - topic
571 type: object
572 status:
573 description: Status represents the status of an object
574 properties:
575 conditions:
576 items:
577 description: Condition represents a status condition on any Rook-Ceph Custom Resource.
578 properties:
579 lastHeartbeatTime:
580 format: date-time
581 type: string
582 lastTransitionTime:
583 format: date-time
584 type: string
585 message:
586 type: string
587 reason:
588 description: ConditionReason is a reason for a condition
589 type: string
590 status:
591 type: string
592 type:
593 description: ConditionType represent a resource's status
594 type: string
595 type: object
596 type: array
597 observedGeneration:
598 description: ObservedGeneration is the latest generation observed by the controller.
599 format: int64
600 type: integer
601 phase:
602 type: string
603 type: object
604 x-kubernetes-preserve-unknown-fields: true
605 required:
606 - metadata
607 - spec
608 type: object
609 served: true
610 storage: true
611 subresources:
612 status: {}
613status:
614 acceptedNames:
615 kind: ""
616 plural: ""
617 conditions: []
618 storedVersions: []
619---
620apiVersion: apiextensions.k8s.io/v1
621kind: CustomResourceDefinition
622metadata:
623 annotations:
624 controller-gen.kubebuilder.io/version: v0.6.2
625 helm.sh/resource-policy: keep
626 creationTimestamp: null
627 name: cephbuckettopics.ceph.rook.io
628spec:
629 group: ceph.rook.io
630 names:
631 kind: CephBucketTopic
632 listKind: CephBucketTopicList
633 plural: cephbuckettopics
634 singular: cephbuckettopic
635 scope: Namespaced
636 versions:
637 - additionalPrinterColumns:
638 - jsonPath: .status.phase
639 name: Phase
640 type: string
641 name: v1
642 schema:
643 openAPIV3Schema:
644 description: CephBucketTopic represents a Ceph Object Topic for Bucket Notifications
645 properties:
646 apiVersion:
647 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'
648 type: string
649 kind:
650 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'
651 type: string
652 metadata:
653 type: object
654 spec:
655 description: BucketTopicSpec represent the spec of a Bucket Topic
656 properties:
657 endpoint:
658 description: Contains the endpoint spec of the topic
659 properties:
660 amqp:
661 description: Spec of AMQP endpoint
662 properties:
663 ackLevel:
664 default: broker
665 description: The ack level required for this topic (none/broker/routeable)
666 enum:
667 - none
668 - broker
669 - routeable
670 type: string
671 disableVerifySSL:
672 description: Indicate whether the server certificate is validated by the client or not
673 type: boolean
674 exchange:
675 description: Name of the exchange that is used to route messages based on topics
676 minLength: 1
677 type: string
678 uri:
679 description: The URI of the AMQP endpoint to push notification to
680 minLength: 1
681 type: string
682 required:
683 - exchange
684 - uri
685 type: object
686 http:
687 description: Spec of HTTP endpoint
688 properties:
689 disableVerifySSL:
690 description: Indicate whether the server certificate is validated by the client or not
691 type: boolean
692 sendCloudEvents:
693 description: 'Send the notifications with the CloudEvents header: https://github.com/cloudevents/spec/blob/main/cloudevents/adapters/aws-s3.md Supported for Ceph Quincy (v17) or newer.'
694 type: boolean
695 uri:
696 description: The URI of the HTTP endpoint to push notification to
697 minLength: 1
698 type: string
699 required:
700 - uri
701 type: object
702 kafka:
703 description: Spec of Kafka endpoint
704 properties:
705 ackLevel:
706 default: broker
707 description: The ack level required for this topic (none/broker)
708 enum:
709 - none
710 - broker
711 type: string
712 disableVerifySSL:
713 description: Indicate whether the server certificate is validated by the client or not
714 type: boolean
715 uri:
716 description: The URI of the Kafka endpoint to push notification to
717 minLength: 1
718 type: string
719 useSSL:
720 description: Indicate whether to use SSL when communicating with the broker
721 type: boolean
722 required:
723 - uri
724 type: object
725 type: object
726 objectStoreName:
727 description: The name of the object store on which to define the topic
728 minLength: 1
729 type: string
730 objectStoreNamespace:
731 description: The namespace of the object store on which to define the topic
732 minLength: 1
733 type: string
734 opaqueData:
735 description: Data which is sent in each event
736 type: string
737 persistent:
738 description: Indication whether notifications to this endpoint are persistent or not
739 type: boolean
740 required:
741 - endpoint
742 - objectStoreName
743 - objectStoreNamespace
744 type: object
745 status:
746 description: BucketTopicStatus represents the Status of a CephBucketTopic
747 properties:
748 ARN:
749 description: The ARN of the topic generated by the RGW
750 nullable: true
751 type: string
752 observedGeneration:
753 description: ObservedGeneration is the latest generation observed by the controller.
754 format: int64
755 type: integer
756 phase:
757 type: string
758 type: object
759 x-kubernetes-preserve-unknown-fields: true
760 required:
761 - metadata
762 - spec
763 type: object
764 served: true
765 storage: true
766 subresources:
767 status: {}
768status:
769 acceptedNames:
770 kind: ""
771 plural: ""
772 conditions: []
773 storedVersions: []
774---
775apiVersion: apiextensions.k8s.io/v1
776kind: CustomResourceDefinition
777metadata:
778 annotations:
779 controller-gen.kubebuilder.io/version: v0.6.2
780 helm.sh/resource-policy: keep
781 creationTimestamp: null
782 name: cephclients.ceph.rook.io
783spec:
784 group: ceph.rook.io
785 names:
786 kind: CephClient
787 listKind: CephClientList
788 plural: cephclients
789 singular: cephclient
790 scope: Namespaced
791 versions:
792 - additionalPrinterColumns:
793 - jsonPath: .status.phase
794 name: Phase
795 type: string
796 name: v1
797 schema:
798 openAPIV3Schema:
799 description: CephClient represents a Ceph Client
800 properties:
801 apiVersion:
802 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'
803 type: string
804 kind:
805 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'
806 type: string
807 metadata:
808 type: object
809 spec:
810 description: Spec represents the specification of a Ceph Client
811 properties:
812 caps:
813 additionalProperties:
814 type: string
815 type: object
816 x-kubernetes-preserve-unknown-fields: true
817 name:
818 type: string
819 required:
820 - caps
821 type: object
822 status:
823 description: Status represents the status of a Ceph Client
824 properties:
825 info:
826 additionalProperties:
827 type: string
828 nullable: true
829 type: object
830 observedGeneration:
831 description: ObservedGeneration is the latest generation observed by the controller.
832 format: int64
833 type: integer
834 phase:
835 description: ConditionType represent a resource's status
836 type: string
837 type: object
838 x-kubernetes-preserve-unknown-fields: true
839 required:
840 - metadata
841 - spec
842 type: object
843 served: true
844 storage: true
845 subresources:
846 status: {}
847status:
848 acceptedNames:
849 kind: ""
850 plural: ""
851 conditions: []
852 storedVersions: []
853---
854apiVersion: apiextensions.k8s.io/v1
855kind: CustomResourceDefinition
856metadata:
857 annotations:
858 controller-gen.kubebuilder.io/version: v0.6.2
859 helm.sh/resource-policy: keep
860 creationTimestamp: null
861 name: cephclusters.ceph.rook.io
862spec:
863 group: ceph.rook.io
864 names:
865 kind: CephCluster
866 listKind: CephClusterList
867 plural: cephclusters
868 singular: cephcluster
869 scope: Namespaced
870 versions:
871 - additionalPrinterColumns:
872 - description: Directory used on the K8s nodes
873 jsonPath: .spec.dataDirHostPath
874 name: DataDirHostPath
875 type: string
876 - description: Number of MONs
877 jsonPath: .spec.mon.count
878 name: MonCount
879 type: string
880 - jsonPath: .metadata.creationTimestamp
881 name: Age
882 type: date
883 - jsonPath: .status.phase
884 name: Phase
885 type: string
886 - description: Message
887 jsonPath: .status.message
888 name: Message
889 type: string
890 - description: Ceph Health
891 jsonPath: .status.ceph.health
892 name: Health
893 type: string
894 - jsonPath: .spec.external.enable
895 name: External
896 type: boolean
897 name: v1
898 schema:
899 openAPIV3Schema:
900 description: CephCluster is a Ceph storage cluster
901 properties:
902 apiVersion:
903 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'
904 type: string
905 kind:
906 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'
907 type: string
908 metadata:
909 type: object
910 spec:
911 description: ClusterSpec represents the specification of Ceph Cluster
912 properties:
913 annotations:
914 additionalProperties:
915 additionalProperties:
916 type: string
917 description: Annotations are annotations
918 type: object
919 description: The annotations-related configuration to add/set on each Pod related object.
920 nullable: true
921 type: object
922 x-kubernetes-preserve-unknown-fields: true
923 cephVersion:
924 description: The version information that instructs Rook to orchestrate a particular version of Ceph.
925 nullable: true
926 properties:
927 allowUnsupported:
928 description: Whether to allow unsupported versions (do not set to true in production)
929 type: boolean
930 image:
931 description: Image is the container image used to launch the ceph daemons, such as quay.io/ceph/ceph:<tag> The full list of images can be found at https://quay.io/repository/ceph/ceph?tab=tags
932 type: string
933 imagePullPolicy:
934 description: ImagePullPolicy describes a policy for if/when to pull a container image One of Always, Never, IfNotPresent.
935 enum:
936 - IfNotPresent
937 - Always
938 - Never
939 - ""
940 type: string
941 type: object
942 cleanupPolicy:
943 description: Indicates user intent when deleting a cluster; blocks orchestration and should not be set if cluster deletion is not imminent.
944 nullable: true
945 properties:
946 allowUninstallWithVolumes:
947 description: AllowUninstallWithVolumes defines whether we can proceed with the uninstall if they are RBD images still present
948 type: boolean
949 confirmation:
950 description: Confirmation represents the cleanup confirmation
951 nullable: true
952 pattern: ^$|^yes-really-destroy-data$
953 type: string
954 sanitizeDisks:
955 description: SanitizeDisks represents way we sanitize disks
956 nullable: true
957 properties:
958 dataSource:
959 description: DataSource is the data source to use to sanitize the disk with
960 enum:
961 - zero
962 - random
963 type: string
964 iteration:
965 description: Iteration is the number of pass to apply the sanitizing
966 format: int32
967 type: integer
968 method:
969 description: Method is the method we use to sanitize disks
970 enum:
971 - complete
972 - quick
973 type: string
974 type: object
975 type: object
976 continueUpgradeAfterChecksEvenIfNotHealthy:
977 description: ContinueUpgradeAfterChecksEvenIfNotHealthy defines if an upgrade should continue even if PGs are not clean
978 type: boolean
979 crashCollector:
980 description: A spec for the crash controller
981 nullable: true
982 properties:
983 daysToRetain:
984 description: DaysToRetain represents the number of days to retain crash until they get pruned
985 type: integer
986 disable:
987 description: Disable determines whether we should enable the crash collector
988 type: boolean
989 type: object
990 dashboard:
991 description: Dashboard settings
992 nullable: true
993 properties:
994 enabled:
995 description: Enabled determines whether to enable the dashboard
996 type: boolean
997 port:
998 description: Port is the dashboard webserver port
999 maximum: 65535
1000 minimum: 0
1001 type: integer
1002 ssl:
1003 description: SSL determines whether SSL should be used
1004 type: boolean
1005 urlPrefix:
1006 description: URLPrefix is a prefix for all URLs to use the dashboard with a reverse proxy
1007 type: string
1008 type: object
1009 dataDirHostPath:
1010 description: The path on the host where config and data can be persisted
1011 pattern: ^/(\S+)
1012 type: string
1013 disruptionManagement:
1014 description: A spec for configuring disruption management.
1015 nullable: true
1016 properties:
1017 machineDisruptionBudgetNamespace:
1018 description: Namespace to look for MDBs by the machineDisruptionBudgetController
1019 type: string
1020 manageMachineDisruptionBudgets:
1021 description: This enables management of machinedisruptionbudgets
1022 type: boolean
1023 managePodBudgets:
1024 description: This enables management of poddisruptionbudgets
1025 type: boolean
1026 osdMaintenanceTimeout:
1027 description: OSDMaintenanceTimeout sets how many additional minutes the DOWN/OUT interval is for drained failure domains it only works if managePodBudgets is true. the default is 30 minutes
1028 format: int64
1029 type: integer
1030 pgHealthCheckTimeout:
1031 description: PGHealthCheckTimeout is the time (in minutes) that the operator will wait for the placement groups to become healthy (active+clean) after a drain was completed and OSDs came back up. Rook will continue with the next drain if the timeout exceeds. It only works if managePodBudgets is true. No values or 0 means that the operator will wait until the placement groups are healthy before unblocking the next drain.
1032 format: int64
1033 type: integer
1034 type: object
1035 external:
1036 description: Whether the Ceph Cluster is running external to this Kubernetes cluster mon, mgr, osd, mds, and discover daemons will not be created for external clusters.
1037 nullable: true
1038 properties:
1039 enable:
1040 description: Enable determines whether external mode is enabled or not
1041 type: boolean
1042 type: object
1043 x-kubernetes-preserve-unknown-fields: true
1044 healthCheck:
1045 description: Internal daemon healthchecks and liveness probe
1046 nullable: true
1047 properties:
1048 daemonHealth:
1049 description: DaemonHealth is the health check for a given daemon
1050 nullable: true
1051 properties:
1052 mon:
1053 description: Monitor represents the health check settings for the Ceph monitor
1054 nullable: true
1055 properties:
1056 disabled:
1057 type: boolean
1058 interval:
1059 description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
1060 type: string
1061 timeout:
1062 type: string
1063 type: object
1064 osd:
1065 description: ObjectStorageDaemon represents the health check settings for the Ceph OSDs
1066 nullable: true
1067 properties:
1068 disabled:
1069 type: boolean
1070 interval:
1071 description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
1072 type: string
1073 timeout:
1074 type: string
1075 type: object
1076 status:
1077 description: Status represents the health check settings for the Ceph health
1078 nullable: true
1079 properties:
1080 disabled:
1081 type: boolean
1082 interval:
1083 description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
1084 type: string
1085 timeout:
1086 type: string
1087 type: object
1088 type: object
1089 livenessProbe:
1090 additionalProperties:
1091 description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
1092 properties:
1093 disabled:
1094 description: Disabled determines whether probe is disable or not
1095 type: boolean
1096 probe:
1097 description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
1098 properties:
1099 exec:
1100 description: Exec specifies the action to take.
1101 properties:
1102 command:
1103 description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
1104 items:
1105 type: string
1106 type: array
1107 type: object
1108 failureThreshold:
1109 description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
1110 format: int32
1111 type: integer
1112 grpc:
1113 description: GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.
1114 properties:
1115 port:
1116 description: Port number of the gRPC service. Number must be in the range 1 to 65535.
1117 format: int32
1118 type: integer
1119 service:
1120 description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
1121 type: string
1122 required:
1123 - port
1124 type: object
1125 httpGet:
1126 description: HTTPGet specifies the http request to perform.
1127 properties:
1128 host:
1129 description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
1130 type: string
1131 httpHeaders:
1132 description: Custom headers to set in the request. HTTP allows repeated headers.
1133 items:
1134 description: HTTPHeader describes a custom header to be used in HTTP probes
1135 properties:
1136 name:
1137 description: The header field name
1138 type: string
1139 value:
1140 description: The header field value
1141 type: string
1142 required:
1143 - name
1144 - value
1145 type: object
1146 type: array
1147 path:
1148 description: Path to access on the HTTP server.
1149 type: string
1150 port:
1151 anyOf:
1152 - type: integer
1153 - type: string
1154 description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
1155 x-kubernetes-int-or-string: true
1156 scheme:
1157 description: Scheme to use for connecting to the host. Defaults to HTTP.
1158 type: string
1159 required:
1160 - port
1161 type: object
1162 initialDelaySeconds:
1163 description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
1164 format: int32
1165 type: integer
1166 periodSeconds:
1167 description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
1168 format: int32
1169 type: integer
1170 successThreshold:
1171 description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
1172 format: int32
1173 type: integer
1174 tcpSocket:
1175 description: TCPSocket specifies an action involving a TCP port.
1176 properties:
1177 host:
1178 description: 'Optional: Host name to connect to, defaults to the pod IP.'
1179 type: string
1180 port:
1181 anyOf:
1182 - type: integer
1183 - type: string
1184 description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
1185 x-kubernetes-int-or-string: true
1186 required:
1187 - port
1188 type: object
1189 terminationGracePeriodSeconds:
1190 description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
1191 format: int64
1192 type: integer
1193 timeoutSeconds:
1194 description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
1195 format: int32
1196 type: integer
1197 type: object
1198 type: object
1199 description: LivenessProbe allows changing the livenessProbe configuration for a given daemon
1200 type: object
1201 startupProbe:
1202 additionalProperties:
1203 description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
1204 properties:
1205 disabled:
1206 description: Disabled determines whether probe is disable or not
1207 type: boolean
1208 probe:
1209 description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
1210 properties:
1211 exec:
1212 description: Exec specifies the action to take.
1213 properties:
1214 command:
1215 description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
1216 items:
1217 type: string
1218 type: array
1219 type: object
1220 failureThreshold:
1221 description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
1222 format: int32
1223 type: integer
1224 grpc:
1225 description: GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.
1226 properties:
1227 port:
1228 description: Port number of the gRPC service. Number must be in the range 1 to 65535.
1229 format: int32
1230 type: integer
1231 service:
1232 description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
1233 type: string
1234 required:
1235 - port
1236 type: object
1237 httpGet:
1238 description: HTTPGet specifies the http request to perform.
1239 properties:
1240 host:
1241 description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
1242 type: string
1243 httpHeaders:
1244 description: Custom headers to set in the request. HTTP allows repeated headers.
1245 items:
1246 description: HTTPHeader describes a custom header to be used in HTTP probes
1247 properties:
1248 name:
1249 description: The header field name
1250 type: string
1251 value:
1252 description: The header field value
1253 type: string
1254 required:
1255 - name
1256 - value
1257 type: object
1258 type: array
1259 path:
1260 description: Path to access on the HTTP server.
1261 type: string
1262 port:
1263 anyOf:
1264 - type: integer
1265 - type: string
1266 description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
1267 x-kubernetes-int-or-string: true
1268 scheme:
1269 description: Scheme to use for connecting to the host. Defaults to HTTP.
1270 type: string
1271 required:
1272 - port
1273 type: object
1274 initialDelaySeconds:
1275 description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
1276 format: int32
1277 type: integer
1278 periodSeconds:
1279 description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
1280 format: int32
1281 type: integer
1282 successThreshold:
1283 description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
1284 format: int32
1285 type: integer
1286 tcpSocket:
1287 description: TCPSocket specifies an action involving a TCP port.
1288 properties:
1289 host:
1290 description: 'Optional: Host name to connect to, defaults to the pod IP.'
1291 type: string
1292 port:
1293 anyOf:
1294 - type: integer
1295 - type: string
1296 description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
1297 x-kubernetes-int-or-string: true
1298 required:
1299 - port
1300 type: object
1301 terminationGracePeriodSeconds:
1302 description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
1303 format: int64
1304 type: integer
1305 timeoutSeconds:
1306 description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
1307 format: int32
1308 type: integer
1309 type: object
1310 type: object
1311 description: StartupProbe allows changing the startupProbe configuration for a given daemon
1312 type: object
1313 type: object
1314 labels:
1315 additionalProperties:
1316 additionalProperties:
1317 type: string
1318 description: Labels are label for a given daemons
1319 type: object
1320 description: The labels-related configuration to add/set on each Pod related object.
1321 nullable: true
1322 type: object
1323 x-kubernetes-preserve-unknown-fields: true
1324 logCollector:
1325 description: Logging represents loggings settings
1326 nullable: true
1327 properties:
1328 enabled:
1329 description: Enabled represents whether the log collector is enabled
1330 type: boolean
1331 maxLogSize:
1332 anyOf:
1333 - type: integer
1334 - type: string
1335 description: MaxLogSize is the maximum size of the log per ceph daemons. Must be at least 1M.
1336 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
1337 x-kubernetes-int-or-string: true
1338 periodicity:
1339 description: Periodicity is the periodicity of the log rotation.
1340 pattern: ^$|^(hourly|daily|weekly|monthly|1h|24h|1d)$
1341 type: string
1342 type: object
1343 mgr:
1344 description: A spec for mgr related options
1345 nullable: true
1346 properties:
1347 allowMultiplePerNode:
1348 description: AllowMultiplePerNode allows to run multiple managers on the same node (not recommended)
1349 type: boolean
1350 count:
1351 description: Count is the number of manager to run
1352 maximum: 2
1353 minimum: 0
1354 type: integer
1355 modules:
1356 description: Modules is the list of ceph manager modules to enable/disable
1357 items:
1358 description: Module represents mgr modules that the user wants to enable or disable
1359 properties:
1360 enabled:
1361 description: Enabled determines whether a module should be enabled or not
1362 type: boolean
1363 name:
1364 description: Name is the name of the ceph manager module
1365 type: string
1366 type: object
1367 nullable: true
1368 type: array
1369 type: object
1370 mon:
1371 description: A spec for mon related options
1372 nullable: true
1373 properties:
1374 allowMultiplePerNode:
1375 description: AllowMultiplePerNode determines if we can run multiple monitors on the same node (not recommended)
1376 type: boolean
1377 count:
1378 description: Count is the number of Ceph monitors
1379 maximum: 9
1380 minimum: 0
1381 type: integer
1382 stretchCluster:
1383 description: StretchCluster is the stretch cluster specification
1384 properties:
1385 failureDomainLabel:
1386 description: 'FailureDomainLabel the failure domain name (e,g: zone)'
1387 type: string
1388 subFailureDomain:
1389 description: SubFailureDomain is the failure domain within a zone
1390 type: string
1391 zones:
1392 description: Zones is the list of zones
1393 items:
1394 description: StretchClusterZoneSpec represents the specification of a stretched zone in a Ceph Cluster
1395 properties:
1396 arbiter:
1397 description: Arbiter determines if the zone contains the arbiter
1398 type: boolean
1399 name:
1400 description: Name is the name of the zone
1401 type: string
1402 volumeClaimTemplate:
1403 description: VolumeClaimTemplate is the PVC template
1404 properties:
1405 apiVersion:
1406 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'
1407 type: string
1408 kind:
1409 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'
1410 type: string
1411 metadata:
1412 description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
1413 properties:
1414 annotations:
1415 additionalProperties:
1416 type: string
1417 type: object
1418 finalizers:
1419 items:
1420 type: string
1421 type: array
1422 labels:
1423 additionalProperties:
1424 type: string
1425 type: object
1426 name:
1427 type: string
1428 namespace:
1429 type: string
1430 type: object
1431 spec:
1432 description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
1433 properties:
1434 accessModes:
1435 description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
1436 items:
1437 type: string
1438 type: array
1439 dataSource:
1440 description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.'
1441 properties:
1442 apiGroup:
1443 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
1444 type: string
1445 kind:
1446 description: Kind is the type of resource being referenced
1447 type: string
1448 name:
1449 description: Name is the name of resource being referenced
1450 type: string
1451 required:
1452 - kind
1453 - name
1454 type: object
1455 dataSourceRef:
1456 description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.'
1457 properties:
1458 apiGroup:
1459 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
1460 type: string
1461 kind:
1462 description: Kind is the type of resource being referenced
1463 type: string
1464 name:
1465 description: Name is the name of resource being referenced
1466 type: string
1467 required:
1468 - kind
1469 - name
1470 type: object
1471 resources:
1472 description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
1473 properties:
1474 limits:
1475 additionalProperties:
1476 anyOf:
1477 - type: integer
1478 - type: string
1479 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
1480 x-kubernetes-int-or-string: true
1481 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
1482 type: object
1483 requests:
1484 additionalProperties:
1485 anyOf:
1486 - type: integer
1487 - type: string
1488 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
1489 x-kubernetes-int-or-string: true
1490 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
1491 type: object
1492 type: object
1493 selector:
1494 description: selector is a label query over volumes to consider for binding.
1495 properties:
1496 matchExpressions:
1497 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
1498 items:
1499 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
1500 properties:
1501 key:
1502 description: key is the label key that the selector applies to.
1503 type: string
1504 operator:
1505 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
1506 type: string
1507 values:
1508 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.
1509 items:
1510 type: string
1511 type: array
1512 required:
1513 - key
1514 - operator
1515 type: object
1516 type: array
1517 matchLabels:
1518 additionalProperties:
1519 type: string
1520 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.
1521 type: object
1522 type: object
1523 storageClassName:
1524 description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
1525 type: string
1526 volumeMode:
1527 description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
1528 type: string
1529 volumeName:
1530 description: volumeName is the binding reference to the PersistentVolume backing this claim.
1531 type: string
1532 type: object
1533 status:
1534 description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
1535 properties:
1536 accessModes:
1537 description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
1538 items:
1539 type: string
1540 type: array
1541 allocatedResources:
1542 additionalProperties:
1543 anyOf:
1544 - type: integer
1545 - type: string
1546 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
1547 x-kubernetes-int-or-string: true
1548 description: allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
1549 type: object
1550 capacity:
1551 additionalProperties:
1552 anyOf:
1553 - type: integer
1554 - type: string
1555 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
1556 x-kubernetes-int-or-string: true
1557 description: capacity represents the actual resources of the underlying volume.
1558 type: object
1559 conditions:
1560 description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
1561 items:
1562 description: PersistentVolumeClaimCondition contails details about state of pvc
1563 properties:
1564 lastProbeTime:
1565 description: lastProbeTime is the time we probed the condition.
1566 format: date-time
1567 type: string
1568 lastTransitionTime:
1569 description: lastTransitionTime is the time the condition transitioned from one status to another.
1570 format: date-time
1571 type: string
1572 message:
1573 description: message is the human-readable message indicating details about last transition.
1574 type: string
1575 reason:
1576 description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
1577 type: string
1578 status:
1579 type: string
1580 type:
1581 description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
1582 type: string
1583 required:
1584 - status
1585 - type
1586 type: object
1587 type: array
1588 phase:
1589 description: phase represents the current phase of PersistentVolumeClaim.
1590 type: string
1591 resizeStatus:
1592 description: resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
1593 type: string
1594 type: object
1595 type: object
1596 x-kubernetes-preserve-unknown-fields: true
1597 type: object
1598 nullable: true
1599 type: array
1600 type: object
1601 volumeClaimTemplate:
1602 description: VolumeClaimTemplate is the PVC definition
1603 properties:
1604 apiVersion:
1605 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'
1606 type: string
1607 kind:
1608 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'
1609 type: string
1610 metadata:
1611 description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
1612 properties:
1613 annotations:
1614 additionalProperties:
1615 type: string
1616 type: object
1617 finalizers:
1618 items:
1619 type: string
1620 type: array
1621 labels:
1622 additionalProperties:
1623 type: string
1624 type: object
1625 name:
1626 type: string
1627 namespace:
1628 type: string
1629 type: object
1630 spec:
1631 description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
1632 properties:
1633 accessModes:
1634 description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
1635 items:
1636 type: string
1637 type: array
1638 dataSource:
1639 description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.'
1640 properties:
1641 apiGroup:
1642 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
1643 type: string
1644 kind:
1645 description: Kind is the type of resource being referenced
1646 type: string
1647 name:
1648 description: Name is the name of resource being referenced
1649 type: string
1650 required:
1651 - kind
1652 - name
1653 type: object
1654 dataSourceRef:
1655 description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.'
1656 properties:
1657 apiGroup:
1658 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
1659 type: string
1660 kind:
1661 description: Kind is the type of resource being referenced
1662 type: string
1663 name:
1664 description: Name is the name of resource being referenced
1665 type: string
1666 required:
1667 - kind
1668 - name
1669 type: object
1670 resources:
1671 description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
1672 properties:
1673 limits:
1674 additionalProperties:
1675 anyOf:
1676 - type: integer
1677 - type: string
1678 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
1679 x-kubernetes-int-or-string: true
1680 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
1681 type: object
1682 requests:
1683 additionalProperties:
1684 anyOf:
1685 - type: integer
1686 - type: string
1687 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
1688 x-kubernetes-int-or-string: true
1689 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
1690 type: object
1691 type: object
1692 selector:
1693 description: selector is a label query over volumes to consider for binding.
1694 properties:
1695 matchExpressions:
1696 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
1697 items:
1698 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
1699 properties:
1700 key:
1701 description: key is the label key that the selector applies to.
1702 type: string
1703 operator:
1704 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
1705 type: string
1706 values:
1707 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.
1708 items:
1709 type: string
1710 type: array
1711 required:
1712 - key
1713 - operator
1714 type: object
1715 type: array
1716 matchLabels:
1717 additionalProperties:
1718 type: string
1719 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.
1720 type: object
1721 type: object
1722 storageClassName:
1723 description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
1724 type: string
1725 volumeMode:
1726 description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
1727 type: string
1728 volumeName:
1729 description: volumeName is the binding reference to the PersistentVolume backing this claim.
1730 type: string
1731 type: object
1732 status:
1733 description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
1734 properties:
1735 accessModes:
1736 description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
1737 items:
1738 type: string
1739 type: array
1740 allocatedResources:
1741 additionalProperties:
1742 anyOf:
1743 - type: integer
1744 - type: string
1745 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
1746 x-kubernetes-int-or-string: true
1747 description: allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
1748 type: object
1749 capacity:
1750 additionalProperties:
1751 anyOf:
1752 - type: integer
1753 - type: string
1754 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
1755 x-kubernetes-int-or-string: true
1756 description: capacity represents the actual resources of the underlying volume.
1757 type: object
1758 conditions:
1759 description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
1760 items:
1761 description: PersistentVolumeClaimCondition contails details about state of pvc
1762 properties:
1763 lastProbeTime:
1764 description: lastProbeTime is the time we probed the condition.
1765 format: date-time
1766 type: string
1767 lastTransitionTime:
1768 description: lastTransitionTime is the time the condition transitioned from one status to another.
1769 format: date-time
1770 type: string
1771 message:
1772 description: message is the human-readable message indicating details about last transition.
1773 type: string
1774 reason:
1775 description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
1776 type: string
1777 status:
1778 type: string
1779 type:
1780 description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
1781 type: string
1782 required:
1783 - status
1784 - type
1785 type: object
1786 type: array
1787 phase:
1788 description: phase represents the current phase of PersistentVolumeClaim.
1789 type: string
1790 resizeStatus:
1791 description: resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
1792 type: string
1793 type: object
1794 type: object
1795 x-kubernetes-preserve-unknown-fields: true
1796 type: object
1797 monitoring:
1798 description: Prometheus based Monitoring settings
1799 nullable: true
1800 properties:
1801 enabled:
1802 description: Enabled determines whether to create the prometheus rules for the ceph cluster. If true, the prometheus types must exist or the creation will fail.
1803 type: boolean
1804 externalMgrEndpoints:
1805 description: ExternalMgrEndpoints points to an existing Ceph prometheus exporter endpoint
1806 items:
1807 description: EndpointAddress is a tuple that describes single IP address.
1808 properties:
1809 hostname:
1810 description: The Hostname of this endpoint
1811 type: string
1812 ip:
1813 description: 'The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready. TODO: This should allow hostname or IP, See #4447.'
1814 type: string
1815 nodeName:
1816 description: 'Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.'
1817 type: string
1818 targetRef:
1819 description: Reference to object providing the endpoint.
1820 properties:
1821 apiVersion:
1822 description: API version of the referent.
1823 type: string
1824 fieldPath:
1825 description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.'
1826 type: string
1827 kind:
1828 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
1829 type: string
1830 name:
1831 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
1832 type: string
1833 namespace:
1834 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
1835 type: string
1836 resourceVersion:
1837 description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
1838 type: string
1839 uid:
1840 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
1841 type: string
1842 type: object
1843 required:
1844 - ip
1845 type: object
1846 nullable: true
1847 type: array
1848 externalMgrPrometheusPort:
1849 description: ExternalMgrPrometheusPort Prometheus exporter port
1850 maximum: 65535
1851 minimum: 0
1852 type: integer
1853 type: object
1854 network:
1855 description: Network related configuration
1856 nullable: true
1857 properties:
1858 connections:
1859 description: Settings for network connections such as compression and encryption across the wire.
1860 nullable: true
1861 properties:
1862 compression:
1863 description: Compression settings for the network connections.
1864 nullable: true
1865 properties:
1866 enabled:
1867 description: Whether to compress the data in transit across the wire. The default is not set. Requires Ceph Quincy (v17) or newer.
1868 type: boolean
1869 type: object
1870 encryption:
1871 description: Encryption settings for the network connections.
1872 nullable: true
1873 properties:
1874 enabled:
1875 description: Whether to encrypt the data in transit across the wire to prevent eavesdropping the data on the network. The default is not set. Even if encryption is not enabled, clients still establish a strong initial authentication for the connection and data integrity is still validated with a crc check. When encryption is enabled, all communication between clients and Ceph daemons, or between Ceph daemons will be encrypted.
1876 type: boolean
1877 type: object
1878 type: object
1879 dualStack:
1880 description: DualStack determines whether Ceph daemons should listen on both IPv4 and IPv6
1881 type: boolean
1882 hostNetwork:
1883 description: HostNetwork to enable host network
1884 type: boolean
1885 ipFamily:
1886 description: IPFamily is the single stack IPv6 or IPv4 protocol
1887 enum:
1888 - IPv4
1889 - IPv6
1890 nullable: true
1891 type: string
1892 provider:
1893 description: Provider is what provides network connectivity to the cluster e.g. "host" or "multus"
1894 nullable: true
1895 type: string
1896 selectors:
1897 additionalProperties:
1898 type: string
1899 description: Selectors string values describe what networks will be used to connect the cluster. Meanwhile the keys describe each network respective responsibilities or any metadata storage provider decide.
1900 nullable: true
1901 type: object
1902 type: object
1903 x-kubernetes-preserve-unknown-fields: true
1904 placement:
1905 additionalProperties:
1906 description: Placement is the placement for an object
1907 properties:
1908 nodeAffinity:
1909 description: NodeAffinity is a group of node affinity scheduling rules
1910 properties:
1911 preferredDuringSchedulingIgnoredDuringExecution:
1912 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.
1913 items:
1914 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).
1915 properties:
1916 preference:
1917 description: A node selector term, associated with the corresponding weight.
1918 properties:
1919 matchExpressions:
1920 description: A list of node selector requirements by node's labels.
1921 items:
1922 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
1923 properties:
1924 key:
1925 description: The label key that the selector applies to.
1926 type: string
1927 operator:
1928 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
1929 type: string
1930 values:
1931 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.
1932 items:
1933 type: string
1934 type: array
1935 required:
1936 - key
1937 - operator
1938 type: object
1939 type: array
1940 matchFields:
1941 description: A list of node selector requirements by node's fields.
1942 items:
1943 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
1944 properties:
1945 key:
1946 description: The label key that the selector applies to.
1947 type: string
1948 operator:
1949 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
1950 type: string
1951 values:
1952 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.
1953 items:
1954 type: string
1955 type: array
1956 required:
1957 - key
1958 - operator
1959 type: object
1960 type: array
1961 type: object
1962 weight:
1963 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
1964 format: int32
1965 type: integer
1966 required:
1967 - preference
1968 - weight
1969 type: object
1970 type: array
1971 requiredDuringSchedulingIgnoredDuringExecution:
1972 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.
1973 properties:
1974 nodeSelectorTerms:
1975 description: Required. A list of node selector terms. The terms are ORed.
1976 items:
1977 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.
1978 properties:
1979 matchExpressions:
1980 description: A list of node selector requirements by node's labels.
1981 items:
1982 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
1983 properties:
1984 key:
1985 description: The label key that the selector applies to.
1986 type: string
1987 operator:
1988 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
1989 type: string
1990 values:
1991 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.
1992 items:
1993 type: string
1994 type: array
1995 required:
1996 - key
1997 - operator
1998 type: object
1999 type: array
2000 matchFields:
2001 description: A list of node selector requirements by node's fields.
2002 items:
2003 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2004 properties:
2005 key:
2006 description: The label key that the selector applies to.
2007 type: string
2008 operator:
2009 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2010 type: string
2011 values:
2012 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.
2013 items:
2014 type: string
2015 type: array
2016 required:
2017 - key
2018 - operator
2019 type: object
2020 type: array
2021 type: object
2022 type: array
2023 required:
2024 - nodeSelectorTerms
2025 type: object
2026 type: object
2027 podAffinity:
2028 description: PodAffinity is a group of inter pod affinity scheduling rules
2029 properties:
2030 preferredDuringSchedulingIgnoredDuringExecution:
2031 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.
2032 items:
2033 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
2034 properties:
2035 podAffinityTerm:
2036 description: Required. A pod affinity term, associated with the corresponding weight.
2037 properties:
2038 labelSelector:
2039 description: A label query over a set of resources, in this case pods.
2040 properties:
2041 matchExpressions:
2042 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2043 items:
2044 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2045 properties:
2046 key:
2047 description: key is the label key that the selector applies to.
2048 type: string
2049 operator:
2050 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
2051 type: string
2052 values:
2053 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.
2054 items:
2055 type: string
2056 type: array
2057 required:
2058 - key
2059 - operator
2060 type: object
2061 type: array
2062 matchLabels:
2063 additionalProperties:
2064 type: string
2065 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.
2066 type: object
2067 type: object
2068 namespaceSelector:
2069 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.
2070 properties:
2071 matchExpressions:
2072 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2073 items:
2074 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2075 properties:
2076 key:
2077 description: key is the label key that the selector applies to.
2078 type: string
2079 operator:
2080 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
2081 type: string
2082 values:
2083 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.
2084 items:
2085 type: string
2086 type: array
2087 required:
2088 - key
2089 - operator
2090 type: object
2091 type: array
2092 matchLabels:
2093 additionalProperties:
2094 type: string
2095 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.
2096 type: object
2097 type: object
2098 namespaces:
2099 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".
2100 items:
2101 type: string
2102 type: array
2103 topologyKey:
2104 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.
2105 type: string
2106 required:
2107 - topologyKey
2108 type: object
2109 weight:
2110 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
2111 format: int32
2112 type: integer
2113 required:
2114 - podAffinityTerm
2115 - weight
2116 type: object
2117 type: array
2118 requiredDuringSchedulingIgnoredDuringExecution:
2119 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.
2120 items:
2121 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
2122 properties:
2123 labelSelector:
2124 description: A label query over a set of resources, in this case pods.
2125 properties:
2126 matchExpressions:
2127 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2128 items:
2129 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2130 properties:
2131 key:
2132 description: key is the label key that the selector applies to.
2133 type: string
2134 operator:
2135 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
2136 type: string
2137 values:
2138 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.
2139 items:
2140 type: string
2141 type: array
2142 required:
2143 - key
2144 - operator
2145 type: object
2146 type: array
2147 matchLabels:
2148 additionalProperties:
2149 type: string
2150 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.
2151 type: object
2152 type: object
2153 namespaceSelector:
2154 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.
2155 properties:
2156 matchExpressions:
2157 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2158 items:
2159 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2160 properties:
2161 key:
2162 description: key is the label key that the selector applies to.
2163 type: string
2164 operator:
2165 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
2166 type: string
2167 values:
2168 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.
2169 items:
2170 type: string
2171 type: array
2172 required:
2173 - key
2174 - operator
2175 type: object
2176 type: array
2177 matchLabels:
2178 additionalProperties:
2179 type: string
2180 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.
2181 type: object
2182 type: object
2183 namespaces:
2184 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".
2185 items:
2186 type: string
2187 type: array
2188 topologyKey:
2189 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.
2190 type: string
2191 required:
2192 - topologyKey
2193 type: object
2194 type: array
2195 type: object
2196 podAntiAffinity:
2197 description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
2198 properties:
2199 preferredDuringSchedulingIgnoredDuringExecution:
2200 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.
2201 items:
2202 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
2203 properties:
2204 podAffinityTerm:
2205 description: Required. A pod affinity term, associated with the corresponding weight.
2206 properties:
2207 labelSelector:
2208 description: A label query over a set of resources, in this case pods.
2209 properties:
2210 matchExpressions:
2211 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2212 items:
2213 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2214 properties:
2215 key:
2216 description: key is the label key that the selector applies to.
2217 type: string
2218 operator:
2219 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
2220 type: string
2221 values:
2222 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.
2223 items:
2224 type: string
2225 type: array
2226 required:
2227 - key
2228 - operator
2229 type: object
2230 type: array
2231 matchLabels:
2232 additionalProperties:
2233 type: string
2234 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.
2235 type: object
2236 type: object
2237 namespaceSelector:
2238 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.
2239 properties:
2240 matchExpressions:
2241 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2242 items:
2243 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2244 properties:
2245 key:
2246 description: key is the label key that the selector applies to.
2247 type: string
2248 operator:
2249 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
2250 type: string
2251 values:
2252 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.
2253 items:
2254 type: string
2255 type: array
2256 required:
2257 - key
2258 - operator
2259 type: object
2260 type: array
2261 matchLabels:
2262 additionalProperties:
2263 type: string
2264 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.
2265 type: object
2266 type: object
2267 namespaces:
2268 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".
2269 items:
2270 type: string
2271 type: array
2272 topologyKey:
2273 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.
2274 type: string
2275 required:
2276 - topologyKey
2277 type: object
2278 weight:
2279 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
2280 format: int32
2281 type: integer
2282 required:
2283 - podAffinityTerm
2284 - weight
2285 type: object
2286 type: array
2287 requiredDuringSchedulingIgnoredDuringExecution:
2288 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.
2289 items:
2290 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
2291 properties:
2292 labelSelector:
2293 description: A label query over a set of resources, in this case pods.
2294 properties:
2295 matchExpressions:
2296 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2297 items:
2298 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2299 properties:
2300 key:
2301 description: key is the label key that the selector applies to.
2302 type: string
2303 operator:
2304 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
2305 type: string
2306 values:
2307 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.
2308 items:
2309 type: string
2310 type: array
2311 required:
2312 - key
2313 - operator
2314 type: object
2315 type: array
2316 matchLabels:
2317 additionalProperties:
2318 type: string
2319 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.
2320 type: object
2321 type: object
2322 namespaceSelector:
2323 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.
2324 properties:
2325 matchExpressions:
2326 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2327 items:
2328 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2329 properties:
2330 key:
2331 description: key is the label key that the selector applies to.
2332 type: string
2333 operator:
2334 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
2335 type: string
2336 values:
2337 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.
2338 items:
2339 type: string
2340 type: array
2341 required:
2342 - key
2343 - operator
2344 type: object
2345 type: array
2346 matchLabels:
2347 additionalProperties:
2348 type: string
2349 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.
2350 type: object
2351 type: object
2352 namespaces:
2353 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".
2354 items:
2355 type: string
2356 type: array
2357 topologyKey:
2358 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.
2359 type: string
2360 required:
2361 - topologyKey
2362 type: object
2363 type: array
2364 type: object
2365 tolerations:
2366 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
2367 items:
2368 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
2369 properties:
2370 effect:
2371 description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
2372 type: string
2373 key:
2374 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.
2375 type: string
2376 operator:
2377 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.
2378 type: string
2379 tolerationSeconds:
2380 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.
2381 format: int64
2382 type: integer
2383 value:
2384 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.
2385 type: string
2386 type: object
2387 type: array
2388 topologySpreadConstraints:
2389 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
2390 items:
2391 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
2392 properties:
2393 labelSelector:
2394 description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
2395 properties:
2396 matchExpressions:
2397 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2398 items:
2399 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2400 properties:
2401 key:
2402 description: key is the label key that the selector applies to.
2403 type: string
2404 operator:
2405 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
2406 type: string
2407 values:
2408 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.
2409 items:
2410 type: string
2411 type: array
2412 required:
2413 - key
2414 - operator
2415 type: object
2416 type: array
2417 matchLabels:
2418 additionalProperties:
2419 type: string
2420 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.
2421 type: object
2422 type: object
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00002423 matchLabelKeys:
2424 description: MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.
2425 items:
2426 type: string
2427 type: array
2428 x-kubernetes-list-type: atomic
okozachenko120323147262023-01-28 04:16:42 +11002429 maxSkew:
2430 description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
2431 format: int32
2432 type: integer
2433 minDomains:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00002434 description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
okozachenko120323147262023-01-28 04:16:42 +11002435 format: int32
2436 type: integer
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00002437 nodeAffinityPolicy:
2438 description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
2439 type: string
2440 nodeTaintsPolicy:
2441 description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
2442 type: string
okozachenko120323147262023-01-28 04:16:42 +11002443 topologyKey:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00002444 description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
okozachenko120323147262023-01-28 04:16:42 +11002445 type: string
2446 whenUnsatisfiable:
2447 description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
2448 type: string
2449 required:
2450 - maxSkew
2451 - topologyKey
2452 - whenUnsatisfiable
2453 type: object
2454 type: array
2455 type: object
2456 description: The placement-related configuration to pass to kubernetes (affinity, node selector, tolerations).
2457 nullable: true
2458 type: object
2459 x-kubernetes-preserve-unknown-fields: true
2460 priorityClassNames:
2461 additionalProperties:
2462 type: string
2463 description: PriorityClassNames sets priority classes on components
2464 nullable: true
2465 type: object
2466 x-kubernetes-preserve-unknown-fields: true
2467 removeOSDsIfOutAndSafeToRemove:
2468 description: Remove the OSD that is out and safe to remove only if this option is true
2469 type: boolean
2470 resources:
2471 additionalProperties:
2472 description: ResourceRequirements describes the compute resource requirements.
2473 properties:
2474 limits:
2475 additionalProperties:
2476 anyOf:
2477 - type: integer
2478 - type: string
2479 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
2480 x-kubernetes-int-or-string: true
2481 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
2482 type: object
2483 requests:
2484 additionalProperties:
2485 anyOf:
2486 - type: integer
2487 - type: string
2488 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
2489 x-kubernetes-int-or-string: true
2490 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
2491 type: object
2492 type: object
2493 description: Resources set resource requests and limits
2494 nullable: true
2495 type: object
2496 x-kubernetes-preserve-unknown-fields: true
2497 security:
2498 description: Security represents security settings
2499 nullable: true
2500 properties:
2501 kms:
2502 description: KeyManagementService is the main Key Management option
2503 nullable: true
2504 properties:
2505 connectionDetails:
2506 additionalProperties:
2507 type: string
2508 description: ConnectionDetails contains the KMS connection details (address, port etc)
2509 nullable: true
2510 type: object
2511 x-kubernetes-preserve-unknown-fields: true
2512 tokenSecretName:
2513 description: TokenSecretName is the kubernetes secret containing the KMS token
2514 type: string
2515 type: object
2516 type: object
2517 skipUpgradeChecks:
2518 description: SkipUpgradeChecks defines if an upgrade should be forced even if one of the check fails
2519 type: boolean
2520 storage:
2521 description: A spec for available storage in the cluster and how it should be used
2522 nullable: true
2523 properties:
2524 config:
2525 additionalProperties:
2526 type: string
2527 nullable: true
2528 type: object
2529 x-kubernetes-preserve-unknown-fields: true
2530 deviceFilter:
2531 description: A regular expression to allow more fine-grained selection of devices on nodes across the cluster
2532 type: string
2533 devicePathFilter:
2534 description: A regular expression to allow more fine-grained selection of devices with path names
2535 type: string
2536 devices:
2537 description: List of devices to use as storage devices
2538 items:
2539 description: Device represents a disk to use in the cluster
2540 properties:
2541 config:
2542 additionalProperties:
2543 type: string
2544 nullable: true
2545 type: object
2546 x-kubernetes-preserve-unknown-fields: true
2547 fullpath:
2548 type: string
2549 name:
2550 type: string
2551 type: object
2552 nullable: true
2553 type: array
2554 x-kubernetes-preserve-unknown-fields: true
2555 nodes:
2556 items:
2557 description: Node is a storage nodes
2558 properties:
2559 config:
2560 additionalProperties:
2561 type: string
2562 nullable: true
2563 type: object
2564 x-kubernetes-preserve-unknown-fields: true
2565 deviceFilter:
2566 description: A regular expression to allow more fine-grained selection of devices on nodes across the cluster
2567 type: string
2568 devicePathFilter:
2569 description: A regular expression to allow more fine-grained selection of devices with path names
2570 type: string
2571 devices:
2572 description: List of devices to use as storage devices
2573 items:
2574 description: Device represents a disk to use in the cluster
2575 properties:
2576 config:
2577 additionalProperties:
2578 type: string
2579 nullable: true
2580 type: object
2581 x-kubernetes-preserve-unknown-fields: true
2582 fullpath:
2583 type: string
2584 name:
2585 type: string
2586 type: object
2587 nullable: true
2588 type: array
2589 x-kubernetes-preserve-unknown-fields: true
2590 name:
2591 type: string
2592 resources:
2593 description: ResourceRequirements describes the compute resource requirements.
2594 nullable: true
2595 properties:
2596 limits:
2597 additionalProperties:
2598 anyOf:
2599 - type: integer
2600 - type: string
2601 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
2602 x-kubernetes-int-or-string: true
2603 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
2604 type: object
2605 requests:
2606 additionalProperties:
2607 anyOf:
2608 - type: integer
2609 - type: string
2610 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
2611 x-kubernetes-int-or-string: true
2612 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
2613 type: object
2614 type: object
2615 x-kubernetes-preserve-unknown-fields: true
2616 useAllDevices:
2617 description: Whether to consume all the storage devices found on a machine
2618 type: boolean
2619 volumeClaimTemplates:
2620 description: PersistentVolumeClaims to use as storage
2621 items:
2622 description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
2623 properties:
2624 apiVersion:
2625 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'
2626 type: string
2627 kind:
2628 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'
2629 type: string
2630 metadata:
2631 description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
2632 properties:
2633 annotations:
2634 additionalProperties:
2635 type: string
2636 type: object
2637 finalizers:
2638 items:
2639 type: string
2640 type: array
2641 labels:
2642 additionalProperties:
2643 type: string
2644 type: object
2645 name:
2646 type: string
2647 namespace:
2648 type: string
2649 type: object
2650 spec:
2651 description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
2652 properties:
2653 accessModes:
2654 description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
2655 items:
2656 type: string
2657 type: array
2658 dataSource:
2659 description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.'
2660 properties:
2661 apiGroup:
2662 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
2663 type: string
2664 kind:
2665 description: Kind is the type of resource being referenced
2666 type: string
2667 name:
2668 description: Name is the name of resource being referenced
2669 type: string
2670 required:
2671 - kind
2672 - name
2673 type: object
2674 dataSourceRef:
2675 description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.'
2676 properties:
2677 apiGroup:
2678 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
2679 type: string
2680 kind:
2681 description: Kind is the type of resource being referenced
2682 type: string
2683 name:
2684 description: Name is the name of resource being referenced
2685 type: string
2686 required:
2687 - kind
2688 - name
2689 type: object
2690 resources:
2691 description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
2692 properties:
2693 limits:
2694 additionalProperties:
2695 anyOf:
2696 - type: integer
2697 - type: string
2698 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
2699 x-kubernetes-int-or-string: true
2700 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
2701 type: object
2702 requests:
2703 additionalProperties:
2704 anyOf:
2705 - type: integer
2706 - type: string
2707 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
2708 x-kubernetes-int-or-string: true
2709 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
2710 type: object
2711 type: object
2712 selector:
2713 description: selector is a label query over volumes to consider for binding.
2714 properties:
2715 matchExpressions:
2716 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2717 items:
2718 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2719 properties:
2720 key:
2721 description: key is the label key that the selector applies to.
2722 type: string
2723 operator:
2724 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
2725 type: string
2726 values:
2727 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.
2728 items:
2729 type: string
2730 type: array
2731 required:
2732 - key
2733 - operator
2734 type: object
2735 type: array
2736 matchLabels:
2737 additionalProperties:
2738 type: string
2739 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.
2740 type: object
2741 type: object
2742 storageClassName:
2743 description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
2744 type: string
2745 volumeMode:
2746 description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
2747 type: string
2748 volumeName:
2749 description: volumeName is the binding reference to the PersistentVolume backing this claim.
2750 type: string
2751 type: object
2752 status:
2753 description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
2754 properties:
2755 accessModes:
2756 description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
2757 items:
2758 type: string
2759 type: array
2760 allocatedResources:
2761 additionalProperties:
2762 anyOf:
2763 - type: integer
2764 - type: string
2765 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
2766 x-kubernetes-int-or-string: true
2767 description: allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
2768 type: object
2769 capacity:
2770 additionalProperties:
2771 anyOf:
2772 - type: integer
2773 - type: string
2774 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
2775 x-kubernetes-int-or-string: true
2776 description: capacity represents the actual resources of the underlying volume.
2777 type: object
2778 conditions:
2779 description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
2780 items:
2781 description: PersistentVolumeClaimCondition contails details about state of pvc
2782 properties:
2783 lastProbeTime:
2784 description: lastProbeTime is the time we probed the condition.
2785 format: date-time
2786 type: string
2787 lastTransitionTime:
2788 description: lastTransitionTime is the time the condition transitioned from one status to another.
2789 format: date-time
2790 type: string
2791 message:
2792 description: message is the human-readable message indicating details about last transition.
2793 type: string
2794 reason:
2795 description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
2796 type: string
2797 status:
2798 type: string
2799 type:
2800 description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
2801 type: string
2802 required:
2803 - status
2804 - type
2805 type: object
2806 type: array
2807 phase:
2808 description: phase represents the current phase of PersistentVolumeClaim.
2809 type: string
2810 resizeStatus:
2811 description: resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
2812 type: string
2813 type: object
2814 type: object
2815 type: array
2816 type: object
2817 nullable: true
2818 type: array
2819 onlyApplyOSDPlacement:
2820 type: boolean
2821 storageClassDeviceSets:
2822 items:
2823 description: StorageClassDeviceSet is a storage class device set
2824 properties:
2825 config:
2826 additionalProperties:
2827 type: string
2828 description: Provider-specific device configuration
2829 nullable: true
2830 type: object
2831 x-kubernetes-preserve-unknown-fields: true
2832 count:
2833 description: Count is the number of devices in this set
2834 minimum: 1
2835 type: integer
2836 encrypted:
2837 description: Whether to encrypt the deviceSet
2838 type: boolean
2839 name:
2840 description: Name is a unique identifier for the set
2841 type: string
2842 placement:
2843 description: Placement is the placement for an object
2844 nullable: true
2845 properties:
2846 nodeAffinity:
2847 description: NodeAffinity is a group of node affinity scheduling rules
2848 properties:
2849 preferredDuringSchedulingIgnoredDuringExecution:
2850 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.
2851 items:
2852 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).
2853 properties:
2854 preference:
2855 description: A node selector term, associated with the corresponding weight.
2856 properties:
2857 matchExpressions:
2858 description: A list of node selector requirements by node's labels.
2859 items:
2860 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2861 properties:
2862 key:
2863 description: The label key that the selector applies to.
2864 type: string
2865 operator:
2866 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2867 type: string
2868 values:
2869 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.
2870 items:
2871 type: string
2872 type: array
2873 required:
2874 - key
2875 - operator
2876 type: object
2877 type: array
2878 matchFields:
2879 description: A list of node selector requirements by node's fields.
2880 items:
2881 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2882 properties:
2883 key:
2884 description: The label key that the selector applies to.
2885 type: string
2886 operator:
2887 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2888 type: string
2889 values:
2890 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.
2891 items:
2892 type: string
2893 type: array
2894 required:
2895 - key
2896 - operator
2897 type: object
2898 type: array
2899 type: object
2900 weight:
2901 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
2902 format: int32
2903 type: integer
2904 required:
2905 - preference
2906 - weight
2907 type: object
2908 type: array
2909 requiredDuringSchedulingIgnoredDuringExecution:
2910 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.
2911 properties:
2912 nodeSelectorTerms:
2913 description: Required. A list of node selector terms. The terms are ORed.
2914 items:
2915 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.
2916 properties:
2917 matchExpressions:
2918 description: A list of node selector requirements by node's labels.
2919 items:
2920 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2921 properties:
2922 key:
2923 description: The label key that the selector applies to.
2924 type: string
2925 operator:
2926 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2927 type: string
2928 values:
2929 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.
2930 items:
2931 type: string
2932 type: array
2933 required:
2934 - key
2935 - operator
2936 type: object
2937 type: array
2938 matchFields:
2939 description: A list of node selector requirements by node's fields.
2940 items:
2941 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2942 properties:
2943 key:
2944 description: The label key that the selector applies to.
2945 type: string
2946 operator:
2947 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2948 type: string
2949 values:
2950 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.
2951 items:
2952 type: string
2953 type: array
2954 required:
2955 - key
2956 - operator
2957 type: object
2958 type: array
2959 type: object
2960 type: array
2961 required:
2962 - nodeSelectorTerms
2963 type: object
2964 type: object
2965 podAffinity:
2966 description: PodAffinity is a group of inter pod affinity scheduling rules
2967 properties:
2968 preferredDuringSchedulingIgnoredDuringExecution:
2969 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.
2970 items:
2971 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
2972 properties:
2973 podAffinityTerm:
2974 description: Required. A pod affinity term, associated with the corresponding weight.
2975 properties:
2976 labelSelector:
2977 description: A label query over a set of resources, in this case pods.
2978 properties:
2979 matchExpressions:
2980 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2981 items:
2982 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
2983 properties:
2984 key:
2985 description: key is the label key that the selector applies to.
2986 type: string
2987 operator:
2988 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
2989 type: string
2990 values:
2991 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.
2992 items:
2993 type: string
2994 type: array
2995 required:
2996 - key
2997 - operator
2998 type: object
2999 type: array
3000 matchLabels:
3001 additionalProperties:
3002 type: string
3003 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.
3004 type: object
3005 type: object
3006 namespaceSelector:
3007 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.
3008 properties:
3009 matchExpressions:
3010 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3011 items:
3012 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3013 properties:
3014 key:
3015 description: key is the label key that the selector applies to.
3016 type: string
3017 operator:
3018 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3019 type: string
3020 values:
3021 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.
3022 items:
3023 type: string
3024 type: array
3025 required:
3026 - key
3027 - operator
3028 type: object
3029 type: array
3030 matchLabels:
3031 additionalProperties:
3032 type: string
3033 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.
3034 type: object
3035 type: object
3036 namespaces:
3037 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".
3038 items:
3039 type: string
3040 type: array
3041 topologyKey:
3042 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.
3043 type: string
3044 required:
3045 - topologyKey
3046 type: object
3047 weight:
3048 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
3049 format: int32
3050 type: integer
3051 required:
3052 - podAffinityTerm
3053 - weight
3054 type: object
3055 type: array
3056 requiredDuringSchedulingIgnoredDuringExecution:
3057 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.
3058 items:
3059 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
3060 properties:
3061 labelSelector:
3062 description: A label query over a set of resources, in this case pods.
3063 properties:
3064 matchExpressions:
3065 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3066 items:
3067 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3068 properties:
3069 key:
3070 description: key is the label key that the selector applies to.
3071 type: string
3072 operator:
3073 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3074 type: string
3075 values:
3076 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.
3077 items:
3078 type: string
3079 type: array
3080 required:
3081 - key
3082 - operator
3083 type: object
3084 type: array
3085 matchLabels:
3086 additionalProperties:
3087 type: string
3088 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.
3089 type: object
3090 type: object
3091 namespaceSelector:
3092 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.
3093 properties:
3094 matchExpressions:
3095 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3096 items:
3097 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3098 properties:
3099 key:
3100 description: key is the label key that the selector applies to.
3101 type: string
3102 operator:
3103 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3104 type: string
3105 values:
3106 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.
3107 items:
3108 type: string
3109 type: array
3110 required:
3111 - key
3112 - operator
3113 type: object
3114 type: array
3115 matchLabels:
3116 additionalProperties:
3117 type: string
3118 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.
3119 type: object
3120 type: object
3121 namespaces:
3122 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".
3123 items:
3124 type: string
3125 type: array
3126 topologyKey:
3127 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.
3128 type: string
3129 required:
3130 - topologyKey
3131 type: object
3132 type: array
3133 type: object
3134 podAntiAffinity:
3135 description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
3136 properties:
3137 preferredDuringSchedulingIgnoredDuringExecution:
3138 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.
3139 items:
3140 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
3141 properties:
3142 podAffinityTerm:
3143 description: Required. A pod affinity term, associated with the corresponding weight.
3144 properties:
3145 labelSelector:
3146 description: A label query over a set of resources, in this case pods.
3147 properties:
3148 matchExpressions:
3149 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3150 items:
3151 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3152 properties:
3153 key:
3154 description: key is the label key that the selector applies to.
3155 type: string
3156 operator:
3157 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3158 type: string
3159 values:
3160 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.
3161 items:
3162 type: string
3163 type: array
3164 required:
3165 - key
3166 - operator
3167 type: object
3168 type: array
3169 matchLabels:
3170 additionalProperties:
3171 type: string
3172 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.
3173 type: object
3174 type: object
3175 namespaceSelector:
3176 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.
3177 properties:
3178 matchExpressions:
3179 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3180 items:
3181 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3182 properties:
3183 key:
3184 description: key is the label key that the selector applies to.
3185 type: string
3186 operator:
3187 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3188 type: string
3189 values:
3190 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.
3191 items:
3192 type: string
3193 type: array
3194 required:
3195 - key
3196 - operator
3197 type: object
3198 type: array
3199 matchLabels:
3200 additionalProperties:
3201 type: string
3202 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.
3203 type: object
3204 type: object
3205 namespaces:
3206 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".
3207 items:
3208 type: string
3209 type: array
3210 topologyKey:
3211 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.
3212 type: string
3213 required:
3214 - topologyKey
3215 type: object
3216 weight:
3217 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
3218 format: int32
3219 type: integer
3220 required:
3221 - podAffinityTerm
3222 - weight
3223 type: object
3224 type: array
3225 requiredDuringSchedulingIgnoredDuringExecution:
3226 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.
3227 items:
3228 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
3229 properties:
3230 labelSelector:
3231 description: A label query over a set of resources, in this case pods.
3232 properties:
3233 matchExpressions:
3234 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3235 items:
3236 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3237 properties:
3238 key:
3239 description: key is the label key that the selector applies to.
3240 type: string
3241 operator:
3242 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3243 type: string
3244 values:
3245 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.
3246 items:
3247 type: string
3248 type: array
3249 required:
3250 - key
3251 - operator
3252 type: object
3253 type: array
3254 matchLabels:
3255 additionalProperties:
3256 type: string
3257 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.
3258 type: object
3259 type: object
3260 namespaceSelector:
3261 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.
3262 properties:
3263 matchExpressions:
3264 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3265 items:
3266 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3267 properties:
3268 key:
3269 description: key is the label key that the selector applies to.
3270 type: string
3271 operator:
3272 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3273 type: string
3274 values:
3275 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.
3276 items:
3277 type: string
3278 type: array
3279 required:
3280 - key
3281 - operator
3282 type: object
3283 type: array
3284 matchLabels:
3285 additionalProperties:
3286 type: string
3287 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.
3288 type: object
3289 type: object
3290 namespaces:
3291 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".
3292 items:
3293 type: string
3294 type: array
3295 topologyKey:
3296 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.
3297 type: string
3298 required:
3299 - topologyKey
3300 type: object
3301 type: array
3302 type: object
3303 tolerations:
3304 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
3305 items:
3306 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
3307 properties:
3308 effect:
3309 description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
3310 type: string
3311 key:
3312 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.
3313 type: string
3314 operator:
3315 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.
3316 type: string
3317 tolerationSeconds:
3318 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.
3319 format: int64
3320 type: integer
3321 value:
3322 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.
3323 type: string
3324 type: object
3325 type: array
3326 topologySpreadConstraints:
3327 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
3328 items:
3329 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
3330 properties:
3331 labelSelector:
3332 description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
3333 properties:
3334 matchExpressions:
3335 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3336 items:
3337 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3338 properties:
3339 key:
3340 description: key is the label key that the selector applies to.
3341 type: string
3342 operator:
3343 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3344 type: string
3345 values:
3346 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.
3347 items:
3348 type: string
3349 type: array
3350 required:
3351 - key
3352 - operator
3353 type: object
3354 type: array
3355 matchLabels:
3356 additionalProperties:
3357 type: string
3358 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.
3359 type: object
3360 type: object
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00003361 matchLabelKeys:
3362 description: MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.
3363 items:
3364 type: string
3365 type: array
3366 x-kubernetes-list-type: atomic
okozachenko120323147262023-01-28 04:16:42 +11003367 maxSkew:
3368 description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
3369 format: int32
3370 type: integer
3371 minDomains:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00003372 description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
okozachenko120323147262023-01-28 04:16:42 +11003373 format: int32
3374 type: integer
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00003375 nodeAffinityPolicy:
3376 description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
3377 type: string
3378 nodeTaintsPolicy:
3379 description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
3380 type: string
okozachenko120323147262023-01-28 04:16:42 +11003381 topologyKey:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00003382 description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
okozachenko120323147262023-01-28 04:16:42 +11003383 type: string
3384 whenUnsatisfiable:
3385 description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
3386 type: string
3387 required:
3388 - maxSkew
3389 - topologyKey
3390 - whenUnsatisfiable
3391 type: object
3392 type: array
3393 type: object
3394 x-kubernetes-preserve-unknown-fields: true
3395 portable:
3396 description: Portable represents OSD portability across the hosts
3397 type: boolean
3398 preparePlacement:
3399 description: Placement is the placement for an object
3400 nullable: true
3401 properties:
3402 nodeAffinity:
3403 description: NodeAffinity is a group of node affinity scheduling rules
3404 properties:
3405 preferredDuringSchedulingIgnoredDuringExecution:
3406 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.
3407 items:
3408 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).
3409 properties:
3410 preference:
3411 description: A node selector term, associated with the corresponding weight.
3412 properties:
3413 matchExpressions:
3414 description: A list of node selector requirements by node's labels.
3415 items:
3416 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3417 properties:
3418 key:
3419 description: The label key that the selector applies to.
3420 type: string
3421 operator:
3422 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
3423 type: string
3424 values:
3425 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.
3426 items:
3427 type: string
3428 type: array
3429 required:
3430 - key
3431 - operator
3432 type: object
3433 type: array
3434 matchFields:
3435 description: A list of node selector requirements by node's fields.
3436 items:
3437 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3438 properties:
3439 key:
3440 description: The label key that the selector applies to.
3441 type: string
3442 operator:
3443 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
3444 type: string
3445 values:
3446 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.
3447 items:
3448 type: string
3449 type: array
3450 required:
3451 - key
3452 - operator
3453 type: object
3454 type: array
3455 type: object
3456 weight:
3457 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
3458 format: int32
3459 type: integer
3460 required:
3461 - preference
3462 - weight
3463 type: object
3464 type: array
3465 requiredDuringSchedulingIgnoredDuringExecution:
3466 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.
3467 properties:
3468 nodeSelectorTerms:
3469 description: Required. A list of node selector terms. The terms are ORed.
3470 items:
3471 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.
3472 properties:
3473 matchExpressions:
3474 description: A list of node selector requirements by node's labels.
3475 items:
3476 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3477 properties:
3478 key:
3479 description: The label key that the selector applies to.
3480 type: string
3481 operator:
3482 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
3483 type: string
3484 values:
3485 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.
3486 items:
3487 type: string
3488 type: array
3489 required:
3490 - key
3491 - operator
3492 type: object
3493 type: array
3494 matchFields:
3495 description: A list of node selector requirements by node's fields.
3496 items:
3497 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3498 properties:
3499 key:
3500 description: The label key that the selector applies to.
3501 type: string
3502 operator:
3503 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
3504 type: string
3505 values:
3506 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.
3507 items:
3508 type: string
3509 type: array
3510 required:
3511 - key
3512 - operator
3513 type: object
3514 type: array
3515 type: object
3516 type: array
3517 required:
3518 - nodeSelectorTerms
3519 type: object
3520 type: object
3521 podAffinity:
3522 description: PodAffinity is a group of inter pod affinity scheduling rules
3523 properties:
3524 preferredDuringSchedulingIgnoredDuringExecution:
3525 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.
3526 items:
3527 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
3528 properties:
3529 podAffinityTerm:
3530 description: Required. A pod affinity term, associated with the corresponding weight.
3531 properties:
3532 labelSelector:
3533 description: A label query over a set of resources, in this case pods.
3534 properties:
3535 matchExpressions:
3536 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3537 items:
3538 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3539 properties:
3540 key:
3541 description: key is the label key that the selector applies to.
3542 type: string
3543 operator:
3544 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3545 type: string
3546 values:
3547 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.
3548 items:
3549 type: string
3550 type: array
3551 required:
3552 - key
3553 - operator
3554 type: object
3555 type: array
3556 matchLabels:
3557 additionalProperties:
3558 type: string
3559 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.
3560 type: object
3561 type: object
3562 namespaceSelector:
3563 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.
3564 properties:
3565 matchExpressions:
3566 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3567 items:
3568 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3569 properties:
3570 key:
3571 description: key is the label key that the selector applies to.
3572 type: string
3573 operator:
3574 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3575 type: string
3576 values:
3577 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.
3578 items:
3579 type: string
3580 type: array
3581 required:
3582 - key
3583 - operator
3584 type: object
3585 type: array
3586 matchLabels:
3587 additionalProperties:
3588 type: string
3589 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.
3590 type: object
3591 type: object
3592 namespaces:
3593 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".
3594 items:
3595 type: string
3596 type: array
3597 topologyKey:
3598 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.
3599 type: string
3600 required:
3601 - topologyKey
3602 type: object
3603 weight:
3604 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
3605 format: int32
3606 type: integer
3607 required:
3608 - podAffinityTerm
3609 - weight
3610 type: object
3611 type: array
3612 requiredDuringSchedulingIgnoredDuringExecution:
3613 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.
3614 items:
3615 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
3616 properties:
3617 labelSelector:
3618 description: A label query over a set of resources, in this case pods.
3619 properties:
3620 matchExpressions:
3621 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3622 items:
3623 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3624 properties:
3625 key:
3626 description: key is the label key that the selector applies to.
3627 type: string
3628 operator:
3629 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3630 type: string
3631 values:
3632 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.
3633 items:
3634 type: string
3635 type: array
3636 required:
3637 - key
3638 - operator
3639 type: object
3640 type: array
3641 matchLabels:
3642 additionalProperties:
3643 type: string
3644 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.
3645 type: object
3646 type: object
3647 namespaceSelector:
3648 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.
3649 properties:
3650 matchExpressions:
3651 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3652 items:
3653 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3654 properties:
3655 key:
3656 description: key is the label key that the selector applies to.
3657 type: string
3658 operator:
3659 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3660 type: string
3661 values:
3662 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.
3663 items:
3664 type: string
3665 type: array
3666 required:
3667 - key
3668 - operator
3669 type: object
3670 type: array
3671 matchLabels:
3672 additionalProperties:
3673 type: string
3674 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.
3675 type: object
3676 type: object
3677 namespaces:
3678 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".
3679 items:
3680 type: string
3681 type: array
3682 topologyKey:
3683 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.
3684 type: string
3685 required:
3686 - topologyKey
3687 type: object
3688 type: array
3689 type: object
3690 podAntiAffinity:
3691 description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
3692 properties:
3693 preferredDuringSchedulingIgnoredDuringExecution:
3694 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.
3695 items:
3696 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
3697 properties:
3698 podAffinityTerm:
3699 description: Required. A pod affinity term, associated with the corresponding weight.
3700 properties:
3701 labelSelector:
3702 description: A label query over a set of resources, in this case pods.
3703 properties:
3704 matchExpressions:
3705 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3706 items:
3707 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3708 properties:
3709 key:
3710 description: key is the label key that the selector applies to.
3711 type: string
3712 operator:
3713 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3714 type: string
3715 values:
3716 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.
3717 items:
3718 type: string
3719 type: array
3720 required:
3721 - key
3722 - operator
3723 type: object
3724 type: array
3725 matchLabels:
3726 additionalProperties:
3727 type: string
3728 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.
3729 type: object
3730 type: object
3731 namespaceSelector:
3732 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.
3733 properties:
3734 matchExpressions:
3735 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3736 items:
3737 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3738 properties:
3739 key:
3740 description: key is the label key that the selector applies to.
3741 type: string
3742 operator:
3743 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3744 type: string
3745 values:
3746 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.
3747 items:
3748 type: string
3749 type: array
3750 required:
3751 - key
3752 - operator
3753 type: object
3754 type: array
3755 matchLabels:
3756 additionalProperties:
3757 type: string
3758 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.
3759 type: object
3760 type: object
3761 namespaces:
3762 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".
3763 items:
3764 type: string
3765 type: array
3766 topologyKey:
3767 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.
3768 type: string
3769 required:
3770 - topologyKey
3771 type: object
3772 weight:
3773 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
3774 format: int32
3775 type: integer
3776 required:
3777 - podAffinityTerm
3778 - weight
3779 type: object
3780 type: array
3781 requiredDuringSchedulingIgnoredDuringExecution:
3782 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.
3783 items:
3784 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
3785 properties:
3786 labelSelector:
3787 description: A label query over a set of resources, in this case pods.
3788 properties:
3789 matchExpressions:
3790 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3791 items:
3792 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3793 properties:
3794 key:
3795 description: key is the label key that the selector applies to.
3796 type: string
3797 operator:
3798 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3799 type: string
3800 values:
3801 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.
3802 items:
3803 type: string
3804 type: array
3805 required:
3806 - key
3807 - operator
3808 type: object
3809 type: array
3810 matchLabels:
3811 additionalProperties:
3812 type: string
3813 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.
3814 type: object
3815 type: object
3816 namespaceSelector:
3817 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.
3818 properties:
3819 matchExpressions:
3820 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3821 items:
3822 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3823 properties:
3824 key:
3825 description: key is the label key that the selector applies to.
3826 type: string
3827 operator:
3828 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3829 type: string
3830 values:
3831 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.
3832 items:
3833 type: string
3834 type: array
3835 required:
3836 - key
3837 - operator
3838 type: object
3839 type: array
3840 matchLabels:
3841 additionalProperties:
3842 type: string
3843 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.
3844 type: object
3845 type: object
3846 namespaces:
3847 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".
3848 items:
3849 type: string
3850 type: array
3851 topologyKey:
3852 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.
3853 type: string
3854 required:
3855 - topologyKey
3856 type: object
3857 type: array
3858 type: object
3859 tolerations:
3860 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
3861 items:
3862 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
3863 properties:
3864 effect:
3865 description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
3866 type: string
3867 key:
3868 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.
3869 type: string
3870 operator:
3871 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.
3872 type: string
3873 tolerationSeconds:
3874 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.
3875 format: int64
3876 type: integer
3877 value:
3878 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.
3879 type: string
3880 type: object
3881 type: array
3882 topologySpreadConstraints:
3883 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
3884 items:
3885 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
3886 properties:
3887 labelSelector:
3888 description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
3889 properties:
3890 matchExpressions:
3891 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3892 items:
3893 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
3894 properties:
3895 key:
3896 description: key is the label key that the selector applies to.
3897 type: string
3898 operator:
3899 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
3900 type: string
3901 values:
3902 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.
3903 items:
3904 type: string
3905 type: array
3906 required:
3907 - key
3908 - operator
3909 type: object
3910 type: array
3911 matchLabels:
3912 additionalProperties:
3913 type: string
3914 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.
3915 type: object
3916 type: object
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00003917 matchLabelKeys:
3918 description: MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.
3919 items:
3920 type: string
3921 type: array
3922 x-kubernetes-list-type: atomic
okozachenko120323147262023-01-28 04:16:42 +11003923 maxSkew:
3924 description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
3925 format: int32
3926 type: integer
3927 minDomains:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00003928 description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
okozachenko120323147262023-01-28 04:16:42 +11003929 format: int32
3930 type: integer
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00003931 nodeAffinityPolicy:
3932 description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
3933 type: string
3934 nodeTaintsPolicy:
3935 description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
3936 type: string
okozachenko120323147262023-01-28 04:16:42 +11003937 topologyKey:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00003938 description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
okozachenko120323147262023-01-28 04:16:42 +11003939 type: string
3940 whenUnsatisfiable:
3941 description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
3942 type: string
3943 required:
3944 - maxSkew
3945 - topologyKey
3946 - whenUnsatisfiable
3947 type: object
3948 type: array
3949 type: object
3950 x-kubernetes-preserve-unknown-fields: true
3951 resources:
3952 description: ResourceRequirements describes the compute resource requirements.
3953 nullable: true
3954 properties:
3955 limits:
3956 additionalProperties:
3957 anyOf:
3958 - type: integer
3959 - type: string
3960 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
3961 x-kubernetes-int-or-string: true
3962 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
3963 type: object
3964 requests:
3965 additionalProperties:
3966 anyOf:
3967 - type: integer
3968 - type: string
3969 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
3970 x-kubernetes-int-or-string: true
3971 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
3972 type: object
3973 type: object
3974 x-kubernetes-preserve-unknown-fields: true
3975 schedulerName:
3976 description: Scheduler name for OSD pod placement
3977 type: string
3978 tuneDeviceClass:
3979 description: TuneSlowDeviceClass Tune the OSD when running on a slow Device Class
3980 type: boolean
3981 tuneFastDeviceClass:
3982 description: TuneFastDeviceClass Tune the OSD when running on a fast Device Class
3983 type: boolean
3984 volumeClaimTemplates:
3985 description: VolumeClaimTemplates is a list of PVC templates for the underlying storage devices
3986 items:
3987 description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
3988 properties:
3989 apiVersion:
3990 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'
3991 type: string
3992 kind:
3993 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'
3994 type: string
3995 metadata:
3996 description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
3997 properties:
3998 annotations:
3999 additionalProperties:
4000 type: string
4001 type: object
4002 x-kubernetes-preserve-unknown-fields: true
4003 finalizers:
4004 items:
4005 type: string
4006 type: array
4007 labels:
4008 additionalProperties:
4009 type: string
4010 type: object
4011 name:
4012 type: string
4013 namespace:
4014 type: string
4015 type: object
4016 spec:
4017 description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
4018 properties:
4019 accessModes:
4020 description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
4021 items:
4022 type: string
4023 type: array
4024 dataSource:
4025 description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.'
4026 properties:
4027 apiGroup:
4028 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
4029 type: string
4030 kind:
4031 description: Kind is the type of resource being referenced
4032 type: string
4033 name:
4034 description: Name is the name of resource being referenced
4035 type: string
4036 required:
4037 - kind
4038 - name
4039 type: object
4040 dataSourceRef:
4041 description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.'
4042 properties:
4043 apiGroup:
4044 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
4045 type: string
4046 kind:
4047 description: Kind is the type of resource being referenced
4048 type: string
4049 name:
4050 description: Name is the name of resource being referenced
4051 type: string
4052 required:
4053 - kind
4054 - name
4055 type: object
4056 resources:
4057 description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
4058 properties:
4059 limits:
4060 additionalProperties:
4061 anyOf:
4062 - type: integer
4063 - type: string
4064 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
4065 x-kubernetes-int-or-string: true
4066 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
4067 type: object
4068 requests:
4069 additionalProperties:
4070 anyOf:
4071 - type: integer
4072 - type: string
4073 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
4074 x-kubernetes-int-or-string: true
4075 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
4076 type: object
4077 type: object
4078 selector:
4079 description: selector is a label query over volumes to consider for binding.
4080 properties:
4081 matchExpressions:
4082 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
4083 items:
4084 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
4085 properties:
4086 key:
4087 description: key is the label key that the selector applies to.
4088 type: string
4089 operator:
4090 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
4091 type: string
4092 values:
4093 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.
4094 items:
4095 type: string
4096 type: array
4097 required:
4098 - key
4099 - operator
4100 type: object
4101 type: array
4102 matchLabels:
4103 additionalProperties:
4104 type: string
4105 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.
4106 type: object
4107 type: object
4108 storageClassName:
4109 description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
4110 type: string
4111 volumeMode:
4112 description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
4113 type: string
4114 volumeName:
4115 description: volumeName is the binding reference to the PersistentVolume backing this claim.
4116 type: string
4117 type: object
4118 status:
4119 description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
4120 properties:
4121 accessModes:
4122 description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
4123 items:
4124 type: string
4125 type: array
4126 allocatedResources:
4127 additionalProperties:
4128 anyOf:
4129 - type: integer
4130 - type: string
4131 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
4132 x-kubernetes-int-or-string: true
4133 description: allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
4134 type: object
4135 capacity:
4136 additionalProperties:
4137 anyOf:
4138 - type: integer
4139 - type: string
4140 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
4141 x-kubernetes-int-or-string: true
4142 description: capacity represents the actual resources of the underlying volume.
4143 type: object
4144 conditions:
4145 description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
4146 items:
4147 description: PersistentVolumeClaimCondition contails details about state of pvc
4148 properties:
4149 lastProbeTime:
4150 description: lastProbeTime is the time we probed the condition.
4151 format: date-time
4152 type: string
4153 lastTransitionTime:
4154 description: lastTransitionTime is the time the condition transitioned from one status to another.
4155 format: date-time
4156 type: string
4157 message:
4158 description: message is the human-readable message indicating details about last transition.
4159 type: string
4160 reason:
4161 description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
4162 type: string
4163 status:
4164 type: string
4165 type:
4166 description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
4167 type: string
4168 required:
4169 - status
4170 - type
4171 type: object
4172 type: array
4173 phase:
4174 description: phase represents the current phase of PersistentVolumeClaim.
4175 type: string
4176 resizeStatus:
4177 description: resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
4178 type: string
4179 type: object
4180 type: object
4181 type: array
4182 required:
4183 - count
4184 - name
4185 - volumeClaimTemplates
4186 type: object
4187 nullable: true
4188 type: array
4189 useAllDevices:
4190 description: Whether to consume all the storage devices found on a machine
4191 type: boolean
4192 useAllNodes:
4193 type: boolean
4194 volumeClaimTemplates:
4195 description: PersistentVolumeClaims to use as storage
4196 items:
4197 description: PersistentVolumeClaim is a user's request for and claim to a persistent volume
4198 properties:
4199 apiVersion:
4200 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'
4201 type: string
4202 kind:
4203 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'
4204 type: string
4205 metadata:
4206 description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
4207 properties:
4208 annotations:
4209 additionalProperties:
4210 type: string
4211 type: object
4212 finalizers:
4213 items:
4214 type: string
4215 type: array
4216 labels:
4217 additionalProperties:
4218 type: string
4219 type: object
4220 name:
4221 type: string
4222 namespace:
4223 type: string
4224 type: object
4225 spec:
4226 description: 'spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
4227 properties:
4228 accessModes:
4229 description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
4230 items:
4231 type: string
4232 type: array
4233 dataSource:
4234 description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.'
4235 properties:
4236 apiGroup:
4237 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
4238 type: string
4239 kind:
4240 description: Kind is the type of resource being referenced
4241 type: string
4242 name:
4243 description: Name is the name of resource being referenced
4244 type: string
4245 required:
4246 - kind
4247 - name
4248 type: object
4249 dataSourceRef:
4250 description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.'
4251 properties:
4252 apiGroup:
4253 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
4254 type: string
4255 kind:
4256 description: Kind is the type of resource being referenced
4257 type: string
4258 name:
4259 description: Name is the name of resource being referenced
4260 type: string
4261 required:
4262 - kind
4263 - name
4264 type: object
4265 resources:
4266 description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
4267 properties:
4268 limits:
4269 additionalProperties:
4270 anyOf:
4271 - type: integer
4272 - type: string
4273 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
4274 x-kubernetes-int-or-string: true
4275 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
4276 type: object
4277 requests:
4278 additionalProperties:
4279 anyOf:
4280 - type: integer
4281 - type: string
4282 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
4283 x-kubernetes-int-or-string: true
4284 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
4285 type: object
4286 type: object
4287 selector:
4288 description: selector is a label query over volumes to consider for binding.
4289 properties:
4290 matchExpressions:
4291 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
4292 items:
4293 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
4294 properties:
4295 key:
4296 description: key is the label key that the selector applies to.
4297 type: string
4298 operator:
4299 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
4300 type: string
4301 values:
4302 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.
4303 items:
4304 type: string
4305 type: array
4306 required:
4307 - key
4308 - operator
4309 type: object
4310 type: array
4311 matchLabels:
4312 additionalProperties:
4313 type: string
4314 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.
4315 type: object
4316 type: object
4317 storageClassName:
4318 description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
4319 type: string
4320 volumeMode:
4321 description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
4322 type: string
4323 volumeName:
4324 description: volumeName is the binding reference to the PersistentVolume backing this claim.
4325 type: string
4326 type: object
4327 status:
4328 description: 'status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
4329 properties:
4330 accessModes:
4331 description: 'accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
4332 items:
4333 type: string
4334 type: array
4335 allocatedResources:
4336 additionalProperties:
4337 anyOf:
4338 - type: integer
4339 - type: string
4340 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
4341 x-kubernetes-int-or-string: true
4342 description: allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
4343 type: object
4344 capacity:
4345 additionalProperties:
4346 anyOf:
4347 - type: integer
4348 - type: string
4349 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
4350 x-kubernetes-int-or-string: true
4351 description: capacity represents the actual resources of the underlying volume.
4352 type: object
4353 conditions:
4354 description: conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.
4355 items:
4356 description: PersistentVolumeClaimCondition contails details about state of pvc
4357 properties:
4358 lastProbeTime:
4359 description: lastProbeTime is the time we probed the condition.
4360 format: date-time
4361 type: string
4362 lastTransitionTime:
4363 description: lastTransitionTime is the time the condition transitioned from one status to another.
4364 format: date-time
4365 type: string
4366 message:
4367 description: message is the human-readable message indicating details about last transition.
4368 type: string
4369 reason:
4370 description: reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports "ResizeStarted" that means the underlying persistent volume is being resized.
4371 type: string
4372 status:
4373 type: string
4374 type:
4375 description: PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type
4376 type: string
4377 required:
4378 - status
4379 - type
4380 type: object
4381 type: array
4382 phase:
4383 description: phase represents the current phase of PersistentVolumeClaim.
4384 type: string
4385 resizeStatus:
4386 description: resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
4387 type: string
4388 type: object
4389 type: object
4390 type: array
4391 type: object
4392 waitTimeoutForHealthyOSDInMinutes:
4393 description: WaitTimeoutForHealthyOSDInMinutes defines the time the operator would wait before an OSD can be stopped for upgrade or restart. If the timeout exceeds and OSD is not ok to stop, then the operator would skip upgrade for the current OSD and proceed with the next one if `continueUpgradeAfterChecksEvenIfNotHealthy` is `false`. If `continueUpgradeAfterChecksEvenIfNotHealthy` is `true`, then operator would continue with the upgrade of an OSD even if its not ok to stop after the timeout. This timeout won't be applied if `skipUpgradeChecks` is `true`. The default wait timeout is 10 minutes.
4394 format: int64
4395 type: integer
4396 type: object
4397 status:
4398 description: ClusterStatus represents the status of a Ceph cluster
4399 nullable: true
4400 properties:
4401 ceph:
4402 description: CephStatus is the details health of a Ceph Cluster
4403 properties:
4404 capacity:
4405 description: Capacity is the capacity information of a Ceph Cluster
4406 properties:
4407 bytesAvailable:
4408 format: int64
4409 type: integer
4410 bytesTotal:
4411 format: int64
4412 type: integer
4413 bytesUsed:
4414 format: int64
4415 type: integer
4416 lastUpdated:
4417 type: string
4418 type: object
4419 details:
4420 additionalProperties:
4421 description: CephHealthMessage represents the health message of a Ceph Cluster
4422 properties:
4423 message:
4424 type: string
4425 severity:
4426 type: string
4427 required:
4428 - message
4429 - severity
4430 type: object
4431 type: object
4432 fsid:
4433 type: string
4434 health:
4435 type: string
4436 lastChanged:
4437 type: string
4438 lastChecked:
4439 type: string
4440 previousHealth:
4441 type: string
4442 versions:
4443 description: CephDaemonsVersions show the current ceph version for different ceph daemons
4444 properties:
4445 cephfs-mirror:
4446 additionalProperties:
4447 type: integer
4448 description: CephFSMirror shows CephFSMirror Ceph version
4449 type: object
4450 mds:
4451 additionalProperties:
4452 type: integer
4453 description: Mds shows Mds Ceph version
4454 type: object
4455 mgr:
4456 additionalProperties:
4457 type: integer
4458 description: Mgr shows Mgr Ceph version
4459 type: object
4460 mon:
4461 additionalProperties:
4462 type: integer
4463 description: Mon shows Mon Ceph version
4464 type: object
4465 osd:
4466 additionalProperties:
4467 type: integer
4468 description: Osd shows Osd Ceph version
4469 type: object
4470 overall:
4471 additionalProperties:
4472 type: integer
4473 description: Overall shows overall Ceph version
4474 type: object
4475 rbd-mirror:
4476 additionalProperties:
4477 type: integer
4478 description: RbdMirror shows RbdMirror Ceph version
4479 type: object
4480 rgw:
4481 additionalProperties:
4482 type: integer
4483 description: Rgw shows Rgw Ceph version
4484 type: object
4485 type: object
4486 type: object
4487 conditions:
4488 items:
4489 description: Condition represents a status condition on any Rook-Ceph Custom Resource.
4490 properties:
4491 lastHeartbeatTime:
4492 format: date-time
4493 type: string
4494 lastTransitionTime:
4495 format: date-time
4496 type: string
4497 message:
4498 type: string
4499 reason:
4500 description: ConditionReason is a reason for a condition
4501 type: string
4502 status:
4503 type: string
4504 type:
4505 description: ConditionType represent a resource's status
4506 type: string
4507 type: object
4508 type: array
4509 message:
4510 type: string
4511 observedGeneration:
4512 description: ObservedGeneration is the latest generation observed by the controller.
4513 format: int64
4514 type: integer
4515 phase:
4516 description: ConditionType represent a resource's status
4517 type: string
4518 state:
4519 description: ClusterState represents the state of a Ceph Cluster
4520 type: string
4521 storage:
4522 description: CephStorage represents flavors of Ceph Cluster Storage
4523 properties:
4524 deviceClasses:
4525 items:
4526 description: DeviceClasses represents device classes of a Ceph Cluster
4527 properties:
4528 name:
4529 type: string
4530 type: object
4531 type: array
4532 type: object
4533 version:
4534 description: ClusterVersion represents the version of a Ceph Cluster
4535 properties:
4536 image:
4537 type: string
4538 version:
4539 type: string
4540 type: object
4541 type: object
4542 x-kubernetes-preserve-unknown-fields: true
4543 required:
4544 - metadata
4545 - spec
4546 type: object
4547 served: true
4548 storage: true
4549 subresources:
4550 status: {}
4551status:
4552 acceptedNames:
4553 kind: ""
4554 plural: ""
4555 conditions: []
4556 storedVersions: []
4557---
4558apiVersion: apiextensions.k8s.io/v1
4559kind: CustomResourceDefinition
4560metadata:
4561 annotations:
4562 controller-gen.kubebuilder.io/version: v0.6.2
4563 helm.sh/resource-policy: keep
4564 creationTimestamp: null
4565 name: cephfilesystemmirrors.ceph.rook.io
4566spec:
4567 group: ceph.rook.io
4568 names:
4569 kind: CephFilesystemMirror
4570 listKind: CephFilesystemMirrorList
4571 plural: cephfilesystemmirrors
4572 singular: cephfilesystemmirror
4573 scope: Namespaced
4574 versions:
4575 - additionalPrinterColumns:
4576 - jsonPath: .status.phase
4577 name: Phase
4578 type: string
4579 name: v1
4580 schema:
4581 openAPIV3Schema:
4582 description: CephFilesystemMirror is the Ceph Filesystem Mirror object definition
4583 properties:
4584 apiVersion:
4585 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'
4586 type: string
4587 kind:
4588 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'
4589 type: string
4590 metadata:
4591 type: object
4592 spec:
4593 description: FilesystemMirroringSpec is the filesystem mirroring specification
4594 properties:
4595 annotations:
4596 additionalProperties:
4597 type: string
4598 description: The annotations-related configuration to add/set on each Pod related object.
4599 nullable: true
4600 type: object
4601 labels:
4602 additionalProperties:
4603 type: string
4604 description: The labels-related configuration to add/set on each Pod related object.
4605 nullable: true
4606 type: object
4607 placement:
4608 description: The affinity to place the rgw pods (default is to place on any available node)
4609 nullable: true
4610 properties:
4611 nodeAffinity:
4612 description: NodeAffinity is a group of node affinity scheduling rules
4613 properties:
4614 preferredDuringSchedulingIgnoredDuringExecution:
4615 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.
4616 items:
4617 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).
4618 properties:
4619 preference:
4620 description: A node selector term, associated with the corresponding weight.
4621 properties:
4622 matchExpressions:
4623 description: A list of node selector requirements by node's labels.
4624 items:
4625 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
4626 properties:
4627 key:
4628 description: The label key that the selector applies to.
4629 type: string
4630 operator:
4631 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
4632 type: string
4633 values:
4634 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.
4635 items:
4636 type: string
4637 type: array
4638 required:
4639 - key
4640 - operator
4641 type: object
4642 type: array
4643 matchFields:
4644 description: A list of node selector requirements by node's fields.
4645 items:
4646 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
4647 properties:
4648 key:
4649 description: The label key that the selector applies to.
4650 type: string
4651 operator:
4652 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
4653 type: string
4654 values:
4655 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.
4656 items:
4657 type: string
4658 type: array
4659 required:
4660 - key
4661 - operator
4662 type: object
4663 type: array
4664 type: object
4665 weight:
4666 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
4667 format: int32
4668 type: integer
4669 required:
4670 - preference
4671 - weight
4672 type: object
4673 type: array
4674 requiredDuringSchedulingIgnoredDuringExecution:
4675 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.
4676 properties:
4677 nodeSelectorTerms:
4678 description: Required. A list of node selector terms. The terms are ORed.
4679 items:
4680 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.
4681 properties:
4682 matchExpressions:
4683 description: A list of node selector requirements by node's labels.
4684 items:
4685 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
4686 properties:
4687 key:
4688 description: The label key that the selector applies to.
4689 type: string
4690 operator:
4691 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
4692 type: string
4693 values:
4694 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.
4695 items:
4696 type: string
4697 type: array
4698 required:
4699 - key
4700 - operator
4701 type: object
4702 type: array
4703 matchFields:
4704 description: A list of node selector requirements by node's fields.
4705 items:
4706 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
4707 properties:
4708 key:
4709 description: The label key that the selector applies to.
4710 type: string
4711 operator:
4712 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
4713 type: string
4714 values:
4715 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.
4716 items:
4717 type: string
4718 type: array
4719 required:
4720 - key
4721 - operator
4722 type: object
4723 type: array
4724 type: object
4725 type: array
4726 required:
4727 - nodeSelectorTerms
4728 type: object
4729 type: object
4730 podAffinity:
4731 description: PodAffinity is a group of inter pod affinity scheduling rules
4732 properties:
4733 preferredDuringSchedulingIgnoredDuringExecution:
4734 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.
4735 items:
4736 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
4737 properties:
4738 podAffinityTerm:
4739 description: Required. A pod affinity term, associated with the corresponding weight.
4740 properties:
4741 labelSelector:
4742 description: A label query over a set of resources, in this case pods.
4743 properties:
4744 matchExpressions:
4745 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
4746 items:
4747 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
4748 properties:
4749 key:
4750 description: key is the label key that the selector applies to.
4751 type: string
4752 operator:
4753 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
4754 type: string
4755 values:
4756 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.
4757 items:
4758 type: string
4759 type: array
4760 required:
4761 - key
4762 - operator
4763 type: object
4764 type: array
4765 matchLabels:
4766 additionalProperties:
4767 type: string
4768 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.
4769 type: object
4770 type: object
4771 namespaceSelector:
4772 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.
4773 properties:
4774 matchExpressions:
4775 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
4776 items:
4777 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
4778 properties:
4779 key:
4780 description: key is the label key that the selector applies to.
4781 type: string
4782 operator:
4783 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
4784 type: string
4785 values:
4786 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.
4787 items:
4788 type: string
4789 type: array
4790 required:
4791 - key
4792 - operator
4793 type: object
4794 type: array
4795 matchLabels:
4796 additionalProperties:
4797 type: string
4798 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.
4799 type: object
4800 type: object
4801 namespaces:
4802 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".
4803 items:
4804 type: string
4805 type: array
4806 topologyKey:
4807 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.
4808 type: string
4809 required:
4810 - topologyKey
4811 type: object
4812 weight:
4813 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
4814 format: int32
4815 type: integer
4816 required:
4817 - podAffinityTerm
4818 - weight
4819 type: object
4820 type: array
4821 requiredDuringSchedulingIgnoredDuringExecution:
4822 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.
4823 items:
4824 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
4825 properties:
4826 labelSelector:
4827 description: A label query over a set of resources, in this case pods.
4828 properties:
4829 matchExpressions:
4830 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
4831 items:
4832 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
4833 properties:
4834 key:
4835 description: key is the label key that the selector applies to.
4836 type: string
4837 operator:
4838 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
4839 type: string
4840 values:
4841 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.
4842 items:
4843 type: string
4844 type: array
4845 required:
4846 - key
4847 - operator
4848 type: object
4849 type: array
4850 matchLabels:
4851 additionalProperties:
4852 type: string
4853 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.
4854 type: object
4855 type: object
4856 namespaceSelector:
4857 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.
4858 properties:
4859 matchExpressions:
4860 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
4861 items:
4862 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
4863 properties:
4864 key:
4865 description: key is the label key that the selector applies to.
4866 type: string
4867 operator:
4868 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
4869 type: string
4870 values:
4871 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.
4872 items:
4873 type: string
4874 type: array
4875 required:
4876 - key
4877 - operator
4878 type: object
4879 type: array
4880 matchLabels:
4881 additionalProperties:
4882 type: string
4883 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.
4884 type: object
4885 type: object
4886 namespaces:
4887 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".
4888 items:
4889 type: string
4890 type: array
4891 topologyKey:
4892 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.
4893 type: string
4894 required:
4895 - topologyKey
4896 type: object
4897 type: array
4898 type: object
4899 podAntiAffinity:
4900 description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
4901 properties:
4902 preferredDuringSchedulingIgnoredDuringExecution:
4903 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.
4904 items:
4905 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
4906 properties:
4907 podAffinityTerm:
4908 description: Required. A pod affinity term, associated with the corresponding weight.
4909 properties:
4910 labelSelector:
4911 description: A label query over a set of resources, in this case pods.
4912 properties:
4913 matchExpressions:
4914 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
4915 items:
4916 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
4917 properties:
4918 key:
4919 description: key is the label key that the selector applies to.
4920 type: string
4921 operator:
4922 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
4923 type: string
4924 values:
4925 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.
4926 items:
4927 type: string
4928 type: array
4929 required:
4930 - key
4931 - operator
4932 type: object
4933 type: array
4934 matchLabels:
4935 additionalProperties:
4936 type: string
4937 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.
4938 type: object
4939 type: object
4940 namespaceSelector:
4941 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.
4942 properties:
4943 matchExpressions:
4944 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
4945 items:
4946 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
4947 properties:
4948 key:
4949 description: key is the label key that the selector applies to.
4950 type: string
4951 operator:
4952 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
4953 type: string
4954 values:
4955 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.
4956 items:
4957 type: string
4958 type: array
4959 required:
4960 - key
4961 - operator
4962 type: object
4963 type: array
4964 matchLabels:
4965 additionalProperties:
4966 type: string
4967 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.
4968 type: object
4969 type: object
4970 namespaces:
4971 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".
4972 items:
4973 type: string
4974 type: array
4975 topologyKey:
4976 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.
4977 type: string
4978 required:
4979 - topologyKey
4980 type: object
4981 weight:
4982 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
4983 format: int32
4984 type: integer
4985 required:
4986 - podAffinityTerm
4987 - weight
4988 type: object
4989 type: array
4990 requiredDuringSchedulingIgnoredDuringExecution:
4991 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.
4992 items:
4993 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
4994 properties:
4995 labelSelector:
4996 description: A label query over a set of resources, in this case pods.
4997 properties:
4998 matchExpressions:
4999 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5000 items:
5001 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
5002 properties:
5003 key:
5004 description: key is the label key that the selector applies to.
5005 type: string
5006 operator:
5007 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
5008 type: string
5009 values:
5010 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.
5011 items:
5012 type: string
5013 type: array
5014 required:
5015 - key
5016 - operator
5017 type: object
5018 type: array
5019 matchLabels:
5020 additionalProperties:
5021 type: string
5022 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.
5023 type: object
5024 type: object
5025 namespaceSelector:
5026 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.
5027 properties:
5028 matchExpressions:
5029 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5030 items:
5031 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
5032 properties:
5033 key:
5034 description: key is the label key that the selector applies to.
5035 type: string
5036 operator:
5037 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
5038 type: string
5039 values:
5040 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.
5041 items:
5042 type: string
5043 type: array
5044 required:
5045 - key
5046 - operator
5047 type: object
5048 type: array
5049 matchLabels:
5050 additionalProperties:
5051 type: string
5052 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.
5053 type: object
5054 type: object
5055 namespaces:
5056 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".
5057 items:
5058 type: string
5059 type: array
5060 topologyKey:
5061 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.
5062 type: string
5063 required:
5064 - topologyKey
5065 type: object
5066 type: array
5067 type: object
5068 tolerations:
5069 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
5070 items:
5071 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
5072 properties:
5073 effect:
5074 description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
5075 type: string
5076 key:
5077 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.
5078 type: string
5079 operator:
5080 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.
5081 type: string
5082 tolerationSeconds:
5083 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.
5084 format: int64
5085 type: integer
5086 value:
5087 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.
5088 type: string
5089 type: object
5090 type: array
5091 topologySpreadConstraints:
5092 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
5093 items:
5094 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
5095 properties:
5096 labelSelector:
5097 description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
5098 properties:
5099 matchExpressions:
5100 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5101 items:
5102 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
5103 properties:
5104 key:
5105 description: key is the label key that the selector applies to.
5106 type: string
5107 operator:
5108 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
5109 type: string
5110 values:
5111 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.
5112 items:
5113 type: string
5114 type: array
5115 required:
5116 - key
5117 - operator
5118 type: object
5119 type: array
5120 matchLabels:
5121 additionalProperties:
5122 type: string
5123 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.
5124 type: object
5125 type: object
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00005126 matchLabelKeys:
5127 description: MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.
5128 items:
5129 type: string
5130 type: array
5131 x-kubernetes-list-type: atomic
okozachenko120323147262023-01-28 04:16:42 +11005132 maxSkew:
5133 description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
5134 format: int32
5135 type: integer
5136 minDomains:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00005137 description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
okozachenko120323147262023-01-28 04:16:42 +11005138 format: int32
5139 type: integer
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00005140 nodeAffinityPolicy:
5141 description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
5142 type: string
5143 nodeTaintsPolicy:
5144 description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
5145 type: string
okozachenko120323147262023-01-28 04:16:42 +11005146 topologyKey:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00005147 description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
okozachenko120323147262023-01-28 04:16:42 +11005148 type: string
5149 whenUnsatisfiable:
5150 description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
5151 type: string
5152 required:
5153 - maxSkew
5154 - topologyKey
5155 - whenUnsatisfiable
5156 type: object
5157 type: array
5158 type: object
5159 priorityClassName:
5160 description: PriorityClassName sets priority class on the cephfs-mirror pods
5161 type: string
5162 resources:
5163 description: The resource requirements for the cephfs-mirror pods
5164 nullable: true
5165 properties:
5166 limits:
5167 additionalProperties:
5168 anyOf:
5169 - type: integer
5170 - type: string
5171 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
5172 x-kubernetes-int-or-string: true
5173 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
5174 type: object
5175 requests:
5176 additionalProperties:
5177 anyOf:
5178 - type: integer
5179 - type: string
5180 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
5181 x-kubernetes-int-or-string: true
5182 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
5183 type: object
5184 type: object
5185 type: object
5186 status:
5187 description: Status represents the status of an object
5188 properties:
5189 conditions:
5190 items:
5191 description: Condition represents a status condition on any Rook-Ceph Custom Resource.
5192 properties:
5193 lastHeartbeatTime:
5194 format: date-time
5195 type: string
5196 lastTransitionTime:
5197 format: date-time
5198 type: string
5199 message:
5200 type: string
5201 reason:
5202 description: ConditionReason is a reason for a condition
5203 type: string
5204 status:
5205 type: string
5206 type:
5207 description: ConditionType represent a resource's status
5208 type: string
5209 type: object
5210 type: array
5211 observedGeneration:
5212 description: ObservedGeneration is the latest generation observed by the controller.
5213 format: int64
5214 type: integer
5215 phase:
5216 type: string
5217 type: object
5218 required:
5219 - metadata
5220 - spec
5221 type: object
5222 served: true
5223 storage: true
5224 subresources:
5225 status: {}
5226status:
5227 acceptedNames:
5228 kind: ""
5229 plural: ""
5230 conditions: []
5231 storedVersions: []
5232---
5233apiVersion: apiextensions.k8s.io/v1
5234kind: CustomResourceDefinition
5235metadata:
5236 annotations:
5237 controller-gen.kubebuilder.io/version: v0.6.2
5238 helm.sh/resource-policy: keep
5239 creationTimestamp: null
5240 name: cephfilesystems.ceph.rook.io
5241spec:
5242 group: ceph.rook.io
5243 names:
5244 kind: CephFilesystem
5245 listKind: CephFilesystemList
5246 plural: cephfilesystems
5247 singular: cephfilesystem
5248 scope: Namespaced
5249 versions:
5250 - additionalPrinterColumns:
5251 - description: Number of desired active MDS daemons
5252 jsonPath: .spec.metadataServer.activeCount
5253 name: ActiveMDS
5254 type: string
5255 - jsonPath: .metadata.creationTimestamp
5256 name: Age
5257 type: date
5258 - jsonPath: .status.phase
5259 name: Phase
5260 type: string
5261 name: v1
5262 schema:
5263 openAPIV3Schema:
5264 description: CephFilesystem represents a Ceph Filesystem
5265 properties:
5266 apiVersion:
5267 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'
5268 type: string
5269 kind:
5270 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'
5271 type: string
5272 metadata:
5273 type: object
5274 spec:
5275 description: FilesystemSpec represents the spec of a file system
5276 properties:
5277 dataPools:
5278 description: The data pool settings, with optional predefined pool name.
5279 items:
5280 description: NamedPoolSpec represents the named ceph pool spec
5281 properties:
5282 compressionMode:
5283 description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
5284 enum:
5285 - none
5286 - passive
5287 - aggressive
5288 - force
5289 - ""
5290 nullable: true
5291 type: string
5292 crushRoot:
5293 description: The root of the crush hierarchy utilized by the pool
5294 nullable: true
5295 type: string
5296 deviceClass:
5297 description: The device class the OSD should set to for use in the pool
5298 nullable: true
5299 type: string
5300 enableRBDStats:
5301 description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
5302 type: boolean
5303 erasureCoded:
5304 description: The erasure code settings
5305 properties:
5306 algorithm:
5307 description: The algorithm for erasure coding
5308 type: string
5309 codingChunks:
5310 description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
5311 minimum: 0
5312 type: integer
5313 dataChunks:
5314 description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
5315 minimum: 0
5316 type: integer
5317 required:
5318 - codingChunks
5319 - dataChunks
5320 type: object
5321 failureDomain:
5322 description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
5323 type: string
5324 mirroring:
5325 description: The mirroring settings
5326 properties:
5327 enabled:
5328 description: Enabled whether this pool is mirrored or not
5329 type: boolean
5330 mode:
5331 description: 'Mode is the mirroring mode: either pool or image'
5332 type: string
5333 peers:
5334 description: Peers represents the peers spec
5335 nullable: true
5336 properties:
5337 secretNames:
5338 description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
5339 items:
5340 type: string
5341 type: array
5342 type: object
5343 snapshotSchedules:
5344 description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
5345 items:
5346 description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
5347 properties:
5348 interval:
5349 description: Interval represent the periodicity of the snapshot.
5350 type: string
5351 path:
5352 description: Path is the path to snapshot, only valid for CephFS
5353 type: string
5354 startTime:
5355 description: StartTime indicates when to start the snapshot
5356 type: string
5357 type: object
5358 type: array
5359 type: object
5360 name:
5361 description: Name of the pool
5362 type: string
5363 parameters:
5364 additionalProperties:
5365 type: string
5366 description: Parameters is a list of properties to enable on a given pool
5367 nullable: true
5368 type: object
5369 x-kubernetes-preserve-unknown-fields: true
5370 quotas:
5371 description: The quota settings
5372 nullable: true
5373 properties:
5374 maxBytes:
5375 description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
5376 format: int64
5377 type: integer
5378 maxObjects:
5379 description: MaxObjects represents the quota in objects
5380 format: int64
5381 type: integer
5382 maxSize:
5383 description: MaxSize represents the quota in bytes as a string
5384 pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
5385 type: string
5386 type: object
5387 replicated:
5388 description: The replication settings
5389 properties:
5390 hybridStorage:
5391 description: HybridStorage represents hybrid storage tier settings
5392 nullable: true
5393 properties:
5394 primaryDeviceClass:
5395 description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
5396 minLength: 1
5397 type: string
5398 secondaryDeviceClass:
5399 description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
5400 minLength: 1
5401 type: string
5402 required:
5403 - primaryDeviceClass
5404 - secondaryDeviceClass
5405 type: object
5406 replicasPerFailureDomain:
5407 description: ReplicasPerFailureDomain the number of replica in the specified failure domain
5408 minimum: 1
5409 type: integer
5410 requireSafeReplicaSize:
5411 description: RequireSafeReplicaSize if false allows you to set replica 1
5412 type: boolean
5413 size:
5414 description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
5415 minimum: 0
5416 type: integer
5417 subFailureDomain:
5418 description: SubFailureDomain the name of the sub-failure domain
5419 type: string
5420 targetSizeRatio:
5421 description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
5422 type: number
5423 required:
5424 - size
5425 type: object
5426 statusCheck:
5427 description: The mirroring statusCheck
5428 properties:
5429 mirror:
5430 description: HealthCheckSpec represents the health check of an object store bucket
5431 nullable: true
5432 properties:
5433 disabled:
5434 type: boolean
5435 interval:
5436 description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
5437 type: string
5438 timeout:
5439 type: string
5440 type: object
5441 type: object
5442 x-kubernetes-preserve-unknown-fields: true
5443 type: object
5444 nullable: true
5445 type: array
5446 metadataPool:
5447 description: The metadata pool settings
5448 nullable: true
5449 properties:
5450 compressionMode:
5451 description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
5452 enum:
5453 - none
5454 - passive
5455 - aggressive
5456 - force
5457 - ""
5458 nullable: true
5459 type: string
5460 crushRoot:
5461 description: The root of the crush hierarchy utilized by the pool
5462 nullable: true
5463 type: string
5464 deviceClass:
5465 description: The device class the OSD should set to for use in the pool
5466 nullable: true
5467 type: string
5468 enableRBDStats:
5469 description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
5470 type: boolean
5471 erasureCoded:
5472 description: The erasure code settings
5473 properties:
5474 algorithm:
5475 description: The algorithm for erasure coding
5476 type: string
5477 codingChunks:
5478 description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
5479 minimum: 0
5480 type: integer
5481 dataChunks:
5482 description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
5483 minimum: 0
5484 type: integer
5485 required:
5486 - codingChunks
5487 - dataChunks
5488 type: object
5489 failureDomain:
5490 description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
5491 type: string
5492 mirroring:
5493 description: The mirroring settings
5494 properties:
5495 enabled:
5496 description: Enabled whether this pool is mirrored or not
5497 type: boolean
5498 mode:
5499 description: 'Mode is the mirroring mode: either pool or image'
5500 type: string
5501 peers:
5502 description: Peers represents the peers spec
5503 nullable: true
5504 properties:
5505 secretNames:
5506 description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
5507 items:
5508 type: string
5509 type: array
5510 type: object
5511 snapshotSchedules:
5512 description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
5513 items:
5514 description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
5515 properties:
5516 interval:
5517 description: Interval represent the periodicity of the snapshot.
5518 type: string
5519 path:
5520 description: Path is the path to snapshot, only valid for CephFS
5521 type: string
5522 startTime:
5523 description: StartTime indicates when to start the snapshot
5524 type: string
5525 type: object
5526 type: array
5527 type: object
5528 parameters:
5529 additionalProperties:
5530 type: string
5531 description: Parameters is a list of properties to enable on a given pool
5532 nullable: true
5533 type: object
5534 x-kubernetes-preserve-unknown-fields: true
5535 quotas:
5536 description: The quota settings
5537 nullable: true
5538 properties:
5539 maxBytes:
5540 description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
5541 format: int64
5542 type: integer
5543 maxObjects:
5544 description: MaxObjects represents the quota in objects
5545 format: int64
5546 type: integer
5547 maxSize:
5548 description: MaxSize represents the quota in bytes as a string
5549 pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
5550 type: string
5551 type: object
5552 replicated:
5553 description: The replication settings
5554 properties:
5555 hybridStorage:
5556 description: HybridStorage represents hybrid storage tier settings
5557 nullable: true
5558 properties:
5559 primaryDeviceClass:
5560 description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
5561 minLength: 1
5562 type: string
5563 secondaryDeviceClass:
5564 description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
5565 minLength: 1
5566 type: string
5567 required:
5568 - primaryDeviceClass
5569 - secondaryDeviceClass
5570 type: object
5571 replicasPerFailureDomain:
5572 description: ReplicasPerFailureDomain the number of replica in the specified failure domain
5573 minimum: 1
5574 type: integer
5575 requireSafeReplicaSize:
5576 description: RequireSafeReplicaSize if false allows you to set replica 1
5577 type: boolean
5578 size:
5579 description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
5580 minimum: 0
5581 type: integer
5582 subFailureDomain:
5583 description: SubFailureDomain the name of the sub-failure domain
5584 type: string
5585 targetSizeRatio:
5586 description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
5587 type: number
5588 required:
5589 - size
5590 type: object
5591 statusCheck:
5592 description: The mirroring statusCheck
5593 properties:
5594 mirror:
5595 description: HealthCheckSpec represents the health check of an object store bucket
5596 nullable: true
5597 properties:
5598 disabled:
5599 type: boolean
5600 interval:
5601 description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
5602 type: string
5603 timeout:
5604 type: string
5605 type: object
5606 type: object
5607 x-kubernetes-preserve-unknown-fields: true
5608 type: object
5609 metadataServer:
5610 description: The mds pod info
5611 properties:
5612 activeCount:
5613 description: The number of metadata servers that are active. The remaining servers in the cluster will be in standby mode.
5614 format: int32
5615 maximum: 10
5616 minimum: 1
5617 type: integer
5618 activeStandby:
5619 description: Whether each active MDS instance will have an active standby with a warm metadata cache for faster failover. If false, standbys will still be available, but will not have a warm metadata cache.
5620 type: boolean
5621 annotations:
5622 additionalProperties:
5623 type: string
5624 description: The annotations-related configuration to add/set on each Pod related object.
5625 nullable: true
5626 type: object
5627 x-kubernetes-preserve-unknown-fields: true
5628 labels:
5629 additionalProperties:
5630 type: string
5631 description: The labels-related configuration to add/set on each Pod related object.
5632 nullable: true
5633 type: object
5634 x-kubernetes-preserve-unknown-fields: true
5635 livenessProbe:
5636 description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
5637 properties:
5638 disabled:
5639 description: Disabled determines whether probe is disable or not
5640 type: boolean
5641 probe:
5642 description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
5643 properties:
5644 exec:
5645 description: Exec specifies the action to take.
5646 properties:
5647 command:
5648 description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
5649 items:
5650 type: string
5651 type: array
5652 type: object
5653 failureThreshold:
5654 description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
5655 format: int32
5656 type: integer
5657 grpc:
5658 description: GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.
5659 properties:
5660 port:
5661 description: Port number of the gRPC service. Number must be in the range 1 to 65535.
5662 format: int32
5663 type: integer
5664 service:
5665 description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
5666 type: string
5667 required:
5668 - port
5669 type: object
5670 httpGet:
5671 description: HTTPGet specifies the http request to perform.
5672 properties:
5673 host:
5674 description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
5675 type: string
5676 httpHeaders:
5677 description: Custom headers to set in the request. HTTP allows repeated headers.
5678 items:
5679 description: HTTPHeader describes a custom header to be used in HTTP probes
5680 properties:
5681 name:
5682 description: The header field name
5683 type: string
5684 value:
5685 description: The header field value
5686 type: string
5687 required:
5688 - name
5689 - value
5690 type: object
5691 type: array
5692 path:
5693 description: Path to access on the HTTP server.
5694 type: string
5695 port:
5696 anyOf:
5697 - type: integer
5698 - type: string
5699 description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
5700 x-kubernetes-int-or-string: true
5701 scheme:
5702 description: Scheme to use for connecting to the host. Defaults to HTTP.
5703 type: string
5704 required:
5705 - port
5706 type: object
5707 initialDelaySeconds:
5708 description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
5709 format: int32
5710 type: integer
5711 periodSeconds:
5712 description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
5713 format: int32
5714 type: integer
5715 successThreshold:
5716 description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
5717 format: int32
5718 type: integer
5719 tcpSocket:
5720 description: TCPSocket specifies an action involving a TCP port.
5721 properties:
5722 host:
5723 description: 'Optional: Host name to connect to, defaults to the pod IP.'
5724 type: string
5725 port:
5726 anyOf:
5727 - type: integer
5728 - type: string
5729 description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
5730 x-kubernetes-int-or-string: true
5731 required:
5732 - port
5733 type: object
5734 terminationGracePeriodSeconds:
5735 description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
5736 format: int64
5737 type: integer
5738 timeoutSeconds:
5739 description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
5740 format: int32
5741 type: integer
5742 type: object
5743 type: object
5744 placement:
5745 description: The affinity to place the mds pods (default is to place on all available node) with a daemonset
5746 nullable: true
5747 properties:
5748 nodeAffinity:
5749 description: NodeAffinity is a group of node affinity scheduling rules
5750 properties:
5751 preferredDuringSchedulingIgnoredDuringExecution:
5752 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.
5753 items:
5754 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).
5755 properties:
5756 preference:
5757 description: A node selector term, associated with the corresponding weight.
5758 properties:
5759 matchExpressions:
5760 description: A list of node selector requirements by node's labels.
5761 items:
5762 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
5763 properties:
5764 key:
5765 description: The label key that the selector applies to.
5766 type: string
5767 operator:
5768 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5769 type: string
5770 values:
5771 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.
5772 items:
5773 type: string
5774 type: array
5775 required:
5776 - key
5777 - operator
5778 type: object
5779 type: array
5780 matchFields:
5781 description: A list of node selector requirements by node's fields.
5782 items:
5783 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
5784 properties:
5785 key:
5786 description: The label key that the selector applies to.
5787 type: string
5788 operator:
5789 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5790 type: string
5791 values:
5792 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.
5793 items:
5794 type: string
5795 type: array
5796 required:
5797 - key
5798 - operator
5799 type: object
5800 type: array
5801 type: object
5802 weight:
5803 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
5804 format: int32
5805 type: integer
5806 required:
5807 - preference
5808 - weight
5809 type: object
5810 type: array
5811 requiredDuringSchedulingIgnoredDuringExecution:
5812 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.
5813 properties:
5814 nodeSelectorTerms:
5815 description: Required. A list of node selector terms. The terms are ORed.
5816 items:
5817 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.
5818 properties:
5819 matchExpressions:
5820 description: A list of node selector requirements by node's labels.
5821 items:
5822 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
5823 properties:
5824 key:
5825 description: The label key that the selector applies to.
5826 type: string
5827 operator:
5828 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5829 type: string
5830 values:
5831 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.
5832 items:
5833 type: string
5834 type: array
5835 required:
5836 - key
5837 - operator
5838 type: object
5839 type: array
5840 matchFields:
5841 description: A list of node selector requirements by node's fields.
5842 items:
5843 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
5844 properties:
5845 key:
5846 description: The label key that the selector applies to.
5847 type: string
5848 operator:
5849 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5850 type: string
5851 values:
5852 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.
5853 items:
5854 type: string
5855 type: array
5856 required:
5857 - key
5858 - operator
5859 type: object
5860 type: array
5861 type: object
5862 type: array
5863 required:
5864 - nodeSelectorTerms
5865 type: object
5866 type: object
5867 podAffinity:
5868 description: PodAffinity is a group of inter pod affinity scheduling rules
5869 properties:
5870 preferredDuringSchedulingIgnoredDuringExecution:
5871 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.
5872 items:
5873 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
5874 properties:
5875 podAffinityTerm:
5876 description: Required. A pod affinity term, associated with the corresponding weight.
5877 properties:
5878 labelSelector:
5879 description: A label query over a set of resources, in this case pods.
5880 properties:
5881 matchExpressions:
5882 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5883 items:
5884 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
5885 properties:
5886 key:
5887 description: key is the label key that the selector applies to.
5888 type: string
5889 operator:
5890 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
5891 type: string
5892 values:
5893 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.
5894 items:
5895 type: string
5896 type: array
5897 required:
5898 - key
5899 - operator
5900 type: object
5901 type: array
5902 matchLabels:
5903 additionalProperties:
5904 type: string
5905 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.
5906 type: object
5907 type: object
5908 namespaceSelector:
5909 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.
5910 properties:
5911 matchExpressions:
5912 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5913 items:
5914 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
5915 properties:
5916 key:
5917 description: key is the label key that the selector applies to.
5918 type: string
5919 operator:
5920 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
5921 type: string
5922 values:
5923 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.
5924 items:
5925 type: string
5926 type: array
5927 required:
5928 - key
5929 - operator
5930 type: object
5931 type: array
5932 matchLabels:
5933 additionalProperties:
5934 type: string
5935 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.
5936 type: object
5937 type: object
5938 namespaces:
5939 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".
5940 items:
5941 type: string
5942 type: array
5943 topologyKey:
5944 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.
5945 type: string
5946 required:
5947 - topologyKey
5948 type: object
5949 weight:
5950 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
5951 format: int32
5952 type: integer
5953 required:
5954 - podAffinityTerm
5955 - weight
5956 type: object
5957 type: array
5958 requiredDuringSchedulingIgnoredDuringExecution:
5959 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.
5960 items:
5961 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
5962 properties:
5963 labelSelector:
5964 description: A label query over a set of resources, in this case pods.
5965 properties:
5966 matchExpressions:
5967 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5968 items:
5969 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
5970 properties:
5971 key:
5972 description: key is the label key that the selector applies to.
5973 type: string
5974 operator:
5975 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
5976 type: string
5977 values:
5978 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.
5979 items:
5980 type: string
5981 type: array
5982 required:
5983 - key
5984 - operator
5985 type: object
5986 type: array
5987 matchLabels:
5988 additionalProperties:
5989 type: string
5990 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.
5991 type: object
5992 type: object
5993 namespaceSelector:
5994 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.
5995 properties:
5996 matchExpressions:
5997 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5998 items:
5999 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
6000 properties:
6001 key:
6002 description: key is the label key that the selector applies to.
6003 type: string
6004 operator:
6005 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
6006 type: string
6007 values:
6008 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.
6009 items:
6010 type: string
6011 type: array
6012 required:
6013 - key
6014 - operator
6015 type: object
6016 type: array
6017 matchLabels:
6018 additionalProperties:
6019 type: string
6020 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.
6021 type: object
6022 type: object
6023 namespaces:
6024 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".
6025 items:
6026 type: string
6027 type: array
6028 topologyKey:
6029 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.
6030 type: string
6031 required:
6032 - topologyKey
6033 type: object
6034 type: array
6035 type: object
6036 podAntiAffinity:
6037 description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
6038 properties:
6039 preferredDuringSchedulingIgnoredDuringExecution:
6040 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.
6041 items:
6042 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
6043 properties:
6044 podAffinityTerm:
6045 description: Required. A pod affinity term, associated with the corresponding weight.
6046 properties:
6047 labelSelector:
6048 description: A label query over a set of resources, in this case pods.
6049 properties:
6050 matchExpressions:
6051 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6052 items:
6053 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
6054 properties:
6055 key:
6056 description: key is the label key that the selector applies to.
6057 type: string
6058 operator:
6059 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
6060 type: string
6061 values:
6062 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.
6063 items:
6064 type: string
6065 type: array
6066 required:
6067 - key
6068 - operator
6069 type: object
6070 type: array
6071 matchLabels:
6072 additionalProperties:
6073 type: string
6074 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.
6075 type: object
6076 type: object
6077 namespaceSelector:
6078 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.
6079 properties:
6080 matchExpressions:
6081 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6082 items:
6083 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
6084 properties:
6085 key:
6086 description: key is the label key that the selector applies to.
6087 type: string
6088 operator:
6089 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
6090 type: string
6091 values:
6092 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.
6093 items:
6094 type: string
6095 type: array
6096 required:
6097 - key
6098 - operator
6099 type: object
6100 type: array
6101 matchLabels:
6102 additionalProperties:
6103 type: string
6104 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.
6105 type: object
6106 type: object
6107 namespaces:
6108 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".
6109 items:
6110 type: string
6111 type: array
6112 topologyKey:
6113 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.
6114 type: string
6115 required:
6116 - topologyKey
6117 type: object
6118 weight:
6119 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
6120 format: int32
6121 type: integer
6122 required:
6123 - podAffinityTerm
6124 - weight
6125 type: object
6126 type: array
6127 requiredDuringSchedulingIgnoredDuringExecution:
6128 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.
6129 items:
6130 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
6131 properties:
6132 labelSelector:
6133 description: A label query over a set of resources, in this case pods.
6134 properties:
6135 matchExpressions:
6136 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6137 items:
6138 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
6139 properties:
6140 key:
6141 description: key is the label key that the selector applies to.
6142 type: string
6143 operator:
6144 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
6145 type: string
6146 values:
6147 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.
6148 items:
6149 type: string
6150 type: array
6151 required:
6152 - key
6153 - operator
6154 type: object
6155 type: array
6156 matchLabels:
6157 additionalProperties:
6158 type: string
6159 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.
6160 type: object
6161 type: object
6162 namespaceSelector:
6163 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.
6164 properties:
6165 matchExpressions:
6166 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6167 items:
6168 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
6169 properties:
6170 key:
6171 description: key is the label key that the selector applies to.
6172 type: string
6173 operator:
6174 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
6175 type: string
6176 values:
6177 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.
6178 items:
6179 type: string
6180 type: array
6181 required:
6182 - key
6183 - operator
6184 type: object
6185 type: array
6186 matchLabels:
6187 additionalProperties:
6188 type: string
6189 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.
6190 type: object
6191 type: object
6192 namespaces:
6193 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".
6194 items:
6195 type: string
6196 type: array
6197 topologyKey:
6198 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.
6199 type: string
6200 required:
6201 - topologyKey
6202 type: object
6203 type: array
6204 type: object
6205 tolerations:
6206 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
6207 items:
6208 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
6209 properties:
6210 effect:
6211 description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
6212 type: string
6213 key:
6214 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.
6215 type: string
6216 operator:
6217 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.
6218 type: string
6219 tolerationSeconds:
6220 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.
6221 format: int64
6222 type: integer
6223 value:
6224 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.
6225 type: string
6226 type: object
6227 type: array
6228 topologySpreadConstraints:
6229 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
6230 items:
6231 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
6232 properties:
6233 labelSelector:
6234 description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
6235 properties:
6236 matchExpressions:
6237 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6238 items:
6239 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
6240 properties:
6241 key:
6242 description: key is the label key that the selector applies to.
6243 type: string
6244 operator:
6245 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
6246 type: string
6247 values:
6248 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.
6249 items:
6250 type: string
6251 type: array
6252 required:
6253 - key
6254 - operator
6255 type: object
6256 type: array
6257 matchLabels:
6258 additionalProperties:
6259 type: string
6260 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.
6261 type: object
6262 type: object
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00006263 matchLabelKeys:
6264 description: MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.
6265 items:
6266 type: string
6267 type: array
6268 x-kubernetes-list-type: atomic
okozachenko120323147262023-01-28 04:16:42 +11006269 maxSkew:
6270 description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
6271 format: int32
6272 type: integer
6273 minDomains:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00006274 description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
okozachenko120323147262023-01-28 04:16:42 +11006275 format: int32
6276 type: integer
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00006277 nodeAffinityPolicy:
6278 description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
6279 type: string
6280 nodeTaintsPolicy:
6281 description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
6282 type: string
okozachenko120323147262023-01-28 04:16:42 +11006283 topologyKey:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +00006284 description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
okozachenko120323147262023-01-28 04:16:42 +11006285 type: string
6286 whenUnsatisfiable:
6287 description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
6288 type: string
6289 required:
6290 - maxSkew
6291 - topologyKey
6292 - whenUnsatisfiable
6293 type: object
6294 type: array
6295 type: object
6296 x-kubernetes-preserve-unknown-fields: true
6297 priorityClassName:
6298 description: PriorityClassName sets priority classes on components
6299 type: string
6300 resources:
6301 description: The resource requirements for the rgw pods
6302 nullable: true
6303 properties:
6304 limits:
6305 additionalProperties:
6306 anyOf:
6307 - type: integer
6308 - type: string
6309 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
6310 x-kubernetes-int-or-string: true
6311 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
6312 type: object
6313 requests:
6314 additionalProperties:
6315 anyOf:
6316 - type: integer
6317 - type: string
6318 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
6319 x-kubernetes-int-or-string: true
6320 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
6321 type: object
6322 type: object
6323 x-kubernetes-preserve-unknown-fields: true
6324 startupProbe:
6325 description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
6326 properties:
6327 disabled:
6328 description: Disabled determines whether probe is disable or not
6329 type: boolean
6330 probe:
6331 description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
6332 properties:
6333 exec:
6334 description: Exec specifies the action to take.
6335 properties:
6336 command:
6337 description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
6338 items:
6339 type: string
6340 type: array
6341 type: object
6342 failureThreshold:
6343 description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
6344 format: int32
6345 type: integer
6346 grpc:
6347 description: GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.
6348 properties:
6349 port:
6350 description: Port number of the gRPC service. Number must be in the range 1 to 65535.
6351 format: int32
6352 type: integer
6353 service:
6354 description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
6355 type: string
6356 required:
6357 - port
6358 type: object
6359 httpGet:
6360 description: HTTPGet specifies the http request to perform.
6361 properties:
6362 host:
6363 description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
6364 type: string
6365 httpHeaders:
6366 description: Custom headers to set in the request. HTTP allows repeated headers.
6367 items:
6368 description: HTTPHeader describes a custom header to be used in HTTP probes
6369 properties:
6370 name:
6371 description: The header field name
6372 type: string
6373 value:
6374 description: The header field value
6375 type: string
6376 required:
6377 - name
6378 - value
6379 type: object
6380 type: array
6381 path:
6382 description: Path to access on the HTTP server.
6383 type: string
6384 port:
6385 anyOf:
6386 - type: integer
6387 - type: string
6388 description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
6389 x-kubernetes-int-or-string: true
6390 scheme:
6391 description: Scheme to use for connecting to the host. Defaults to HTTP.
6392 type: string
6393 required:
6394 - port
6395 type: object
6396 initialDelaySeconds:
6397 description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
6398 format: int32
6399 type: integer
6400 periodSeconds:
6401 description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
6402 format: int32
6403 type: integer
6404 successThreshold:
6405 description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
6406 format: int32
6407 type: integer
6408 tcpSocket:
6409 description: TCPSocket specifies an action involving a TCP port.
6410 properties:
6411 host:
6412 description: 'Optional: Host name to connect to, defaults to the pod IP.'
6413 type: string
6414 port:
6415 anyOf:
6416 - type: integer
6417 - type: string
6418 description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
6419 x-kubernetes-int-or-string: true
6420 required:
6421 - port
6422 type: object
6423 terminationGracePeriodSeconds:
6424 description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
6425 format: int64
6426 type: integer
6427 timeoutSeconds:
6428 description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
6429 format: int32
6430 type: integer
6431 type: object
6432 type: object
6433 required:
6434 - activeCount
6435 type: object
6436 mirroring:
6437 description: The mirroring settings
6438 nullable: true
6439 properties:
6440 enabled:
6441 description: Enabled whether this filesystem is mirrored or not
6442 type: boolean
6443 peers:
6444 description: Peers represents the peers spec
6445 nullable: true
6446 properties:
6447 secretNames:
6448 description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
6449 items:
6450 type: string
6451 type: array
6452 type: object
6453 snapshotRetention:
6454 description: Retention is the retention policy for a snapshot schedule One path has exactly one retention policy. A policy can however contain multiple count-time period pairs in order to specify complex retention policies
6455 items:
6456 description: SnapshotScheduleRetentionSpec is a retention policy
6457 properties:
6458 duration:
6459 description: Duration represents the retention duration for a snapshot
6460 type: string
6461 path:
6462 description: Path is the path to snapshot
6463 type: string
6464 type: object
6465 type: array
6466 snapshotSchedules:
6467 description: SnapshotSchedules is the scheduling of snapshot for mirrored filesystems
6468 items:
6469 description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
6470 properties:
6471 interval:
6472 description: Interval represent the periodicity of the snapshot.
6473 type: string
6474 path:
6475 description: Path is the path to snapshot, only valid for CephFS
6476 type: string
6477 startTime:
6478 description: StartTime indicates when to start the snapshot
6479 type: string
6480 type: object
6481 type: array
6482 type: object
6483 preserveFilesystemOnDelete:
6484 description: Preserve the fs in the cluster on CephFilesystem CR deletion. Setting this to true automatically implies PreservePoolsOnDelete is true.
6485 type: boolean
6486 preservePoolsOnDelete:
6487 description: Preserve pools on filesystem deletion
6488 type: boolean
6489 statusCheck:
6490 description: The mirroring statusCheck
6491 properties:
6492 mirror:
6493 description: HealthCheckSpec represents the health check of an object store bucket
6494 nullable: true
6495 properties:
6496 disabled:
6497 type: boolean
6498 interval:
6499 description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
6500 type: string
6501 timeout:
6502 type: string
6503 type: object
6504 type: object
6505 x-kubernetes-preserve-unknown-fields: true
6506 required:
6507 - dataPools
6508 - metadataPool
6509 - metadataServer
6510 type: object
6511 status:
6512 description: CephFilesystemStatus represents the status of a Ceph Filesystem
6513 properties:
6514 conditions:
6515 items:
6516 description: Condition represents a status condition on any Rook-Ceph Custom Resource.
6517 properties:
6518 lastHeartbeatTime:
6519 format: date-time
6520 type: string
6521 lastTransitionTime:
6522 format: date-time
6523 type: string
6524 message:
6525 type: string
6526 reason:
6527 description: ConditionReason is a reason for a condition
6528 type: string
6529 status:
6530 type: string
6531 type:
6532 description: ConditionType represent a resource's status
6533 type: string
6534 type: object
6535 type: array
6536 info:
6537 additionalProperties:
6538 type: string
6539 description: Use only info and put mirroringStatus in it?
6540 nullable: true
6541 type: object
6542 mirroringStatus:
6543 description: MirroringStatus is the filesystem mirroring status
6544 properties:
6545 daemonsStatus:
6546 description: PoolMirroringStatus is the mirroring status of a filesystem
6547 items:
6548 description: FilesystemMirrorInfoSpec is the filesystem mirror status of a given filesystem
6549 properties:
6550 daemon_id:
6551 description: DaemonID is the cephfs-mirror name
6552 type: integer
6553 filesystems:
6554 description: Filesystems is the list of filesystems managed by a given cephfs-mirror daemon
6555 items:
6556 description: FilesystemsSpec is spec for the mirrored filesystem
6557 properties:
6558 directory_count:
6559 description: DirectoryCount is the number of directories in the filesystem
6560 type: integer
6561 filesystem_id:
6562 description: FilesystemID is the filesystem identifier
6563 type: integer
6564 name:
6565 description: Name is name of the filesystem
6566 type: string
6567 peers:
6568 description: Peers represents the mirroring peers
6569 items:
6570 description: FilesystemMirrorInfoPeerSpec is the specification of a filesystem peer mirror
6571 properties:
6572 remote:
6573 description: Remote are the remote cluster information
6574 properties:
6575 client_name:
6576 description: ClientName is cephx name
6577 type: string
6578 cluster_name:
6579 description: ClusterName is the name of the cluster
6580 type: string
6581 fs_name:
6582 description: FsName is the filesystem name
6583 type: string
6584 type: object
6585 stats:
6586 description: Stats are the stat a peer mirror
6587 properties:
6588 failure_count:
6589 description: FailureCount is the number of mirroring failure
6590 type: integer
6591 recovery_count:
6592 description: RecoveryCount is the number of recovery attempted after failures
6593 type: integer
6594 type: object
6595 uuid:
6596 description: UUID is the peer unique identifier
6597 type: string
6598 type: object
6599 type: array
6600 type: object
6601 type: array
6602 type: object
6603 nullable: true
6604 type: array
6605 details:
6606 description: Details contains potential status errors
6607 type: string
6608 lastChanged:
6609 description: LastChanged is the last time time the status last changed
6610 type: string
6611 lastChecked:
6612 description: LastChecked is the last time time the status was checked
6613 type: string
6614 type: object
6615 observedGeneration:
6616 description: ObservedGeneration is the latest generation observed by the controller.
6617 format: int64
6618 type: integer
6619 phase:
6620 description: ConditionType represent a resource's status
6621 type: string
6622 snapshotScheduleStatus:
6623 description: FilesystemSnapshotScheduleStatusSpec is the status of the snapshot schedule
6624 properties:
6625 details:
6626 description: Details contains potential status errors
6627 type: string
6628 lastChanged:
6629 description: LastChanged is the last time time the status last changed
6630 type: string
6631 lastChecked:
6632 description: LastChecked is the last time time the status was checked
6633 type: string
6634 snapshotSchedules:
6635 description: SnapshotSchedules is the list of snapshots scheduled
6636 items:
6637 description: FilesystemSnapshotSchedulesSpec is the list of snapshot scheduled for images in a pool
6638 properties:
6639 fs:
6640 description: Fs is the name of the Ceph Filesystem
6641 type: string
6642 path:
6643 description: Path is the path on the filesystem
6644 type: string
6645 rel_path:
6646 type: string
6647 retention:
6648 description: FilesystemSnapshotScheduleStatusRetention is the retention specification for a filesystem snapshot schedule
6649 properties:
6650 active:
6651 description: Active is whether the scheduled is active or not
6652 type: boolean
6653 created:
6654 description: Created is when the snapshot schedule was created
6655 type: string
6656 created_count:
6657 description: CreatedCount is total amount of snapshots
6658 type: integer
6659 first:
6660 description: First is when the first snapshot schedule was taken
6661 type: string
6662 last:
6663 description: Last is when the last snapshot schedule was taken
6664 type: string
6665 last_pruned:
6666 description: LastPruned is when the last snapshot schedule was pruned
6667 type: string
6668 pruned_count:
6669 description: PrunedCount is total amount of pruned snapshots
6670 type: integer
6671 start:
6672 description: Start is when the snapshot schedule starts
6673 type: string
6674 type: object
6675 schedule:
6676 type: string
6677 subvol:
6678 description: Subvol is the name of the sub volume
6679 type: string
6680 type: object
6681 nullable: true
6682 type: array
6683 type: object
6684 type: object
6685 x-kubernetes-preserve-unknown-fields: true
6686 required:
6687 - metadata
6688 - spec
6689 type: object
6690 served: true
6691 storage: true
6692 subresources:
6693 status: {}
6694status:
6695 acceptedNames:
6696 kind: ""
6697 plural: ""
6698 conditions: []
6699 storedVersions: []
6700---
6701apiVersion: apiextensions.k8s.io/v1
6702kind: CustomResourceDefinition
6703metadata:
6704 annotations:
6705 controller-gen.kubebuilder.io/version: v0.6.2
6706 helm.sh/resource-policy: keep
6707 creationTimestamp: null
6708 name: cephfilesystemsubvolumegroups.ceph.rook.io
6709spec:
6710 group: ceph.rook.io
6711 names:
6712 kind: CephFilesystemSubVolumeGroup
6713 listKind: CephFilesystemSubVolumeGroupList
6714 plural: cephfilesystemsubvolumegroups
6715 singular: cephfilesystemsubvolumegroup
6716 scope: Namespaced
6717 versions:
6718 - additionalPrinterColumns:
6719 - jsonPath: .status.phase
6720 name: Phase
6721 type: string
6722 name: v1
6723 schema:
6724 openAPIV3Schema:
6725 description: CephFilesystemSubVolumeGroup represents a Ceph Filesystem SubVolumeGroup
6726 properties:
6727 apiVersion:
6728 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'
6729 type: string
6730 kind:
6731 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'
6732 type: string
6733 metadata:
6734 type: object
6735 spec:
6736 description: Spec represents the specification of a Ceph Filesystem SubVolumeGroup
6737 properties:
6738 filesystemName:
6739 description: FilesystemName is the name of Ceph Filesystem SubVolumeGroup volume name. Typically it's the name of the CephFilesystem CR. If not coming from the CephFilesystem CR, it can be retrieved from the list of Ceph Filesystem volumes with `ceph fs volume ls`. To learn more about Ceph Filesystem abstractions see https://docs.ceph.com/en/latest/cephfs/fs-volumes/#fs-volumes-and-subvolumes
6740 type: string
6741 required:
6742 - filesystemName
6743 type: object
6744 status:
6745 description: Status represents the status of a CephFilesystem SubvolumeGroup
6746 properties:
6747 info:
6748 additionalProperties:
6749 type: string
6750 nullable: true
6751 type: object
6752 observedGeneration:
6753 description: ObservedGeneration is the latest generation observed by the controller.
6754 format: int64
6755 type: integer
6756 phase:
6757 description: ConditionType represent a resource's status
6758 type: string
6759 type: object
6760 x-kubernetes-preserve-unknown-fields: true
6761 required:
6762 - metadata
6763 - spec
6764 type: object
6765 served: true
6766 storage: true
6767 subresources:
6768 status: {}
6769status:
6770 acceptedNames:
6771 kind: ""
6772 plural: ""
6773 conditions: []
6774 storedVersions: []
6775---
6776apiVersion: apiextensions.k8s.io/v1
6777kind: CustomResourceDefinition
6778metadata:
6779 annotations:
6780 controller-gen.kubebuilder.io/version: v0.6.2
6781 helm.sh/resource-policy: keep
6782 creationTimestamp: null
6783 name: cephnfses.ceph.rook.io
6784spec:
6785 group: ceph.rook.io
6786 names:
6787 kind: CephNFS
6788 listKind: CephNFSList
6789 plural: cephnfses
6790 shortNames:
6791 - nfs
6792 singular: cephnfs
6793 scope: Namespaced
6794 versions:
6795 - name: v1
6796 schema:
6797 openAPIV3Schema:
6798 description: CephNFS represents a Ceph NFS
6799 properties:
6800 apiVersion:
6801 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'
6802 type: string
6803 kind:
6804 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'
6805 type: string
6806 metadata:
6807 type: object
6808 spec:
6809 description: NFSGaneshaSpec represents the spec of an nfs ganesha server
6810 properties:
6811 rados:
6812 description: RADOS is the Ganesha RADOS specification
6813 nullable: true
6814 properties:
6815 namespace:
6816 description: The namespace inside the Ceph pool (set by 'pool') where shared NFS-Ganesha config is stored. This setting is required for Ceph v15 and ignored for Ceph v16. As of Ceph Pacific v16+, this is internally set to the name of the CephNFS.
6817 type: string
6818 pool:
6819 description: The Ceph pool used store the shared configuration for NFS-Ganesha daemons. This setting is required for Ceph v15 and ignored for Ceph v16. As of Ceph Pacific 16.2.7+, this is internally hardcoded to ".nfs".
6820 type: string
6821 type: object
6822 security:
6823 description: Security allows specifying security configurations for the NFS cluster
6824 nullable: true
6825 properties:
6826 kerberos:
6827 description: Kerberos configures NFS-Ganesha to secure NFS client connections with Kerberos.
6828 nullable: true
6829 properties:
6830 configFiles:
6831 description: "ConfigFiles defines where the Kerberos configuration should be sourced from. Config files will be placed into the `/etc/krb5.conf.rook/` directory. \n If this is left empty, Rook will not add any files. This allows you to manage the files yourself however you wish. For example, you may build them into your custom Ceph container image or use the Vault agent injector to securely add the files via annotations on the CephNFS spec (passed to the NFS server pods). \n Rook configures Kerberos to log to stderr. We suggest removing logging sections from config files to avoid consuming unnecessary disk space from logging to files."
6832 properties:
6833 volumeSource:
6834 description: VolumeSource accepts a standard Kubernetes VolumeSource for Kerberos configuration files like what is normally used to configure Volumes for a Pod. For example, a ConfigMap, Secret, or HostPath. The volume may contain multiple files, all of which will be loaded.
6835 properties:
6836 awsElasticBlockStore:
6837 description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
6838 properties:
6839 fsType:
6840 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine'
6841 type: string
6842 partition:
6843 description: 'partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).'
6844 format: int32
6845 type: integer
6846 readOnly:
6847 description: 'readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
6848 type: boolean
6849 volumeID:
6850 description: 'volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
6851 type: string
6852 required:
6853 - volumeID
6854 type: object
6855 azureDisk:
6856 description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
6857 properties:
6858 cachingMode:
6859 description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.'
6860 type: string
6861 diskName:
6862 description: diskName is the Name of the data disk in the blob storage
6863 type: string
6864 diskURI:
6865 description: diskURI is the URI of data disk in the blob storage
6866 type: string
6867 fsType:
6868 description: fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
6869 type: string
6870 kind:
6871 description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared'
6872 type: string
6873 readOnly:
6874 description: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
6875 type: boolean
6876 required:
6877 - diskName
6878 - diskURI
6879 type: object
6880 azureFile:
6881 description: azureFile represents an Azure File Service mount on the host and bind mount to the pod.
6882 properties:
6883 readOnly:
6884 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
6885 type: boolean
6886 secretName:
6887 description: secretName is the name of secret that contains Azure Storage Account Name and Key
6888 type: string
6889 shareName:
6890 description: shareName is the azure share Name
6891 type: string
6892 required:
6893 - secretName
6894 - shareName
6895 type: object
6896 cephfs:
6897 description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime
6898 properties:
6899 monitors:
6900 description: 'monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
6901 items:
6902 type: string
6903 type: array
6904 path:
6905 description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
6906 type: string
6907 readOnly:
6908 description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
6909 type: boolean
6910 secretFile:
6911 description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
6912 type: string
6913 secretRef:
6914 description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
6915 properties:
6916 name:
6917 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
6918 type: string
6919 type: object
6920 user:
6921 description: 'user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
6922 type: string
6923 required:
6924 - monitors
6925 type: object
6926 cinder:
6927 description: 'cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
6928 properties:
6929 fsType:
6930 description: 'fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
6931 type: string
6932 readOnly:
6933 description: 'readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
6934 type: boolean
6935 secretRef:
6936 description: 'secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.'
6937 properties:
6938 name:
6939 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
6940 type: string
6941 type: object
6942 volumeID:
6943 description: 'volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
6944 type: string
6945 required:
6946 - volumeID
6947 type: object
6948 configMap:
6949 description: configMap represents a configMap that should populate this volume
6950 properties:
6951 defaultMode:
6952 description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
6953 format: int32
6954 type: integer
6955 items:
6956 description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
6957 items:
6958 description: Maps a string key to a path within a volume.
6959 properties:
6960 key:
6961 description: key is the key to project.
6962 type: string
6963 mode:
6964 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
6965 format: int32
6966 type: integer
6967 path:
6968 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
6969 type: string
6970 required:
6971 - key
6972 - path
6973 type: object
6974 type: array
6975 name:
6976 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
6977 type: string
6978 optional:
6979 description: optional specify whether the ConfigMap or its keys must be defined
6980 type: boolean
6981 type: object
6982 csi:
6983 description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
6984 properties:
6985 driver:
6986 description: driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.
6987 type: string
6988 fsType:
6989 description: fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.
6990 type: string
6991 nodePublishSecretRef:
6992 description: nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.
6993 properties:
6994 name:
6995 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
6996 type: string
6997 type: object
6998 readOnly:
6999 description: readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).
7000 type: boolean
7001 volumeAttributes:
7002 additionalProperties:
7003 type: string
7004 description: volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.
7005 type: object
7006 required:
7007 - driver
7008 type: object
7009 downwardAPI:
7010 description: downwardAPI represents downward API about the pod that should populate this volume
7011 properties:
7012 defaultMode:
7013 description: 'Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
7014 format: int32
7015 type: integer
7016 items:
7017 description: Items is a list of downward API volume file
7018 items:
7019 description: DownwardAPIVolumeFile represents information to create the file containing the pod field
7020 properties:
7021 fieldRef:
7022 description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
7023 properties:
7024 apiVersion:
7025 description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
7026 type: string
7027 fieldPath:
7028 description: Path of the field to select in the specified API version.
7029 type: string
7030 required:
7031 - fieldPath
7032 type: object
7033 mode:
7034 description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
7035 format: int32
7036 type: integer
7037 path:
7038 description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
7039 type: string
7040 resourceFieldRef:
7041 description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
7042 properties:
7043 containerName:
7044 description: 'Container name: required for volumes, optional for env vars'
7045 type: string
7046 divisor:
7047 anyOf:
7048 - type: integer
7049 - type: string
7050 description: Specifies the output format of the exposed resources, defaults to "1"
7051 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
7052 x-kubernetes-int-or-string: true
7053 resource:
7054 description: 'Required: resource to select'
7055 type: string
7056 required:
7057 - resource
7058 type: object
7059 required:
7060 - path
7061 type: object
7062 type: array
7063 type: object
7064 emptyDir:
7065 description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
7066 properties:
7067 medium:
7068 description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
7069 type: string
7070 sizeLimit:
7071 anyOf:
7072 - type: integer
7073 - type: string
7074 description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir'
7075 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
7076 x-kubernetes-int-or-string: true
7077 type: object
7078 ephemeral:
7079 description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time."
7080 properties:
7081 volumeClaimTemplate:
7082 description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `<pod name>-<volume name>` where `<volume name>` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil."
7083 properties:
7084 metadata:
7085 description: May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.
7086 properties:
7087 annotations:
7088 additionalProperties:
7089 type: string
7090 type: object
7091 finalizers:
7092 items:
7093 type: string
7094 type: array
7095 labels:
7096 additionalProperties:
7097 type: string
7098 type: object
7099 name:
7100 type: string
7101 namespace:
7102 type: string
7103 type: object
7104 spec:
7105 description: The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.
7106 properties:
7107 accessModes:
7108 description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
7109 items:
7110 type: string
7111 type: array
7112 dataSource:
7113 description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.'
7114 properties:
7115 apiGroup:
7116 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
7117 type: string
7118 kind:
7119 description: Kind is the type of resource being referenced
7120 type: string
7121 name:
7122 description: Name is the name of resource being referenced
7123 type: string
7124 required:
7125 - kind
7126 - name
7127 type: object
7128 dataSourceRef:
7129 description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.'
7130 properties:
7131 apiGroup:
7132 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
7133 type: string
7134 kind:
7135 description: Kind is the type of resource being referenced
7136 type: string
7137 name:
7138 description: Name is the name of resource being referenced
7139 type: string
7140 required:
7141 - kind
7142 - name
7143 type: object
7144 resources:
7145 description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
7146 properties:
7147 limits:
7148 additionalProperties:
7149 anyOf:
7150 - type: integer
7151 - type: string
7152 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
7153 x-kubernetes-int-or-string: true
7154 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
7155 type: object
7156 requests:
7157 additionalProperties:
7158 anyOf:
7159 - type: integer
7160 - type: string
7161 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
7162 x-kubernetes-int-or-string: true
7163 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
7164 type: object
7165 type: object
7166 selector:
7167 description: selector is a label query over volumes to consider for binding.
7168 properties:
7169 matchExpressions:
7170 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
7171 items:
7172 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
7173 properties:
7174 key:
7175 description: key is the label key that the selector applies to.
7176 type: string
7177 operator:
7178 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
7179 type: string
7180 values:
7181 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.
7182 items:
7183 type: string
7184 type: array
7185 required:
7186 - key
7187 - operator
7188 type: object
7189 type: array
7190 matchLabels:
7191 additionalProperties:
7192 type: string
7193 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.
7194 type: object
7195 type: object
7196 storageClassName:
7197 description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
7198 type: string
7199 volumeMode:
7200 description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
7201 type: string
7202 volumeName:
7203 description: volumeName is the binding reference to the PersistentVolume backing this claim.
7204 type: string
7205 type: object
7206 required:
7207 - spec
7208 type: object
7209 type: object
7210 fc:
7211 description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
7212 properties:
7213 fsType:
7214 description: 'fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine'
7215 type: string
7216 lun:
7217 description: 'lun is Optional: FC target lun number'
7218 format: int32
7219 type: integer
7220 readOnly:
7221 description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.'
7222 type: boolean
7223 targetWWNs:
7224 description: 'targetWWNs is Optional: FC target worldwide names (WWNs)'
7225 items:
7226 type: string
7227 type: array
7228 wwids:
7229 description: 'wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
7230 items:
7231 type: string
7232 type: array
7233 type: object
7234 flexVolume:
7235 description: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.
7236 properties:
7237 driver:
7238 description: driver is the name of the driver to use for this volume.
7239 type: string
7240 fsType:
7241 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
7242 type: string
7243 options:
7244 additionalProperties:
7245 type: string
7246 description: 'options is Optional: this field holds extra command options if any.'
7247 type: object
7248 readOnly:
7249 description: 'readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.'
7250 type: boolean
7251 secretRef:
7252 description: 'secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.'
7253 properties:
7254 name:
7255 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
7256 type: string
7257 type: object
7258 required:
7259 - driver
7260 type: object
7261 flocker:
7262 description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
7263 properties:
7264 datasetName:
7265 description: datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated
7266 type: string
7267 datasetUUID:
7268 description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
7269 type: string
7270 type: object
7271 gcePersistentDisk:
7272 description: 'gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
7273 properties:
7274 fsType:
7275 description: 'fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine'
7276 type: string
7277 partition:
7278 description: 'partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
7279 format: int32
7280 type: integer
7281 pdName:
7282 description: 'pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
7283 type: string
7284 readOnly:
7285 description: 'readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
7286 type: boolean
7287 required:
7288 - pdName
7289 type: object
7290 gitRepo:
7291 description: 'gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod''s container.'
7292 properties:
7293 directory:
7294 description: directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.
7295 type: string
7296 repository:
7297 description: repository is the URL
7298 type: string
7299 revision:
7300 description: revision is the commit hash for the specified revision.
7301 type: string
7302 required:
7303 - repository
7304 type: object
7305 glusterfs:
7306 description: 'glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md'
7307 properties:
7308 endpoints:
7309 description: 'endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
7310 type: string
7311 path:
7312 description: 'path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
7313 type: string
7314 readOnly:
7315 description: 'readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
7316 type: boolean
7317 required:
7318 - endpoints
7319 - path
7320 type: object
7321 hostPath:
7322 description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.'
7323 properties:
7324 path:
7325 description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
7326 type: string
7327 type:
7328 description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
7329 type: string
7330 required:
7331 - path
7332 type: object
7333 iscsi:
7334 description: 'iscsi represents an ISCSI Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md'
7335 properties:
7336 chapAuthDiscovery:
7337 description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
7338 type: boolean
7339 chapAuthSession:
7340 description: chapAuthSession defines whether support iSCSI Session CHAP authentication
7341 type: boolean
7342 fsType:
7343 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine'
7344 type: string
7345 initiatorName:
7346 description: initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.
7347 type: string
7348 iqn:
7349 description: iqn is the target iSCSI Qualified Name.
7350 type: string
7351 iscsiInterface:
7352 description: iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).
7353 type: string
7354 lun:
7355 description: lun represents iSCSI Target Lun number.
7356 format: int32
7357 type: integer
7358 portals:
7359 description: portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
7360 items:
7361 type: string
7362 type: array
7363 readOnly:
7364 description: readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.
7365 type: boolean
7366 secretRef:
7367 description: secretRef is the CHAP Secret for iSCSI target and initiator authentication
7368 properties:
7369 name:
7370 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
7371 type: string
7372 type: object
7373 targetPortal:
7374 description: targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
7375 type: string
7376 required:
7377 - iqn
7378 - lun
7379 - targetPortal
7380 type: object
7381 nfs:
7382 description: 'nfs represents an NFS mount on the host that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
7383 properties:
7384 path:
7385 description: 'path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
7386 type: string
7387 readOnly:
7388 description: 'readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
7389 type: boolean
7390 server:
7391 description: 'server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
7392 type: string
7393 required:
7394 - path
7395 - server
7396 type: object
7397 persistentVolumeClaim:
7398 description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
7399 properties:
7400 claimName:
7401 description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
7402 type: string
7403 readOnly:
7404 description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
7405 type: boolean
7406 required:
7407 - claimName
7408 type: object
7409 photonPersistentDisk:
7410 description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
7411 properties:
7412 fsType:
7413 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
7414 type: string
7415 pdID:
7416 description: pdID is the ID that identifies Photon Controller persistent disk
7417 type: string
7418 required:
7419 - pdID
7420 type: object
7421 portworxVolume:
7422 description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine
7423 properties:
7424 fsType:
7425 description: fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
7426 type: string
7427 readOnly:
7428 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
7429 type: boolean
7430 volumeID:
7431 description: volumeID uniquely identifies a Portworx volume
7432 type: string
7433 required:
7434 - volumeID
7435 type: object
7436 projected:
7437 description: projected items for all in one resources secrets, configmaps, and downward API
7438 properties:
7439 defaultMode:
7440 description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
7441 format: int32
7442 type: integer
7443 sources:
7444 description: sources is the list of volume projections
7445 items:
7446 description: Projection that may be projected along with other supported volume types
7447 properties:
7448 configMap:
7449 description: configMap information about the configMap data to project
7450 properties:
7451 items:
7452 description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
7453 items:
7454 description: Maps a string key to a path within a volume.
7455 properties:
7456 key:
7457 description: key is the key to project.
7458 type: string
7459 mode:
7460 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
7461 format: int32
7462 type: integer
7463 path:
7464 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
7465 type: string
7466 required:
7467 - key
7468 - path
7469 type: object
7470 type: array
7471 name:
7472 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
7473 type: string
7474 optional:
7475 description: optional specify whether the ConfigMap or its keys must be defined
7476 type: boolean
7477 type: object
7478 downwardAPI:
7479 description: downwardAPI information about the downwardAPI data to project
7480 properties:
7481 items:
7482 description: Items is a list of DownwardAPIVolume file
7483 items:
7484 description: DownwardAPIVolumeFile represents information to create the file containing the pod field
7485 properties:
7486 fieldRef:
7487 description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
7488 properties:
7489 apiVersion:
7490 description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
7491 type: string
7492 fieldPath:
7493 description: Path of the field to select in the specified API version.
7494 type: string
7495 required:
7496 - fieldPath
7497 type: object
7498 mode:
7499 description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
7500 format: int32
7501 type: integer
7502 path:
7503 description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
7504 type: string
7505 resourceFieldRef:
7506 description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
7507 properties:
7508 containerName:
7509 description: 'Container name: required for volumes, optional for env vars'
7510 type: string
7511 divisor:
7512 anyOf:
7513 - type: integer
7514 - type: string
7515 description: Specifies the output format of the exposed resources, defaults to "1"
7516 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
7517 x-kubernetes-int-or-string: true
7518 resource:
7519 description: 'Required: resource to select'
7520 type: string
7521 required:
7522 - resource
7523 type: object
7524 required:
7525 - path
7526 type: object
7527 type: array
7528 type: object
7529 secret:
7530 description: secret information about the secret data to project
7531 properties:
7532 items:
7533 description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
7534 items:
7535 description: Maps a string key to a path within a volume.
7536 properties:
7537 key:
7538 description: key is the key to project.
7539 type: string
7540 mode:
7541 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
7542 format: int32
7543 type: integer
7544 path:
7545 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
7546 type: string
7547 required:
7548 - key
7549 - path
7550 type: object
7551 type: array
7552 name:
7553 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
7554 type: string
7555 optional:
7556 description: optional field specify whether the Secret or its key must be defined
7557 type: boolean
7558 type: object
7559 serviceAccountToken:
7560 description: serviceAccountToken is information about the serviceAccountToken data to project
7561 properties:
7562 audience:
7563 description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
7564 type: string
7565 expirationSeconds:
7566 description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
7567 format: int64
7568 type: integer
7569 path:
7570 description: path is the path relative to the mount point of the file to project the token into.
7571 type: string
7572 required:
7573 - path
7574 type: object
7575 type: object
7576 type: array
7577 type: object
7578 quobyte:
7579 description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime
7580 properties:
7581 group:
7582 description: group to map volume access to Default is no group
7583 type: string
7584 readOnly:
7585 description: readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.
7586 type: boolean
7587 registry:
7588 description: registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes
7589 type: string
7590 tenant:
7591 description: tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin
7592 type: string
7593 user:
7594 description: user to map volume access to Defaults to serivceaccount user
7595 type: string
7596 volume:
7597 description: volume is a string that references an already created Quobyte volume by name.
7598 type: string
7599 required:
7600 - registry
7601 - volume
7602 type: object
7603 rbd:
7604 description: 'rbd represents a Rados Block Device mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md'
7605 properties:
7606 fsType:
7607 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine'
7608 type: string
7609 image:
7610 description: 'image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
7611 type: string
7612 keyring:
7613 description: 'keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
7614 type: string
7615 monitors:
7616 description: 'monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
7617 items:
7618 type: string
7619 type: array
7620 pool:
7621 description: 'pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
7622 type: string
7623 readOnly:
7624 description: 'readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
7625 type: boolean
7626 secretRef:
7627 description: 'secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
7628 properties:
7629 name:
7630 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
7631 type: string
7632 type: object
7633 user:
7634 description: 'user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
7635 type: string
7636 required:
7637 - image
7638 - monitors
7639 type: object
7640 scaleIO:
7641 description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
7642 properties:
7643 fsType:
7644 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs".
7645 type: string
7646 gateway:
7647 description: gateway is the host address of the ScaleIO API Gateway.
7648 type: string
7649 protectionDomain:
7650 description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
7651 type: string
7652 readOnly:
7653 description: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
7654 type: boolean
7655 secretRef:
7656 description: secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.
7657 properties:
7658 name:
7659 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
7660 type: string
7661 type: object
7662 sslEnabled:
7663 description: sslEnabled Flag enable/disable SSL communication with Gateway, default false
7664 type: boolean
7665 storageMode:
7666 description: storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.
7667 type: string
7668 storagePool:
7669 description: storagePool is the ScaleIO Storage Pool associated with the protection domain.
7670 type: string
7671 system:
7672 description: system is the name of the storage system as configured in ScaleIO.
7673 type: string
7674 volumeName:
7675 description: volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.
7676 type: string
7677 required:
7678 - gateway
7679 - secretRef
7680 - system
7681 type: object
7682 secret:
7683 description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
7684 properties:
7685 defaultMode:
7686 description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
7687 format: int32
7688 type: integer
7689 items:
7690 description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
7691 items:
7692 description: Maps a string key to a path within a volume.
7693 properties:
7694 key:
7695 description: key is the key to project.
7696 type: string
7697 mode:
7698 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
7699 format: int32
7700 type: integer
7701 path:
7702 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
7703 type: string
7704 required:
7705 - key
7706 - path
7707 type: object
7708 type: array
7709 optional:
7710 description: optional field specify whether the Secret or its keys must be defined
7711 type: boolean
7712 secretName:
7713 description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
7714 type: string
7715 type: object
7716 storageos:
7717 description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
7718 properties:
7719 fsType:
7720 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
7721 type: string
7722 readOnly:
7723 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
7724 type: boolean
7725 secretRef:
7726 description: secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.
7727 properties:
7728 name:
7729 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
7730 type: string
7731 type: object
7732 volumeName:
7733 description: volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.
7734 type: string
7735 volumeNamespace:
7736 description: volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.
7737 type: string
7738 type: object
7739 vsphereVolume:
7740 description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
7741 properties:
7742 fsType:
7743 description: fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
7744 type: string
7745 storagePolicyID:
7746 description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
7747 type: string
7748 storagePolicyName:
7749 description: storagePolicyName is the storage Policy Based Management (SPBM) profile name.
7750 type: string
7751 volumePath:
7752 description: volumePath is the path that identifies vSphere volume vmdk
7753 type: string
7754 required:
7755 - volumePath
7756 type: object
7757 type: object
7758 type: object
7759 keytabFile:
7760 description: KeytabFile defines where the Kerberos keytab should be sourced from. The keytab file will be placed into `/etc/krb5.keytab`. If this is left empty, Rook will not add the file. This allows you to manage the `krb5.keytab` file yourself however you wish. For example, you may build it into your custom Ceph container image or use the Vault agent injector to securely add the file via annotations on the CephNFS spec (passed to the NFS server pods).
7761 properties:
7762 volumeSource:
7763 description: 'VolumeSource accepts a standard Kubernetes VolumeSource for the Kerberos keytab file like what is normally used to configure Volumes for a Pod. For example, a Secret or HostPath. There are two requirements for the source''s content: 1. The config file must be mountable via `subPath: krb5.keytab`. For example, in a Secret, the data item must be named `krb5.keytab`, or `items` must be defined to select the key and give it path `krb5.keytab`. A HostPath directory must have the `krb5.keytab` file. 2. The volume or config file must have mode 0600.'
7764 properties:
7765 awsElasticBlockStore:
7766 description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
7767 properties:
7768 fsType:
7769 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine'
7770 type: string
7771 partition:
7772 description: 'partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).'
7773 format: int32
7774 type: integer
7775 readOnly:
7776 description: 'readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
7777 type: boolean
7778 volumeID:
7779 description: 'volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
7780 type: string
7781 required:
7782 - volumeID
7783 type: object
7784 azureDisk:
7785 description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
7786 properties:
7787 cachingMode:
7788 description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.'
7789 type: string
7790 diskName:
7791 description: diskName is the Name of the data disk in the blob storage
7792 type: string
7793 diskURI:
7794 description: diskURI is the URI of data disk in the blob storage
7795 type: string
7796 fsType:
7797 description: fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
7798 type: string
7799 kind:
7800 description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared'
7801 type: string
7802 readOnly:
7803 description: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
7804 type: boolean
7805 required:
7806 - diskName
7807 - diskURI
7808 type: object
7809 azureFile:
7810 description: azureFile represents an Azure File Service mount on the host and bind mount to the pod.
7811 properties:
7812 readOnly:
7813 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
7814 type: boolean
7815 secretName:
7816 description: secretName is the name of secret that contains Azure Storage Account Name and Key
7817 type: string
7818 shareName:
7819 description: shareName is the azure share Name
7820 type: string
7821 required:
7822 - secretName
7823 - shareName
7824 type: object
7825 cephfs:
7826 description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime
7827 properties:
7828 monitors:
7829 description: 'monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
7830 items:
7831 type: string
7832 type: array
7833 path:
7834 description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
7835 type: string
7836 readOnly:
7837 description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
7838 type: boolean
7839 secretFile:
7840 description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
7841 type: string
7842 secretRef:
7843 description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
7844 properties:
7845 name:
7846 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
7847 type: string
7848 type: object
7849 user:
7850 description: 'user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
7851 type: string
7852 required:
7853 - monitors
7854 type: object
7855 cinder:
7856 description: 'cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
7857 properties:
7858 fsType:
7859 description: 'fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
7860 type: string
7861 readOnly:
7862 description: 'readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
7863 type: boolean
7864 secretRef:
7865 description: 'secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.'
7866 properties:
7867 name:
7868 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
7869 type: string
7870 type: object
7871 volumeID:
7872 description: 'volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
7873 type: string
7874 required:
7875 - volumeID
7876 type: object
7877 configMap:
7878 description: configMap represents a configMap that should populate this volume
7879 properties:
7880 defaultMode:
7881 description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
7882 format: int32
7883 type: integer
7884 items:
7885 description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
7886 items:
7887 description: Maps a string key to a path within a volume.
7888 properties:
7889 key:
7890 description: key is the key to project.
7891 type: string
7892 mode:
7893 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
7894 format: int32
7895 type: integer
7896 path:
7897 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
7898 type: string
7899 required:
7900 - key
7901 - path
7902 type: object
7903 type: array
7904 name:
7905 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
7906 type: string
7907 optional:
7908 description: optional specify whether the ConfigMap or its keys must be defined
7909 type: boolean
7910 type: object
7911 csi:
7912 description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
7913 properties:
7914 driver:
7915 description: driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.
7916 type: string
7917 fsType:
7918 description: fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.
7919 type: string
7920 nodePublishSecretRef:
7921 description: nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.
7922 properties:
7923 name:
7924 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
7925 type: string
7926 type: object
7927 readOnly:
7928 description: readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).
7929 type: boolean
7930 volumeAttributes:
7931 additionalProperties:
7932 type: string
7933 description: volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.
7934 type: object
7935 required:
7936 - driver
7937 type: object
7938 downwardAPI:
7939 description: downwardAPI represents downward API about the pod that should populate this volume
7940 properties:
7941 defaultMode:
7942 description: 'Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
7943 format: int32
7944 type: integer
7945 items:
7946 description: Items is a list of downward API volume file
7947 items:
7948 description: DownwardAPIVolumeFile represents information to create the file containing the pod field
7949 properties:
7950 fieldRef:
7951 description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
7952 properties:
7953 apiVersion:
7954 description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
7955 type: string
7956 fieldPath:
7957 description: Path of the field to select in the specified API version.
7958 type: string
7959 required:
7960 - fieldPath
7961 type: object
7962 mode:
7963 description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
7964 format: int32
7965 type: integer
7966 path:
7967 description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
7968 type: string
7969 resourceFieldRef:
7970 description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
7971 properties:
7972 containerName:
7973 description: 'Container name: required for volumes, optional for env vars'
7974 type: string
7975 divisor:
7976 anyOf:
7977 - type: integer
7978 - type: string
7979 description: Specifies the output format of the exposed resources, defaults to "1"
7980 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
7981 x-kubernetes-int-or-string: true
7982 resource:
7983 description: 'Required: resource to select'
7984 type: string
7985 required:
7986 - resource
7987 type: object
7988 required:
7989 - path
7990 type: object
7991 type: array
7992 type: object
7993 emptyDir:
7994 description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
7995 properties:
7996 medium:
7997 description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
7998 type: string
7999 sizeLimit:
8000 anyOf:
8001 - type: integer
8002 - type: string
8003 description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir'
8004 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
8005 x-kubernetes-int-or-string: true
8006 type: object
8007 ephemeral:
8008 description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time."
8009 properties:
8010 volumeClaimTemplate:
8011 description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `<pod name>-<volume name>` where `<volume name>` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil."
8012 properties:
8013 metadata:
8014 description: May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.
8015 properties:
8016 annotations:
8017 additionalProperties:
8018 type: string
8019 type: object
8020 finalizers:
8021 items:
8022 type: string
8023 type: array
8024 labels:
8025 additionalProperties:
8026 type: string
8027 type: object
8028 name:
8029 type: string
8030 namespace:
8031 type: string
8032 type: object
8033 spec:
8034 description: The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.
8035 properties:
8036 accessModes:
8037 description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
8038 items:
8039 type: string
8040 type: array
8041 dataSource:
8042 description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.'
8043 properties:
8044 apiGroup:
8045 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
8046 type: string
8047 kind:
8048 description: Kind is the type of resource being referenced
8049 type: string
8050 name:
8051 description: Name is the name of resource being referenced
8052 type: string
8053 required:
8054 - kind
8055 - name
8056 type: object
8057 dataSourceRef:
8058 description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.'
8059 properties:
8060 apiGroup:
8061 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
8062 type: string
8063 kind:
8064 description: Kind is the type of resource being referenced
8065 type: string
8066 name:
8067 description: Name is the name of resource being referenced
8068 type: string
8069 required:
8070 - kind
8071 - name
8072 type: object
8073 resources:
8074 description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
8075 properties:
8076 limits:
8077 additionalProperties:
8078 anyOf:
8079 - type: integer
8080 - type: string
8081 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
8082 x-kubernetes-int-or-string: true
8083 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
8084 type: object
8085 requests:
8086 additionalProperties:
8087 anyOf:
8088 - type: integer
8089 - type: string
8090 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
8091 x-kubernetes-int-or-string: true
8092 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
8093 type: object
8094 type: object
8095 selector:
8096 description: selector is a label query over volumes to consider for binding.
8097 properties:
8098 matchExpressions:
8099 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
8100 items:
8101 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
8102 properties:
8103 key:
8104 description: key is the label key that the selector applies to.
8105 type: string
8106 operator:
8107 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
8108 type: string
8109 values:
8110 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.
8111 items:
8112 type: string
8113 type: array
8114 required:
8115 - key
8116 - operator
8117 type: object
8118 type: array
8119 matchLabels:
8120 additionalProperties:
8121 type: string
8122 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.
8123 type: object
8124 type: object
8125 storageClassName:
8126 description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
8127 type: string
8128 volumeMode:
8129 description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
8130 type: string
8131 volumeName:
8132 description: volumeName is the binding reference to the PersistentVolume backing this claim.
8133 type: string
8134 type: object
8135 required:
8136 - spec
8137 type: object
8138 type: object
8139 fc:
8140 description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
8141 properties:
8142 fsType:
8143 description: 'fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine'
8144 type: string
8145 lun:
8146 description: 'lun is Optional: FC target lun number'
8147 format: int32
8148 type: integer
8149 readOnly:
8150 description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.'
8151 type: boolean
8152 targetWWNs:
8153 description: 'targetWWNs is Optional: FC target worldwide names (WWNs)'
8154 items:
8155 type: string
8156 type: array
8157 wwids:
8158 description: 'wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
8159 items:
8160 type: string
8161 type: array
8162 type: object
8163 flexVolume:
8164 description: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.
8165 properties:
8166 driver:
8167 description: driver is the name of the driver to use for this volume.
8168 type: string
8169 fsType:
8170 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
8171 type: string
8172 options:
8173 additionalProperties:
8174 type: string
8175 description: 'options is Optional: this field holds extra command options if any.'
8176 type: object
8177 readOnly:
8178 description: 'readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.'
8179 type: boolean
8180 secretRef:
8181 description: 'secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.'
8182 properties:
8183 name:
8184 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
8185 type: string
8186 type: object
8187 required:
8188 - driver
8189 type: object
8190 flocker:
8191 description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
8192 properties:
8193 datasetName:
8194 description: datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated
8195 type: string
8196 datasetUUID:
8197 description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
8198 type: string
8199 type: object
8200 gcePersistentDisk:
8201 description: 'gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
8202 properties:
8203 fsType:
8204 description: 'fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine'
8205 type: string
8206 partition:
8207 description: 'partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
8208 format: int32
8209 type: integer
8210 pdName:
8211 description: 'pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
8212 type: string
8213 readOnly:
8214 description: 'readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
8215 type: boolean
8216 required:
8217 - pdName
8218 type: object
8219 gitRepo:
8220 description: 'gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod''s container.'
8221 properties:
8222 directory:
8223 description: directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.
8224 type: string
8225 repository:
8226 description: repository is the URL
8227 type: string
8228 revision:
8229 description: revision is the commit hash for the specified revision.
8230 type: string
8231 required:
8232 - repository
8233 type: object
8234 glusterfs:
8235 description: 'glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md'
8236 properties:
8237 endpoints:
8238 description: 'endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
8239 type: string
8240 path:
8241 description: 'path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
8242 type: string
8243 readOnly:
8244 description: 'readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
8245 type: boolean
8246 required:
8247 - endpoints
8248 - path
8249 type: object
8250 hostPath:
8251 description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.'
8252 properties:
8253 path:
8254 description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
8255 type: string
8256 type:
8257 description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
8258 type: string
8259 required:
8260 - path
8261 type: object
8262 iscsi:
8263 description: 'iscsi represents an ISCSI Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md'
8264 properties:
8265 chapAuthDiscovery:
8266 description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
8267 type: boolean
8268 chapAuthSession:
8269 description: chapAuthSession defines whether support iSCSI Session CHAP authentication
8270 type: boolean
8271 fsType:
8272 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine'
8273 type: string
8274 initiatorName:
8275 description: initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.
8276 type: string
8277 iqn:
8278 description: iqn is the target iSCSI Qualified Name.
8279 type: string
8280 iscsiInterface:
8281 description: iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).
8282 type: string
8283 lun:
8284 description: lun represents iSCSI Target Lun number.
8285 format: int32
8286 type: integer
8287 portals:
8288 description: portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
8289 items:
8290 type: string
8291 type: array
8292 readOnly:
8293 description: readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.
8294 type: boolean
8295 secretRef:
8296 description: secretRef is the CHAP Secret for iSCSI target and initiator authentication
8297 properties:
8298 name:
8299 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
8300 type: string
8301 type: object
8302 targetPortal:
8303 description: targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
8304 type: string
8305 required:
8306 - iqn
8307 - lun
8308 - targetPortal
8309 type: object
8310 nfs:
8311 description: 'nfs represents an NFS mount on the host that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
8312 properties:
8313 path:
8314 description: 'path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
8315 type: string
8316 readOnly:
8317 description: 'readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
8318 type: boolean
8319 server:
8320 description: 'server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
8321 type: string
8322 required:
8323 - path
8324 - server
8325 type: object
8326 persistentVolumeClaim:
8327 description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
8328 properties:
8329 claimName:
8330 description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
8331 type: string
8332 readOnly:
8333 description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
8334 type: boolean
8335 required:
8336 - claimName
8337 type: object
8338 photonPersistentDisk:
8339 description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
8340 properties:
8341 fsType:
8342 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
8343 type: string
8344 pdID:
8345 description: pdID is the ID that identifies Photon Controller persistent disk
8346 type: string
8347 required:
8348 - pdID
8349 type: object
8350 portworxVolume:
8351 description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine
8352 properties:
8353 fsType:
8354 description: fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
8355 type: string
8356 readOnly:
8357 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
8358 type: boolean
8359 volumeID:
8360 description: volumeID uniquely identifies a Portworx volume
8361 type: string
8362 required:
8363 - volumeID
8364 type: object
8365 projected:
8366 description: projected items for all in one resources secrets, configmaps, and downward API
8367 properties:
8368 defaultMode:
8369 description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
8370 format: int32
8371 type: integer
8372 sources:
8373 description: sources is the list of volume projections
8374 items:
8375 description: Projection that may be projected along with other supported volume types
8376 properties:
8377 configMap:
8378 description: configMap information about the configMap data to project
8379 properties:
8380 items:
8381 description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
8382 items:
8383 description: Maps a string key to a path within a volume.
8384 properties:
8385 key:
8386 description: key is the key to project.
8387 type: string
8388 mode:
8389 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
8390 format: int32
8391 type: integer
8392 path:
8393 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
8394 type: string
8395 required:
8396 - key
8397 - path
8398 type: object
8399 type: array
8400 name:
8401 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
8402 type: string
8403 optional:
8404 description: optional specify whether the ConfigMap or its keys must be defined
8405 type: boolean
8406 type: object
8407 downwardAPI:
8408 description: downwardAPI information about the downwardAPI data to project
8409 properties:
8410 items:
8411 description: Items is a list of DownwardAPIVolume file
8412 items:
8413 description: DownwardAPIVolumeFile represents information to create the file containing the pod field
8414 properties:
8415 fieldRef:
8416 description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
8417 properties:
8418 apiVersion:
8419 description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
8420 type: string
8421 fieldPath:
8422 description: Path of the field to select in the specified API version.
8423 type: string
8424 required:
8425 - fieldPath
8426 type: object
8427 mode:
8428 description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
8429 format: int32
8430 type: integer
8431 path:
8432 description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
8433 type: string
8434 resourceFieldRef:
8435 description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
8436 properties:
8437 containerName:
8438 description: 'Container name: required for volumes, optional for env vars'
8439 type: string
8440 divisor:
8441 anyOf:
8442 - type: integer
8443 - type: string
8444 description: Specifies the output format of the exposed resources, defaults to "1"
8445 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
8446 x-kubernetes-int-or-string: true
8447 resource:
8448 description: 'Required: resource to select'
8449 type: string
8450 required:
8451 - resource
8452 type: object
8453 required:
8454 - path
8455 type: object
8456 type: array
8457 type: object
8458 secret:
8459 description: secret information about the secret data to project
8460 properties:
8461 items:
8462 description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
8463 items:
8464 description: Maps a string key to a path within a volume.
8465 properties:
8466 key:
8467 description: key is the key to project.
8468 type: string
8469 mode:
8470 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
8471 format: int32
8472 type: integer
8473 path:
8474 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
8475 type: string
8476 required:
8477 - key
8478 - path
8479 type: object
8480 type: array
8481 name:
8482 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
8483 type: string
8484 optional:
8485 description: optional field specify whether the Secret or its key must be defined
8486 type: boolean
8487 type: object
8488 serviceAccountToken:
8489 description: serviceAccountToken is information about the serviceAccountToken data to project
8490 properties:
8491 audience:
8492 description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
8493 type: string
8494 expirationSeconds:
8495 description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
8496 format: int64
8497 type: integer
8498 path:
8499 description: path is the path relative to the mount point of the file to project the token into.
8500 type: string
8501 required:
8502 - path
8503 type: object
8504 type: object
8505 type: array
8506 type: object
8507 quobyte:
8508 description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime
8509 properties:
8510 group:
8511 description: group to map volume access to Default is no group
8512 type: string
8513 readOnly:
8514 description: readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.
8515 type: boolean
8516 registry:
8517 description: registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes
8518 type: string
8519 tenant:
8520 description: tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin
8521 type: string
8522 user:
8523 description: user to map volume access to Defaults to serivceaccount user
8524 type: string
8525 volume:
8526 description: volume is a string that references an already created Quobyte volume by name.
8527 type: string
8528 required:
8529 - registry
8530 - volume
8531 type: object
8532 rbd:
8533 description: 'rbd represents a Rados Block Device mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md'
8534 properties:
8535 fsType:
8536 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine'
8537 type: string
8538 image:
8539 description: 'image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
8540 type: string
8541 keyring:
8542 description: 'keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
8543 type: string
8544 monitors:
8545 description: 'monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
8546 items:
8547 type: string
8548 type: array
8549 pool:
8550 description: 'pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
8551 type: string
8552 readOnly:
8553 description: 'readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
8554 type: boolean
8555 secretRef:
8556 description: 'secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
8557 properties:
8558 name:
8559 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
8560 type: string
8561 type: object
8562 user:
8563 description: 'user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
8564 type: string
8565 required:
8566 - image
8567 - monitors
8568 type: object
8569 scaleIO:
8570 description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
8571 properties:
8572 fsType:
8573 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs".
8574 type: string
8575 gateway:
8576 description: gateway is the host address of the ScaleIO API Gateway.
8577 type: string
8578 protectionDomain:
8579 description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
8580 type: string
8581 readOnly:
8582 description: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
8583 type: boolean
8584 secretRef:
8585 description: secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.
8586 properties:
8587 name:
8588 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
8589 type: string
8590 type: object
8591 sslEnabled:
8592 description: sslEnabled Flag enable/disable SSL communication with Gateway, default false
8593 type: boolean
8594 storageMode:
8595 description: storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.
8596 type: string
8597 storagePool:
8598 description: storagePool is the ScaleIO Storage Pool associated with the protection domain.
8599 type: string
8600 system:
8601 description: system is the name of the storage system as configured in ScaleIO.
8602 type: string
8603 volumeName:
8604 description: volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.
8605 type: string
8606 required:
8607 - gateway
8608 - secretRef
8609 - system
8610 type: object
8611 secret:
8612 description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
8613 properties:
8614 defaultMode:
8615 description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
8616 format: int32
8617 type: integer
8618 items:
8619 description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
8620 items:
8621 description: Maps a string key to a path within a volume.
8622 properties:
8623 key:
8624 description: key is the key to project.
8625 type: string
8626 mode:
8627 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
8628 format: int32
8629 type: integer
8630 path:
8631 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
8632 type: string
8633 required:
8634 - key
8635 - path
8636 type: object
8637 type: array
8638 optional:
8639 description: optional field specify whether the Secret or its keys must be defined
8640 type: boolean
8641 secretName:
8642 description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
8643 type: string
8644 type: object
8645 storageos:
8646 description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
8647 properties:
8648 fsType:
8649 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
8650 type: string
8651 readOnly:
8652 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
8653 type: boolean
8654 secretRef:
8655 description: secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.
8656 properties:
8657 name:
8658 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
8659 type: string
8660 type: object
8661 volumeName:
8662 description: volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.
8663 type: string
8664 volumeNamespace:
8665 description: volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.
8666 type: string
8667 type: object
8668 vsphereVolume:
8669 description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
8670 properties:
8671 fsType:
8672 description: fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
8673 type: string
8674 storagePolicyID:
8675 description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
8676 type: string
8677 storagePolicyName:
8678 description: storagePolicyName is the storage Policy Based Management (SPBM) profile name.
8679 type: string
8680 volumePath:
8681 description: volumePath is the path that identifies vSphere volume vmdk
8682 type: string
8683 required:
8684 - volumePath
8685 type: object
8686 type: object
8687 type: object
8688 principalName:
8689 default: nfs
8690 description: 'PrincipalName corresponds directly to NFS-Ganesha''s NFS_KRB5:PrincipalName config. In practice, this is the service prefix of the principal name. The default is "nfs". This value is combined with (a) the namespace and name of the CephNFS (with a hyphen between) and (b) the Realm configured in the user-provided krb5.conf to determine the full principal name: <principalName>/<namespace>-<name>@<realm>. e.g., nfs/rook-ceph-my-nfs@example.net. See https://github.com/nfs-ganesha/nfs-ganesha/wiki/RPCSEC_GSS for more detail.'
8691 type: string
8692 type: object
8693 sssd:
8694 description: SSSD enables integration with System Security Services Daemon (SSSD). SSSD can be used to provide user ID mapping from a number of sources. See https://sssd.io for more information about the SSSD project.
8695 nullable: true
8696 properties:
8697 sidecar:
8698 description: Sidecar tells Rook to run SSSD in a sidecar alongside the NFS-Ganesha server in each NFS pod.
8699 properties:
8700 additionalFiles:
8701 description: AdditionalFiles defines any number of additional files that should be mounted into the SSSD sidecar. These files may be referenced by the sssd.conf config file.
8702 items:
8703 description: SSSDSidecarAdditionalFile represents the source from where additional files for the the SSSD configuration should come from and are made available.
8704 properties:
8705 subPath:
8706 description: SubPath defines the sub-path in `/etc/sssd/rook-additional/` where the additional file(s) will be placed. Each subPath definition must be unique and must not contain ':'.
8707 minLength: 1
8708 pattern: ^[^:]+$
8709 type: string
8710 volumeSource:
8711 description: VolumeSource accepts standard Kubernetes VolumeSource for the additional file(s) like what is normally used to configure Volumes for a Pod. Fore example, a ConfigMap, Secret, or HostPath. Each VolumeSource adds one or more additional files to the SSSD sidecar container in the `/etc/sssd/rook-additional/<subPath>` directory. Be aware that some files may need to have a specific file mode like 0600 due to requirements by SSSD for some files. For example, CA or TLS certificates.
8712 properties:
8713 awsElasticBlockStore:
8714 description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
8715 properties:
8716 fsType:
8717 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine'
8718 type: string
8719 partition:
8720 description: 'partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).'
8721 format: int32
8722 type: integer
8723 readOnly:
8724 description: 'readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
8725 type: boolean
8726 volumeID:
8727 description: 'volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
8728 type: string
8729 required:
8730 - volumeID
8731 type: object
8732 azureDisk:
8733 description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
8734 properties:
8735 cachingMode:
8736 description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.'
8737 type: string
8738 diskName:
8739 description: diskName is the Name of the data disk in the blob storage
8740 type: string
8741 diskURI:
8742 description: diskURI is the URI of data disk in the blob storage
8743 type: string
8744 fsType:
8745 description: fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
8746 type: string
8747 kind:
8748 description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared'
8749 type: string
8750 readOnly:
8751 description: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
8752 type: boolean
8753 required:
8754 - diskName
8755 - diskURI
8756 type: object
8757 azureFile:
8758 description: azureFile represents an Azure File Service mount on the host and bind mount to the pod.
8759 properties:
8760 readOnly:
8761 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
8762 type: boolean
8763 secretName:
8764 description: secretName is the name of secret that contains Azure Storage Account Name and Key
8765 type: string
8766 shareName:
8767 description: shareName is the azure share Name
8768 type: string
8769 required:
8770 - secretName
8771 - shareName
8772 type: object
8773 cephfs:
8774 description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime
8775 properties:
8776 monitors:
8777 description: 'monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
8778 items:
8779 type: string
8780 type: array
8781 path:
8782 description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
8783 type: string
8784 readOnly:
8785 description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
8786 type: boolean
8787 secretFile:
8788 description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
8789 type: string
8790 secretRef:
8791 description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
8792 properties:
8793 name:
8794 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
8795 type: string
8796 type: object
8797 user:
8798 description: 'user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
8799 type: string
8800 required:
8801 - monitors
8802 type: object
8803 cinder:
8804 description: 'cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
8805 properties:
8806 fsType:
8807 description: 'fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
8808 type: string
8809 readOnly:
8810 description: 'readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
8811 type: boolean
8812 secretRef:
8813 description: 'secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.'
8814 properties:
8815 name:
8816 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
8817 type: string
8818 type: object
8819 volumeID:
8820 description: 'volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
8821 type: string
8822 required:
8823 - volumeID
8824 type: object
8825 configMap:
8826 description: configMap represents a configMap that should populate this volume
8827 properties:
8828 defaultMode:
8829 description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
8830 format: int32
8831 type: integer
8832 items:
8833 description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
8834 items:
8835 description: Maps a string key to a path within a volume.
8836 properties:
8837 key:
8838 description: key is the key to project.
8839 type: string
8840 mode:
8841 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
8842 format: int32
8843 type: integer
8844 path:
8845 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
8846 type: string
8847 required:
8848 - key
8849 - path
8850 type: object
8851 type: array
8852 name:
8853 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
8854 type: string
8855 optional:
8856 description: optional specify whether the ConfigMap or its keys must be defined
8857 type: boolean
8858 type: object
8859 csi:
8860 description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
8861 properties:
8862 driver:
8863 description: driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.
8864 type: string
8865 fsType:
8866 description: fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.
8867 type: string
8868 nodePublishSecretRef:
8869 description: nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.
8870 properties:
8871 name:
8872 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
8873 type: string
8874 type: object
8875 readOnly:
8876 description: readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).
8877 type: boolean
8878 volumeAttributes:
8879 additionalProperties:
8880 type: string
8881 description: volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.
8882 type: object
8883 required:
8884 - driver
8885 type: object
8886 downwardAPI:
8887 description: downwardAPI represents downward API about the pod that should populate this volume
8888 properties:
8889 defaultMode:
8890 description: 'Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
8891 format: int32
8892 type: integer
8893 items:
8894 description: Items is a list of downward API volume file
8895 items:
8896 description: DownwardAPIVolumeFile represents information to create the file containing the pod field
8897 properties:
8898 fieldRef:
8899 description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
8900 properties:
8901 apiVersion:
8902 description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
8903 type: string
8904 fieldPath:
8905 description: Path of the field to select in the specified API version.
8906 type: string
8907 required:
8908 - fieldPath
8909 type: object
8910 mode:
8911 description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
8912 format: int32
8913 type: integer
8914 path:
8915 description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
8916 type: string
8917 resourceFieldRef:
8918 description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
8919 properties:
8920 containerName:
8921 description: 'Container name: required for volumes, optional for env vars'
8922 type: string
8923 divisor:
8924 anyOf:
8925 - type: integer
8926 - type: string
8927 description: Specifies the output format of the exposed resources, defaults to "1"
8928 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
8929 x-kubernetes-int-or-string: true
8930 resource:
8931 description: 'Required: resource to select'
8932 type: string
8933 required:
8934 - resource
8935 type: object
8936 required:
8937 - path
8938 type: object
8939 type: array
8940 type: object
8941 emptyDir:
8942 description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
8943 properties:
8944 medium:
8945 description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
8946 type: string
8947 sizeLimit:
8948 anyOf:
8949 - type: integer
8950 - type: string
8951 description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir'
8952 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
8953 x-kubernetes-int-or-string: true
8954 type: object
8955 ephemeral:
8956 description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time."
8957 properties:
8958 volumeClaimTemplate:
8959 description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `<pod name>-<volume name>` where `<volume name>` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil."
8960 properties:
8961 metadata:
8962 description: May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.
8963 properties:
8964 annotations:
8965 additionalProperties:
8966 type: string
8967 type: object
8968 finalizers:
8969 items:
8970 type: string
8971 type: array
8972 labels:
8973 additionalProperties:
8974 type: string
8975 type: object
8976 name:
8977 type: string
8978 namespace:
8979 type: string
8980 type: object
8981 spec:
8982 description: The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.
8983 properties:
8984 accessModes:
8985 description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
8986 items:
8987 type: string
8988 type: array
8989 dataSource:
8990 description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.'
8991 properties:
8992 apiGroup:
8993 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
8994 type: string
8995 kind:
8996 description: Kind is the type of resource being referenced
8997 type: string
8998 name:
8999 description: Name is the name of resource being referenced
9000 type: string
9001 required:
9002 - kind
9003 - name
9004 type: object
9005 dataSourceRef:
9006 description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.'
9007 properties:
9008 apiGroup:
9009 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
9010 type: string
9011 kind:
9012 description: Kind is the type of resource being referenced
9013 type: string
9014 name:
9015 description: Name is the name of resource being referenced
9016 type: string
9017 required:
9018 - kind
9019 - name
9020 type: object
9021 resources:
9022 description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
9023 properties:
9024 limits:
9025 additionalProperties:
9026 anyOf:
9027 - type: integer
9028 - type: string
9029 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
9030 x-kubernetes-int-or-string: true
9031 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
9032 type: object
9033 requests:
9034 additionalProperties:
9035 anyOf:
9036 - type: integer
9037 - type: string
9038 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
9039 x-kubernetes-int-or-string: true
9040 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
9041 type: object
9042 type: object
9043 selector:
9044 description: selector is a label query over volumes to consider for binding.
9045 properties:
9046 matchExpressions:
9047 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9048 items:
9049 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
9050 properties:
9051 key:
9052 description: key is the label key that the selector applies to.
9053 type: string
9054 operator:
9055 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
9056 type: string
9057 values:
9058 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.
9059 items:
9060 type: string
9061 type: array
9062 required:
9063 - key
9064 - operator
9065 type: object
9066 type: array
9067 matchLabels:
9068 additionalProperties:
9069 type: string
9070 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.
9071 type: object
9072 type: object
9073 storageClassName:
9074 description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
9075 type: string
9076 volumeMode:
9077 description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
9078 type: string
9079 volumeName:
9080 description: volumeName is the binding reference to the PersistentVolume backing this claim.
9081 type: string
9082 type: object
9083 required:
9084 - spec
9085 type: object
9086 type: object
9087 fc:
9088 description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
9089 properties:
9090 fsType:
9091 description: 'fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine'
9092 type: string
9093 lun:
9094 description: 'lun is Optional: FC target lun number'
9095 format: int32
9096 type: integer
9097 readOnly:
9098 description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.'
9099 type: boolean
9100 targetWWNs:
9101 description: 'targetWWNs is Optional: FC target worldwide names (WWNs)'
9102 items:
9103 type: string
9104 type: array
9105 wwids:
9106 description: 'wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
9107 items:
9108 type: string
9109 type: array
9110 type: object
9111 flexVolume:
9112 description: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.
9113 properties:
9114 driver:
9115 description: driver is the name of the driver to use for this volume.
9116 type: string
9117 fsType:
9118 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
9119 type: string
9120 options:
9121 additionalProperties:
9122 type: string
9123 description: 'options is Optional: this field holds extra command options if any.'
9124 type: object
9125 readOnly:
9126 description: 'readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.'
9127 type: boolean
9128 secretRef:
9129 description: 'secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.'
9130 properties:
9131 name:
9132 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
9133 type: string
9134 type: object
9135 required:
9136 - driver
9137 type: object
9138 flocker:
9139 description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
9140 properties:
9141 datasetName:
9142 description: datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated
9143 type: string
9144 datasetUUID:
9145 description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
9146 type: string
9147 type: object
9148 gcePersistentDisk:
9149 description: 'gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
9150 properties:
9151 fsType:
9152 description: 'fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine'
9153 type: string
9154 partition:
9155 description: 'partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
9156 format: int32
9157 type: integer
9158 pdName:
9159 description: 'pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
9160 type: string
9161 readOnly:
9162 description: 'readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
9163 type: boolean
9164 required:
9165 - pdName
9166 type: object
9167 gitRepo:
9168 description: 'gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod''s container.'
9169 properties:
9170 directory:
9171 description: directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.
9172 type: string
9173 repository:
9174 description: repository is the URL
9175 type: string
9176 revision:
9177 description: revision is the commit hash for the specified revision.
9178 type: string
9179 required:
9180 - repository
9181 type: object
9182 glusterfs:
9183 description: 'glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md'
9184 properties:
9185 endpoints:
9186 description: 'endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
9187 type: string
9188 path:
9189 description: 'path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
9190 type: string
9191 readOnly:
9192 description: 'readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
9193 type: boolean
9194 required:
9195 - endpoints
9196 - path
9197 type: object
9198 hostPath:
9199 description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.'
9200 properties:
9201 path:
9202 description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
9203 type: string
9204 type:
9205 description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
9206 type: string
9207 required:
9208 - path
9209 type: object
9210 iscsi:
9211 description: 'iscsi represents an ISCSI Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md'
9212 properties:
9213 chapAuthDiscovery:
9214 description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
9215 type: boolean
9216 chapAuthSession:
9217 description: chapAuthSession defines whether support iSCSI Session CHAP authentication
9218 type: boolean
9219 fsType:
9220 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine'
9221 type: string
9222 initiatorName:
9223 description: initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.
9224 type: string
9225 iqn:
9226 description: iqn is the target iSCSI Qualified Name.
9227 type: string
9228 iscsiInterface:
9229 description: iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).
9230 type: string
9231 lun:
9232 description: lun represents iSCSI Target Lun number.
9233 format: int32
9234 type: integer
9235 portals:
9236 description: portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
9237 items:
9238 type: string
9239 type: array
9240 readOnly:
9241 description: readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.
9242 type: boolean
9243 secretRef:
9244 description: secretRef is the CHAP Secret for iSCSI target and initiator authentication
9245 properties:
9246 name:
9247 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
9248 type: string
9249 type: object
9250 targetPortal:
9251 description: targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
9252 type: string
9253 required:
9254 - iqn
9255 - lun
9256 - targetPortal
9257 type: object
9258 nfs:
9259 description: 'nfs represents an NFS mount on the host that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
9260 properties:
9261 path:
9262 description: 'path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
9263 type: string
9264 readOnly:
9265 description: 'readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
9266 type: boolean
9267 server:
9268 description: 'server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
9269 type: string
9270 required:
9271 - path
9272 - server
9273 type: object
9274 persistentVolumeClaim:
9275 description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
9276 properties:
9277 claimName:
9278 description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
9279 type: string
9280 readOnly:
9281 description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
9282 type: boolean
9283 required:
9284 - claimName
9285 type: object
9286 photonPersistentDisk:
9287 description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
9288 properties:
9289 fsType:
9290 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
9291 type: string
9292 pdID:
9293 description: pdID is the ID that identifies Photon Controller persistent disk
9294 type: string
9295 required:
9296 - pdID
9297 type: object
9298 portworxVolume:
9299 description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine
9300 properties:
9301 fsType:
9302 description: fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
9303 type: string
9304 readOnly:
9305 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
9306 type: boolean
9307 volumeID:
9308 description: volumeID uniquely identifies a Portworx volume
9309 type: string
9310 required:
9311 - volumeID
9312 type: object
9313 projected:
9314 description: projected items for all in one resources secrets, configmaps, and downward API
9315 properties:
9316 defaultMode:
9317 description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
9318 format: int32
9319 type: integer
9320 sources:
9321 description: sources is the list of volume projections
9322 items:
9323 description: Projection that may be projected along with other supported volume types
9324 properties:
9325 configMap:
9326 description: configMap information about the configMap data to project
9327 properties:
9328 items:
9329 description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
9330 items:
9331 description: Maps a string key to a path within a volume.
9332 properties:
9333 key:
9334 description: key is the key to project.
9335 type: string
9336 mode:
9337 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
9338 format: int32
9339 type: integer
9340 path:
9341 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
9342 type: string
9343 required:
9344 - key
9345 - path
9346 type: object
9347 type: array
9348 name:
9349 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
9350 type: string
9351 optional:
9352 description: optional specify whether the ConfigMap or its keys must be defined
9353 type: boolean
9354 type: object
9355 downwardAPI:
9356 description: downwardAPI information about the downwardAPI data to project
9357 properties:
9358 items:
9359 description: Items is a list of DownwardAPIVolume file
9360 items:
9361 description: DownwardAPIVolumeFile represents information to create the file containing the pod field
9362 properties:
9363 fieldRef:
9364 description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
9365 properties:
9366 apiVersion:
9367 description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
9368 type: string
9369 fieldPath:
9370 description: Path of the field to select in the specified API version.
9371 type: string
9372 required:
9373 - fieldPath
9374 type: object
9375 mode:
9376 description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
9377 format: int32
9378 type: integer
9379 path:
9380 description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
9381 type: string
9382 resourceFieldRef:
9383 description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
9384 properties:
9385 containerName:
9386 description: 'Container name: required for volumes, optional for env vars'
9387 type: string
9388 divisor:
9389 anyOf:
9390 - type: integer
9391 - type: string
9392 description: Specifies the output format of the exposed resources, defaults to "1"
9393 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
9394 x-kubernetes-int-or-string: true
9395 resource:
9396 description: 'Required: resource to select'
9397 type: string
9398 required:
9399 - resource
9400 type: object
9401 required:
9402 - path
9403 type: object
9404 type: array
9405 type: object
9406 secret:
9407 description: secret information about the secret data to project
9408 properties:
9409 items:
9410 description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
9411 items:
9412 description: Maps a string key to a path within a volume.
9413 properties:
9414 key:
9415 description: key is the key to project.
9416 type: string
9417 mode:
9418 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
9419 format: int32
9420 type: integer
9421 path:
9422 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
9423 type: string
9424 required:
9425 - key
9426 - path
9427 type: object
9428 type: array
9429 name:
9430 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
9431 type: string
9432 optional:
9433 description: optional field specify whether the Secret or its key must be defined
9434 type: boolean
9435 type: object
9436 serviceAccountToken:
9437 description: serviceAccountToken is information about the serviceAccountToken data to project
9438 properties:
9439 audience:
9440 description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
9441 type: string
9442 expirationSeconds:
9443 description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
9444 format: int64
9445 type: integer
9446 path:
9447 description: path is the path relative to the mount point of the file to project the token into.
9448 type: string
9449 required:
9450 - path
9451 type: object
9452 type: object
9453 type: array
9454 type: object
9455 quobyte:
9456 description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime
9457 properties:
9458 group:
9459 description: group to map volume access to Default is no group
9460 type: string
9461 readOnly:
9462 description: readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.
9463 type: boolean
9464 registry:
9465 description: registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes
9466 type: string
9467 tenant:
9468 description: tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin
9469 type: string
9470 user:
9471 description: user to map volume access to Defaults to serivceaccount user
9472 type: string
9473 volume:
9474 description: volume is a string that references an already created Quobyte volume by name.
9475 type: string
9476 required:
9477 - registry
9478 - volume
9479 type: object
9480 rbd:
9481 description: 'rbd represents a Rados Block Device mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md'
9482 properties:
9483 fsType:
9484 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine'
9485 type: string
9486 image:
9487 description: 'image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
9488 type: string
9489 keyring:
9490 description: 'keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
9491 type: string
9492 monitors:
9493 description: 'monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
9494 items:
9495 type: string
9496 type: array
9497 pool:
9498 description: 'pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
9499 type: string
9500 readOnly:
9501 description: 'readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
9502 type: boolean
9503 secretRef:
9504 description: 'secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
9505 properties:
9506 name:
9507 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
9508 type: string
9509 type: object
9510 user:
9511 description: 'user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
9512 type: string
9513 required:
9514 - image
9515 - monitors
9516 type: object
9517 scaleIO:
9518 description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
9519 properties:
9520 fsType:
9521 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs".
9522 type: string
9523 gateway:
9524 description: gateway is the host address of the ScaleIO API Gateway.
9525 type: string
9526 protectionDomain:
9527 description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
9528 type: string
9529 readOnly:
9530 description: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
9531 type: boolean
9532 secretRef:
9533 description: secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.
9534 properties:
9535 name:
9536 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
9537 type: string
9538 type: object
9539 sslEnabled:
9540 description: sslEnabled Flag enable/disable SSL communication with Gateway, default false
9541 type: boolean
9542 storageMode:
9543 description: storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.
9544 type: string
9545 storagePool:
9546 description: storagePool is the ScaleIO Storage Pool associated with the protection domain.
9547 type: string
9548 system:
9549 description: system is the name of the storage system as configured in ScaleIO.
9550 type: string
9551 volumeName:
9552 description: volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.
9553 type: string
9554 required:
9555 - gateway
9556 - secretRef
9557 - system
9558 type: object
9559 secret:
9560 description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
9561 properties:
9562 defaultMode:
9563 description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
9564 format: int32
9565 type: integer
9566 items:
9567 description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
9568 items:
9569 description: Maps a string key to a path within a volume.
9570 properties:
9571 key:
9572 description: key is the key to project.
9573 type: string
9574 mode:
9575 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
9576 format: int32
9577 type: integer
9578 path:
9579 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
9580 type: string
9581 required:
9582 - key
9583 - path
9584 type: object
9585 type: array
9586 optional:
9587 description: optional field specify whether the Secret or its keys must be defined
9588 type: boolean
9589 secretName:
9590 description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
9591 type: string
9592 type: object
9593 storageos:
9594 description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
9595 properties:
9596 fsType:
9597 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
9598 type: string
9599 readOnly:
9600 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
9601 type: boolean
9602 secretRef:
9603 description: secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.
9604 properties:
9605 name:
9606 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
9607 type: string
9608 type: object
9609 volumeName:
9610 description: volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.
9611 type: string
9612 volumeNamespace:
9613 description: volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.
9614 type: string
9615 type: object
9616 vsphereVolume:
9617 description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
9618 properties:
9619 fsType:
9620 description: fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
9621 type: string
9622 storagePolicyID:
9623 description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
9624 type: string
9625 storagePolicyName:
9626 description: storagePolicyName is the storage Policy Based Management (SPBM) profile name.
9627 type: string
9628 volumePath:
9629 description: volumePath is the path that identifies vSphere volume vmdk
9630 type: string
9631 required:
9632 - volumePath
9633 type: object
9634 type: object
9635 required:
9636 - subPath
9637 - volumeSource
9638 type: object
9639 type: array
9640 debugLevel:
9641 description: 'DebugLevel sets the debug level for SSSD. If unset or set to 0, Rook does nothing. Otherwise, this may be a value between 1 and 10. See SSSD docs for more info: https://sssd.io/troubleshooting/basics.html#sssd-debug-logs'
9642 maximum: 10
9643 minimum: 0
9644 type: integer
9645 image:
9646 description: Image defines the container image that should be used for the SSSD sidecar.
9647 minLength: 1
9648 type: string
9649 resources:
9650 description: Resources allow specifying resource requests/limits on the SSSD sidecar container.
9651 properties:
9652 limits:
9653 additionalProperties:
9654 anyOf:
9655 - type: integer
9656 - type: string
9657 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
9658 x-kubernetes-int-or-string: true
9659 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
9660 type: object
9661 requests:
9662 additionalProperties:
9663 anyOf:
9664 - type: integer
9665 - type: string
9666 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
9667 x-kubernetes-int-or-string: true
9668 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
9669 type: object
9670 type: object
9671 sssdConfigFile:
9672 description: SSSDConfigFile defines where the SSSD configuration should be sourced from. The config file will be placed into `/etc/sssd/sssd.conf`. If this is left empty, Rook will not add the file. This allows you to manage the `sssd.conf` file yourself however you wish. For example, you may build it into your custom Ceph container image or use the Vault agent injector to securely add the file via annotations on the CephNFS spec (passed to the NFS server pods).
9673 properties:
9674 volumeSource:
9675 description: 'VolumeSource accepts a standard Kubernetes VolumeSource for the SSSD configuration file like what is normally used to configure Volumes for a Pod. For example, a ConfigMap, Secret, or HostPath. There are two requirements for the source''s content: 1. The config file must be mountable via `subPath: sssd.conf`. For example, in a ConfigMap, the data item must be named `sssd.conf`, or `items` must be defined to select the key and give it path `sssd.conf`. A HostPath directory must have the `sssd.conf` file. 2. The volume or config file must have mode 0600.'
9676 properties:
9677 awsElasticBlockStore:
9678 description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
9679 properties:
9680 fsType:
9681 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine'
9682 type: string
9683 partition:
9684 description: 'partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).'
9685 format: int32
9686 type: integer
9687 readOnly:
9688 description: 'readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
9689 type: boolean
9690 volumeID:
9691 description: 'volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore'
9692 type: string
9693 required:
9694 - volumeID
9695 type: object
9696 azureDisk:
9697 description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
9698 properties:
9699 cachingMode:
9700 description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.'
9701 type: string
9702 diskName:
9703 description: diskName is the Name of the data disk in the blob storage
9704 type: string
9705 diskURI:
9706 description: diskURI is the URI of data disk in the blob storage
9707 type: string
9708 fsType:
9709 description: fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
9710 type: string
9711 kind:
9712 description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared'
9713 type: string
9714 readOnly:
9715 description: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
9716 type: boolean
9717 required:
9718 - diskName
9719 - diskURI
9720 type: object
9721 azureFile:
9722 description: azureFile represents an Azure File Service mount on the host and bind mount to the pod.
9723 properties:
9724 readOnly:
9725 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
9726 type: boolean
9727 secretName:
9728 description: secretName is the name of secret that contains Azure Storage Account Name and Key
9729 type: string
9730 shareName:
9731 description: shareName is the azure share Name
9732 type: string
9733 required:
9734 - secretName
9735 - shareName
9736 type: object
9737 cephfs:
9738 description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime
9739 properties:
9740 monitors:
9741 description: 'monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
9742 items:
9743 type: string
9744 type: array
9745 path:
9746 description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /'
9747 type: string
9748 readOnly:
9749 description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
9750 type: boolean
9751 secretFile:
9752 description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
9753 type: string
9754 secretRef:
9755 description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
9756 properties:
9757 name:
9758 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
9759 type: string
9760 type: object
9761 user:
9762 description: 'user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it'
9763 type: string
9764 required:
9765 - monitors
9766 type: object
9767 cinder:
9768 description: 'cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
9769 properties:
9770 fsType:
9771 description: 'fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
9772 type: string
9773 readOnly:
9774 description: 'readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
9775 type: boolean
9776 secretRef:
9777 description: 'secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.'
9778 properties:
9779 name:
9780 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
9781 type: string
9782 type: object
9783 volumeID:
9784 description: 'volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md'
9785 type: string
9786 required:
9787 - volumeID
9788 type: object
9789 configMap:
9790 description: configMap represents a configMap that should populate this volume
9791 properties:
9792 defaultMode:
9793 description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
9794 format: int32
9795 type: integer
9796 items:
9797 description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
9798 items:
9799 description: Maps a string key to a path within a volume.
9800 properties:
9801 key:
9802 description: key is the key to project.
9803 type: string
9804 mode:
9805 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
9806 format: int32
9807 type: integer
9808 path:
9809 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
9810 type: string
9811 required:
9812 - key
9813 - path
9814 type: object
9815 type: array
9816 name:
9817 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
9818 type: string
9819 optional:
9820 description: optional specify whether the ConfigMap or its keys must be defined
9821 type: boolean
9822 type: object
9823 csi:
9824 description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
9825 properties:
9826 driver:
9827 description: driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.
9828 type: string
9829 fsType:
9830 description: fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.
9831 type: string
9832 nodePublishSecretRef:
9833 description: nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.
9834 properties:
9835 name:
9836 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
9837 type: string
9838 type: object
9839 readOnly:
9840 description: readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).
9841 type: boolean
9842 volumeAttributes:
9843 additionalProperties:
9844 type: string
9845 description: volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.
9846 type: object
9847 required:
9848 - driver
9849 type: object
9850 downwardAPI:
9851 description: downwardAPI represents downward API about the pod that should populate this volume
9852 properties:
9853 defaultMode:
9854 description: 'Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
9855 format: int32
9856 type: integer
9857 items:
9858 description: Items is a list of downward API volume file
9859 items:
9860 description: DownwardAPIVolumeFile represents information to create the file containing the pod field
9861 properties:
9862 fieldRef:
9863 description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
9864 properties:
9865 apiVersion:
9866 description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
9867 type: string
9868 fieldPath:
9869 description: Path of the field to select in the specified API version.
9870 type: string
9871 required:
9872 - fieldPath
9873 type: object
9874 mode:
9875 description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
9876 format: int32
9877 type: integer
9878 path:
9879 description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
9880 type: string
9881 resourceFieldRef:
9882 description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
9883 properties:
9884 containerName:
9885 description: 'Container name: required for volumes, optional for env vars'
9886 type: string
9887 divisor:
9888 anyOf:
9889 - type: integer
9890 - type: string
9891 description: Specifies the output format of the exposed resources, defaults to "1"
9892 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
9893 x-kubernetes-int-or-string: true
9894 resource:
9895 description: 'Required: resource to select'
9896 type: string
9897 required:
9898 - resource
9899 type: object
9900 required:
9901 - path
9902 type: object
9903 type: array
9904 type: object
9905 emptyDir:
9906 description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
9907 properties:
9908 medium:
9909 description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
9910 type: string
9911 sizeLimit:
9912 anyOf:
9913 - type: integer
9914 - type: string
9915 description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir'
9916 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
9917 x-kubernetes-int-or-string: true
9918 type: object
9919 ephemeral:
9920 description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time."
9921 properties:
9922 volumeClaimTemplate:
9923 description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `<pod name>-<volume name>` where `<volume name>` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil."
9924 properties:
9925 metadata:
9926 description: May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.
9927 properties:
9928 annotations:
9929 additionalProperties:
9930 type: string
9931 type: object
9932 finalizers:
9933 items:
9934 type: string
9935 type: array
9936 labels:
9937 additionalProperties:
9938 type: string
9939 type: object
9940 name:
9941 type: string
9942 namespace:
9943 type: string
9944 type: object
9945 spec:
9946 description: The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.
9947 properties:
9948 accessModes:
9949 description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
9950 items:
9951 type: string
9952 type: array
9953 dataSource:
9954 description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.'
9955 properties:
9956 apiGroup:
9957 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
9958 type: string
9959 kind:
9960 description: Kind is the type of resource being referenced
9961 type: string
9962 name:
9963 description: Name is the name of resource being referenced
9964 type: string
9965 required:
9966 - kind
9967 - name
9968 type: object
9969 dataSourceRef:
9970 description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.'
9971 properties:
9972 apiGroup:
9973 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.
9974 type: string
9975 kind:
9976 description: Kind is the type of resource being referenced
9977 type: string
9978 name:
9979 description: Name is the name of resource being referenced
9980 type: string
9981 required:
9982 - kind
9983 - name
9984 type: object
9985 resources:
9986 description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
9987 properties:
9988 limits:
9989 additionalProperties:
9990 anyOf:
9991 - type: integer
9992 - type: string
9993 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
9994 x-kubernetes-int-or-string: true
9995 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
9996 type: object
9997 requests:
9998 additionalProperties:
9999 anyOf:
10000 - type: integer
10001 - type: string
10002 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
10003 x-kubernetes-int-or-string: true
10004 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
10005 type: object
10006 type: object
10007 selector:
10008 description: selector is a label query over volumes to consider for binding.
10009 properties:
10010 matchExpressions:
10011 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10012 items:
10013 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
10014 properties:
10015 key:
10016 description: key is the label key that the selector applies to.
10017 type: string
10018 operator:
10019 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
10020 type: string
10021 values:
10022 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.
10023 items:
10024 type: string
10025 type: array
10026 required:
10027 - key
10028 - operator
10029 type: object
10030 type: array
10031 matchLabels:
10032 additionalProperties:
10033 type: string
10034 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.
10035 type: object
10036 type: object
10037 storageClassName:
10038 description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
10039 type: string
10040 volumeMode:
10041 description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
10042 type: string
10043 volumeName:
10044 description: volumeName is the binding reference to the PersistentVolume backing this claim.
10045 type: string
10046 type: object
10047 required:
10048 - spec
10049 type: object
10050 type: object
10051 fc:
10052 description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
10053 properties:
10054 fsType:
10055 description: 'fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine'
10056 type: string
10057 lun:
10058 description: 'lun is Optional: FC target lun number'
10059 format: int32
10060 type: integer
10061 readOnly:
10062 description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.'
10063 type: boolean
10064 targetWWNs:
10065 description: 'targetWWNs is Optional: FC target worldwide names (WWNs)'
10066 items:
10067 type: string
10068 type: array
10069 wwids:
10070 description: 'wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.'
10071 items:
10072 type: string
10073 type: array
10074 type: object
10075 flexVolume:
10076 description: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.
10077 properties:
10078 driver:
10079 description: driver is the name of the driver to use for this volume.
10080 type: string
10081 fsType:
10082 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
10083 type: string
10084 options:
10085 additionalProperties:
10086 type: string
10087 description: 'options is Optional: this field holds extra command options if any.'
10088 type: object
10089 readOnly:
10090 description: 'readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.'
10091 type: boolean
10092 secretRef:
10093 description: 'secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.'
10094 properties:
10095 name:
10096 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
10097 type: string
10098 type: object
10099 required:
10100 - driver
10101 type: object
10102 flocker:
10103 description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
10104 properties:
10105 datasetName:
10106 description: datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated
10107 type: string
10108 datasetUUID:
10109 description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset
10110 type: string
10111 type: object
10112 gcePersistentDisk:
10113 description: 'gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
10114 properties:
10115 fsType:
10116 description: 'fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine'
10117 type: string
10118 partition:
10119 description: 'partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
10120 format: int32
10121 type: integer
10122 pdName:
10123 description: 'pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
10124 type: string
10125 readOnly:
10126 description: 'readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk'
10127 type: boolean
10128 required:
10129 - pdName
10130 type: object
10131 gitRepo:
10132 description: 'gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod''s container.'
10133 properties:
10134 directory:
10135 description: directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.
10136 type: string
10137 repository:
10138 description: repository is the URL
10139 type: string
10140 revision:
10141 description: revision is the commit hash for the specified revision.
10142 type: string
10143 required:
10144 - repository
10145 type: object
10146 glusterfs:
10147 description: 'glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md'
10148 properties:
10149 endpoints:
10150 description: 'endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
10151 type: string
10152 path:
10153 description: 'path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
10154 type: string
10155 readOnly:
10156 description: 'readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod'
10157 type: boolean
10158 required:
10159 - endpoints
10160 - path
10161 type: object
10162 hostPath:
10163 description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.'
10164 properties:
10165 path:
10166 description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
10167 type: string
10168 type:
10169 description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath'
10170 type: string
10171 required:
10172 - path
10173 type: object
10174 iscsi:
10175 description: 'iscsi represents an ISCSI Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md'
10176 properties:
10177 chapAuthDiscovery:
10178 description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication
10179 type: boolean
10180 chapAuthSession:
10181 description: chapAuthSession defines whether support iSCSI Session CHAP authentication
10182 type: boolean
10183 fsType:
10184 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine'
10185 type: string
10186 initiatorName:
10187 description: initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.
10188 type: string
10189 iqn:
10190 description: iqn is the target iSCSI Qualified Name.
10191 type: string
10192 iscsiInterface:
10193 description: iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).
10194 type: string
10195 lun:
10196 description: lun represents iSCSI Target Lun number.
10197 format: int32
10198 type: integer
10199 portals:
10200 description: portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
10201 items:
10202 type: string
10203 type: array
10204 readOnly:
10205 description: readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.
10206 type: boolean
10207 secretRef:
10208 description: secretRef is the CHAP Secret for iSCSI target and initiator authentication
10209 properties:
10210 name:
10211 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
10212 type: string
10213 type: object
10214 targetPortal:
10215 description: targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
10216 type: string
10217 required:
10218 - iqn
10219 - lun
10220 - targetPortal
10221 type: object
10222 nfs:
10223 description: 'nfs represents an NFS mount on the host that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
10224 properties:
10225 path:
10226 description: 'path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
10227 type: string
10228 readOnly:
10229 description: 'readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
10230 type: boolean
10231 server:
10232 description: 'server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs'
10233 type: string
10234 required:
10235 - path
10236 - server
10237 type: object
10238 persistentVolumeClaim:
10239 description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
10240 properties:
10241 claimName:
10242 description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
10243 type: string
10244 readOnly:
10245 description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
10246 type: boolean
10247 required:
10248 - claimName
10249 type: object
10250 photonPersistentDisk:
10251 description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
10252 properties:
10253 fsType:
10254 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
10255 type: string
10256 pdID:
10257 description: pdID is the ID that identifies Photon Controller persistent disk
10258 type: string
10259 required:
10260 - pdID
10261 type: object
10262 portworxVolume:
10263 description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine
10264 properties:
10265 fsType:
10266 description: fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
10267 type: string
10268 readOnly:
10269 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
10270 type: boolean
10271 volumeID:
10272 description: volumeID uniquely identifies a Portworx volume
10273 type: string
10274 required:
10275 - volumeID
10276 type: object
10277 projected:
10278 description: projected items for all in one resources secrets, configmaps, and downward API
10279 properties:
10280 defaultMode:
10281 description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
10282 format: int32
10283 type: integer
10284 sources:
10285 description: sources is the list of volume projections
10286 items:
10287 description: Projection that may be projected along with other supported volume types
10288 properties:
10289 configMap:
10290 description: configMap information about the configMap data to project
10291 properties:
10292 items:
10293 description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
10294 items:
10295 description: Maps a string key to a path within a volume.
10296 properties:
10297 key:
10298 description: key is the key to project.
10299 type: string
10300 mode:
10301 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
10302 format: int32
10303 type: integer
10304 path:
10305 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
10306 type: string
10307 required:
10308 - key
10309 - path
10310 type: object
10311 type: array
10312 name:
10313 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
10314 type: string
10315 optional:
10316 description: optional specify whether the ConfigMap or its keys must be defined
10317 type: boolean
10318 type: object
10319 downwardAPI:
10320 description: downwardAPI information about the downwardAPI data to project
10321 properties:
10322 items:
10323 description: Items is a list of DownwardAPIVolume file
10324 items:
10325 description: DownwardAPIVolumeFile represents information to create the file containing the pod field
10326 properties:
10327 fieldRef:
10328 description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
10329 properties:
10330 apiVersion:
10331 description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
10332 type: string
10333 fieldPath:
10334 description: Path of the field to select in the specified API version.
10335 type: string
10336 required:
10337 - fieldPath
10338 type: object
10339 mode:
10340 description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
10341 format: int32
10342 type: integer
10343 path:
10344 description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
10345 type: string
10346 resourceFieldRef:
10347 description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
10348 properties:
10349 containerName:
10350 description: 'Container name: required for volumes, optional for env vars'
10351 type: string
10352 divisor:
10353 anyOf:
10354 - type: integer
10355 - type: string
10356 description: Specifies the output format of the exposed resources, defaults to "1"
10357 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
10358 x-kubernetes-int-or-string: true
10359 resource:
10360 description: 'Required: resource to select'
10361 type: string
10362 required:
10363 - resource
10364 type: object
10365 required:
10366 - path
10367 type: object
10368 type: array
10369 type: object
10370 secret:
10371 description: secret information about the secret data to project
10372 properties:
10373 items:
10374 description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
10375 items:
10376 description: Maps a string key to a path within a volume.
10377 properties:
10378 key:
10379 description: key is the key to project.
10380 type: string
10381 mode:
10382 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
10383 format: int32
10384 type: integer
10385 path:
10386 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
10387 type: string
10388 required:
10389 - key
10390 - path
10391 type: object
10392 type: array
10393 name:
10394 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
10395 type: string
10396 optional:
10397 description: optional field specify whether the Secret or its key must be defined
10398 type: boolean
10399 type: object
10400 serviceAccountToken:
10401 description: serviceAccountToken is information about the serviceAccountToken data to project
10402 properties:
10403 audience:
10404 description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.
10405 type: string
10406 expirationSeconds:
10407 description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.
10408 format: int64
10409 type: integer
10410 path:
10411 description: path is the path relative to the mount point of the file to project the token into.
10412 type: string
10413 required:
10414 - path
10415 type: object
10416 type: object
10417 type: array
10418 type: object
10419 quobyte:
10420 description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime
10421 properties:
10422 group:
10423 description: group to map volume access to Default is no group
10424 type: string
10425 readOnly:
10426 description: readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.
10427 type: boolean
10428 registry:
10429 description: registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes
10430 type: string
10431 tenant:
10432 description: tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin
10433 type: string
10434 user:
10435 description: user to map volume access to Defaults to serivceaccount user
10436 type: string
10437 volume:
10438 description: volume is a string that references an already created Quobyte volume by name.
10439 type: string
10440 required:
10441 - registry
10442 - volume
10443 type: object
10444 rbd:
10445 description: 'rbd represents a Rados Block Device mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md'
10446 properties:
10447 fsType:
10448 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine'
10449 type: string
10450 image:
10451 description: 'image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
10452 type: string
10453 keyring:
10454 description: 'keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
10455 type: string
10456 monitors:
10457 description: 'monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
10458 items:
10459 type: string
10460 type: array
10461 pool:
10462 description: 'pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
10463 type: string
10464 readOnly:
10465 description: 'readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
10466 type: boolean
10467 secretRef:
10468 description: 'secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
10469 properties:
10470 name:
10471 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
10472 type: string
10473 type: object
10474 user:
10475 description: 'user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it'
10476 type: string
10477 required:
10478 - image
10479 - monitors
10480 type: object
10481 scaleIO:
10482 description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
10483 properties:
10484 fsType:
10485 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs".
10486 type: string
10487 gateway:
10488 description: gateway is the host address of the ScaleIO API Gateway.
10489 type: string
10490 protectionDomain:
10491 description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.
10492 type: string
10493 readOnly:
10494 description: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
10495 type: boolean
10496 secretRef:
10497 description: secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.
10498 properties:
10499 name:
10500 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
10501 type: string
10502 type: object
10503 sslEnabled:
10504 description: sslEnabled Flag enable/disable SSL communication with Gateway, default false
10505 type: boolean
10506 storageMode:
10507 description: storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.
10508 type: string
10509 storagePool:
10510 description: storagePool is the ScaleIO Storage Pool associated with the protection domain.
10511 type: string
10512 system:
10513 description: system is the name of the storage system as configured in ScaleIO.
10514 type: string
10515 volumeName:
10516 description: volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.
10517 type: string
10518 required:
10519 - gateway
10520 - secretRef
10521 - system
10522 type: object
10523 secret:
10524 description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
10525 properties:
10526 defaultMode:
10527 description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
10528 format: int32
10529 type: integer
10530 items:
10531 description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
10532 items:
10533 description: Maps a string key to a path within a volume.
10534 properties:
10535 key:
10536 description: key is the key to project.
10537 type: string
10538 mode:
10539 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
10540 format: int32
10541 type: integer
10542 path:
10543 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.
10544 type: string
10545 required:
10546 - key
10547 - path
10548 type: object
10549 type: array
10550 optional:
10551 description: optional field specify whether the Secret or its keys must be defined
10552 type: boolean
10553 secretName:
10554 description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
10555 type: string
10556 type: object
10557 storageos:
10558 description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
10559 properties:
10560 fsType:
10561 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
10562 type: string
10563 readOnly:
10564 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.
10565 type: boolean
10566 secretRef:
10567 description: secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.
10568 properties:
10569 name:
10570 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
10571 type: string
10572 type: object
10573 volumeName:
10574 description: volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.
10575 type: string
10576 volumeNamespace:
10577 description: volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.
10578 type: string
10579 type: object
10580 vsphereVolume:
10581 description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
10582 properties:
10583 fsType:
10584 description: fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
10585 type: string
10586 storagePolicyID:
10587 description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
10588 type: string
10589 storagePolicyName:
10590 description: storagePolicyName is the storage Policy Based Management (SPBM) profile name.
10591 type: string
10592 volumePath:
10593 description: volumePath is the path that identifies vSphere volume vmdk
10594 type: string
10595 required:
10596 - volumePath
10597 type: object
10598 type: object
10599 type: object
10600 required:
10601 - image
10602 type: object
10603 type: object
10604 type: object
10605 server:
10606 description: Server is the Ganesha Server specification
10607 properties:
10608 active:
10609 description: The number of active Ganesha servers
10610 type: integer
10611 annotations:
10612 additionalProperties:
10613 type: string
10614 description: The annotations-related configuration to add/set on each Pod related object.
10615 nullable: true
10616 type: object
10617 x-kubernetes-preserve-unknown-fields: true
10618 labels:
10619 additionalProperties:
10620 type: string
10621 description: The labels-related configuration to add/set on each Pod related object.
10622 nullable: true
10623 type: object
10624 x-kubernetes-preserve-unknown-fields: true
10625 logLevel:
10626 description: LogLevel set logging level
10627 type: string
10628 placement:
10629 description: The affinity to place the ganesha pods
10630 nullable: true
10631 properties:
10632 nodeAffinity:
10633 description: NodeAffinity is a group of node affinity scheduling rules
10634 properties:
10635 preferredDuringSchedulingIgnoredDuringExecution:
10636 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.
10637 items:
10638 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).
10639 properties:
10640 preference:
10641 description: A node selector term, associated with the corresponding weight.
10642 properties:
10643 matchExpressions:
10644 description: A list of node selector requirements by node's labels.
10645 items:
10646 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
10647 properties:
10648 key:
10649 description: The label key that the selector applies to.
10650 type: string
10651 operator:
10652 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
10653 type: string
10654 values:
10655 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.
10656 items:
10657 type: string
10658 type: array
10659 required:
10660 - key
10661 - operator
10662 type: object
10663 type: array
10664 matchFields:
10665 description: A list of node selector requirements by node's fields.
10666 items:
10667 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
10668 properties:
10669 key:
10670 description: The label key that the selector applies to.
10671 type: string
10672 operator:
10673 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
10674 type: string
10675 values:
10676 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.
10677 items:
10678 type: string
10679 type: array
10680 required:
10681 - key
10682 - operator
10683 type: object
10684 type: array
10685 type: object
10686 weight:
10687 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
10688 format: int32
10689 type: integer
10690 required:
10691 - preference
10692 - weight
10693 type: object
10694 type: array
10695 requiredDuringSchedulingIgnoredDuringExecution:
10696 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.
10697 properties:
10698 nodeSelectorTerms:
10699 description: Required. A list of node selector terms. The terms are ORed.
10700 items:
10701 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.
10702 properties:
10703 matchExpressions:
10704 description: A list of node selector requirements by node's labels.
10705 items:
10706 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
10707 properties:
10708 key:
10709 description: The label key that the selector applies to.
10710 type: string
10711 operator:
10712 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
10713 type: string
10714 values:
10715 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.
10716 items:
10717 type: string
10718 type: array
10719 required:
10720 - key
10721 - operator
10722 type: object
10723 type: array
10724 matchFields:
10725 description: A list of node selector requirements by node's fields.
10726 items:
10727 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
10728 properties:
10729 key:
10730 description: The label key that the selector applies to.
10731 type: string
10732 operator:
10733 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
10734 type: string
10735 values:
10736 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.
10737 items:
10738 type: string
10739 type: array
10740 required:
10741 - key
10742 - operator
10743 type: object
10744 type: array
10745 type: object
10746 type: array
10747 required:
10748 - nodeSelectorTerms
10749 type: object
10750 type: object
10751 podAffinity:
10752 description: PodAffinity is a group of inter pod affinity scheduling rules
10753 properties:
10754 preferredDuringSchedulingIgnoredDuringExecution:
10755 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.
10756 items:
10757 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
10758 properties:
10759 podAffinityTerm:
10760 description: Required. A pod affinity term, associated with the corresponding weight.
10761 properties:
10762 labelSelector:
10763 description: A label query over a set of resources, in this case pods.
10764 properties:
10765 matchExpressions:
10766 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10767 items:
10768 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
10769 properties:
10770 key:
10771 description: key is the label key that the selector applies to.
10772 type: string
10773 operator:
10774 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
10775 type: string
10776 values:
10777 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.
10778 items:
10779 type: string
10780 type: array
10781 required:
10782 - key
10783 - operator
10784 type: object
10785 type: array
10786 matchLabels:
10787 additionalProperties:
10788 type: string
10789 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.
10790 type: object
10791 type: object
10792 namespaceSelector:
10793 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.
10794 properties:
10795 matchExpressions:
10796 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10797 items:
10798 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
10799 properties:
10800 key:
10801 description: key is the label key that the selector applies to.
10802 type: string
10803 operator:
10804 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
10805 type: string
10806 values:
10807 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.
10808 items:
10809 type: string
10810 type: array
10811 required:
10812 - key
10813 - operator
10814 type: object
10815 type: array
10816 matchLabels:
10817 additionalProperties:
10818 type: string
10819 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.
10820 type: object
10821 type: object
10822 namespaces:
10823 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".
10824 items:
10825 type: string
10826 type: array
10827 topologyKey:
10828 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.
10829 type: string
10830 required:
10831 - topologyKey
10832 type: object
10833 weight:
10834 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
10835 format: int32
10836 type: integer
10837 required:
10838 - podAffinityTerm
10839 - weight
10840 type: object
10841 type: array
10842 requiredDuringSchedulingIgnoredDuringExecution:
10843 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.
10844 items:
10845 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
10846 properties:
10847 labelSelector:
10848 description: A label query over a set of resources, in this case pods.
10849 properties:
10850 matchExpressions:
10851 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10852 items:
10853 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
10854 properties:
10855 key:
10856 description: key is the label key that the selector applies to.
10857 type: string
10858 operator:
10859 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
10860 type: string
10861 values:
10862 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.
10863 items:
10864 type: string
10865 type: array
10866 required:
10867 - key
10868 - operator
10869 type: object
10870 type: array
10871 matchLabels:
10872 additionalProperties:
10873 type: string
10874 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.
10875 type: object
10876 type: object
10877 namespaceSelector:
10878 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.
10879 properties:
10880 matchExpressions:
10881 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10882 items:
10883 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
10884 properties:
10885 key:
10886 description: key is the label key that the selector applies to.
10887 type: string
10888 operator:
10889 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
10890 type: string
10891 values:
10892 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.
10893 items:
10894 type: string
10895 type: array
10896 required:
10897 - key
10898 - operator
10899 type: object
10900 type: array
10901 matchLabels:
10902 additionalProperties:
10903 type: string
10904 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.
10905 type: object
10906 type: object
10907 namespaces:
10908 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".
10909 items:
10910 type: string
10911 type: array
10912 topologyKey:
10913 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.
10914 type: string
10915 required:
10916 - topologyKey
10917 type: object
10918 type: array
10919 type: object
10920 podAntiAffinity:
10921 description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
10922 properties:
10923 preferredDuringSchedulingIgnoredDuringExecution:
10924 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.
10925 items:
10926 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
10927 properties:
10928 podAffinityTerm:
10929 description: Required. A pod affinity term, associated with the corresponding weight.
10930 properties:
10931 labelSelector:
10932 description: A label query over a set of resources, in this case pods.
10933 properties:
10934 matchExpressions:
10935 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10936 items:
10937 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
10938 properties:
10939 key:
10940 description: key is the label key that the selector applies to.
10941 type: string
10942 operator:
10943 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
10944 type: string
10945 values:
10946 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.
10947 items:
10948 type: string
10949 type: array
10950 required:
10951 - key
10952 - operator
10953 type: object
10954 type: array
10955 matchLabels:
10956 additionalProperties:
10957 type: string
10958 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.
10959 type: object
10960 type: object
10961 namespaceSelector:
10962 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.
10963 properties:
10964 matchExpressions:
10965 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10966 items:
10967 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
10968 properties:
10969 key:
10970 description: key is the label key that the selector applies to.
10971 type: string
10972 operator:
10973 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
10974 type: string
10975 values:
10976 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.
10977 items:
10978 type: string
10979 type: array
10980 required:
10981 - key
10982 - operator
10983 type: object
10984 type: array
10985 matchLabels:
10986 additionalProperties:
10987 type: string
10988 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.
10989 type: object
10990 type: object
10991 namespaces:
10992 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".
10993 items:
10994 type: string
10995 type: array
10996 topologyKey:
10997 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.
10998 type: string
10999 required:
11000 - topologyKey
11001 type: object
11002 weight:
11003 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
11004 format: int32
11005 type: integer
11006 required:
11007 - podAffinityTerm
11008 - weight
11009 type: object
11010 type: array
11011 requiredDuringSchedulingIgnoredDuringExecution:
11012 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.
11013 items:
11014 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
11015 properties:
11016 labelSelector:
11017 description: A label query over a set of resources, in this case pods.
11018 properties:
11019 matchExpressions:
11020 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
11021 items:
11022 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
11023 properties:
11024 key:
11025 description: key is the label key that the selector applies to.
11026 type: string
11027 operator:
11028 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
11029 type: string
11030 values:
11031 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.
11032 items:
11033 type: string
11034 type: array
11035 required:
11036 - key
11037 - operator
11038 type: object
11039 type: array
11040 matchLabels:
11041 additionalProperties:
11042 type: string
11043 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.
11044 type: object
11045 type: object
11046 namespaceSelector:
11047 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.
11048 properties:
11049 matchExpressions:
11050 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
11051 items:
11052 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
11053 properties:
11054 key:
11055 description: key is the label key that the selector applies to.
11056 type: string
11057 operator:
11058 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
11059 type: string
11060 values:
11061 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.
11062 items:
11063 type: string
11064 type: array
11065 required:
11066 - key
11067 - operator
11068 type: object
11069 type: array
11070 matchLabels:
11071 additionalProperties:
11072 type: string
11073 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.
11074 type: object
11075 type: object
11076 namespaces:
11077 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".
11078 items:
11079 type: string
11080 type: array
11081 topologyKey:
11082 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.
11083 type: string
11084 required:
11085 - topologyKey
11086 type: object
11087 type: array
11088 type: object
11089 tolerations:
11090 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
11091 items:
11092 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
11093 properties:
11094 effect:
11095 description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
11096 type: string
11097 key:
11098 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.
11099 type: string
11100 operator:
11101 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.
11102 type: string
11103 tolerationSeconds:
11104 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.
11105 format: int64
11106 type: integer
11107 value:
11108 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.
11109 type: string
11110 type: object
11111 type: array
11112 topologySpreadConstraints:
11113 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
11114 items:
11115 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
11116 properties:
11117 labelSelector:
11118 description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
11119 properties:
11120 matchExpressions:
11121 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
11122 items:
11123 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
11124 properties:
11125 key:
11126 description: key is the label key that the selector applies to.
11127 type: string
11128 operator:
11129 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
11130 type: string
11131 values:
11132 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.
11133 items:
11134 type: string
11135 type: array
11136 required:
11137 - key
11138 - operator
11139 type: object
11140 type: array
11141 matchLabels:
11142 additionalProperties:
11143 type: string
11144 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.
11145 type: object
11146 type: object
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000011147 matchLabelKeys:
11148 description: MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.
11149 items:
11150 type: string
11151 type: array
11152 x-kubernetes-list-type: atomic
okozachenko120323147262023-01-28 04:16:42 +110011153 maxSkew:
11154 description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
11155 format: int32
11156 type: integer
11157 minDomains:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000011158 description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
okozachenko120323147262023-01-28 04:16:42 +110011159 format: int32
11160 type: integer
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000011161 nodeAffinityPolicy:
11162 description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
11163 type: string
11164 nodeTaintsPolicy:
11165 description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
11166 type: string
okozachenko120323147262023-01-28 04:16:42 +110011167 topologyKey:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000011168 description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
okozachenko120323147262023-01-28 04:16:42 +110011169 type: string
11170 whenUnsatisfiable:
11171 description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
11172 type: string
11173 required:
11174 - maxSkew
11175 - topologyKey
11176 - whenUnsatisfiable
11177 type: object
11178 type: array
11179 type: object
11180 x-kubernetes-preserve-unknown-fields: true
11181 priorityClassName:
11182 description: PriorityClassName sets the priority class on the pods
11183 type: string
11184 resources:
11185 description: Resources set resource requests and limits
11186 nullable: true
11187 properties:
11188 limits:
11189 additionalProperties:
11190 anyOf:
11191 - type: integer
11192 - type: string
11193 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
11194 x-kubernetes-int-or-string: true
11195 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
11196 type: object
11197 requests:
11198 additionalProperties:
11199 anyOf:
11200 - type: integer
11201 - type: string
11202 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
11203 x-kubernetes-int-or-string: true
11204 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
11205 type: object
11206 type: object
11207 x-kubernetes-preserve-unknown-fields: true
11208 required:
11209 - active
11210 type: object
11211 required:
11212 - server
11213 type: object
11214 status:
11215 description: Status represents the status of an object
11216 properties:
11217 conditions:
11218 items:
11219 description: Condition represents a status condition on any Rook-Ceph Custom Resource.
11220 properties:
11221 lastHeartbeatTime:
11222 format: date-time
11223 type: string
11224 lastTransitionTime:
11225 format: date-time
11226 type: string
11227 message:
11228 type: string
11229 reason:
11230 description: ConditionReason is a reason for a condition
11231 type: string
11232 status:
11233 type: string
11234 type:
11235 description: ConditionType represent a resource's status
11236 type: string
11237 type: object
11238 type: array
11239 observedGeneration:
11240 description: ObservedGeneration is the latest generation observed by the controller.
11241 format: int64
11242 type: integer
11243 phase:
11244 type: string
11245 type: object
11246 x-kubernetes-preserve-unknown-fields: true
11247 required:
11248 - metadata
11249 - spec
11250 type: object
11251 served: true
11252 storage: true
11253 subresources:
11254 status: {}
11255status:
11256 acceptedNames:
11257 kind: ""
11258 plural: ""
11259 conditions: []
11260 storedVersions: []
11261---
11262apiVersion: apiextensions.k8s.io/v1
11263kind: CustomResourceDefinition
11264metadata:
11265 annotations:
11266 controller-gen.kubebuilder.io/version: v0.6.2
11267 helm.sh/resource-policy: keep
11268 creationTimestamp: null
11269 name: cephobjectrealms.ceph.rook.io
11270spec:
11271 group: ceph.rook.io
11272 names:
11273 kind: CephObjectRealm
11274 listKind: CephObjectRealmList
11275 plural: cephobjectrealms
11276 singular: cephobjectrealm
11277 scope: Namespaced
11278 versions:
11279 - name: v1
11280 schema:
11281 openAPIV3Schema:
11282 description: CephObjectRealm represents a Ceph Object Store Gateway Realm
11283 properties:
11284 apiVersion:
11285 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'
11286 type: string
11287 kind:
11288 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'
11289 type: string
11290 metadata:
11291 type: object
11292 spec:
11293 description: ObjectRealmSpec represent the spec of an ObjectRealm
11294 nullable: true
11295 properties:
11296 pull:
11297 description: PullSpec represents the pulling specification of a Ceph Object Storage Gateway Realm
11298 properties:
11299 endpoint:
11300 pattern: ^https*://
11301 type: string
11302 type: object
11303 type: object
11304 status:
11305 description: Status represents the status of an object
11306 properties:
11307 conditions:
11308 items:
11309 description: Condition represents a status condition on any Rook-Ceph Custom Resource.
11310 properties:
11311 lastHeartbeatTime:
11312 format: date-time
11313 type: string
11314 lastTransitionTime:
11315 format: date-time
11316 type: string
11317 message:
11318 type: string
11319 reason:
11320 description: ConditionReason is a reason for a condition
11321 type: string
11322 status:
11323 type: string
11324 type:
11325 description: ConditionType represent a resource's status
11326 type: string
11327 type: object
11328 type: array
11329 observedGeneration:
11330 description: ObservedGeneration is the latest generation observed by the controller.
11331 format: int64
11332 type: integer
11333 phase:
11334 type: string
11335 type: object
11336 x-kubernetes-preserve-unknown-fields: true
11337 required:
11338 - metadata
11339 type: object
11340 served: true
11341 storage: true
11342 subresources:
11343 status: {}
11344status:
11345 acceptedNames:
11346 kind: ""
11347 plural: ""
11348 conditions: []
11349 storedVersions: []
11350---
11351apiVersion: apiextensions.k8s.io/v1
11352kind: CustomResourceDefinition
11353metadata:
11354 annotations:
11355 controller-gen.kubebuilder.io/version: v0.6.2
11356 helm.sh/resource-policy: keep
11357 creationTimestamp: null
11358 name: cephobjectstores.ceph.rook.io
11359spec:
11360 group: ceph.rook.io
11361 names:
11362 kind: CephObjectStore
11363 listKind: CephObjectStoreList
11364 plural: cephobjectstores
11365 singular: cephobjectstore
11366 scope: Namespaced
11367 versions:
11368 - additionalPrinterColumns:
11369 - jsonPath: .status.phase
11370 name: Phase
11371 type: string
11372 name: v1
11373 schema:
11374 openAPIV3Schema:
11375 description: CephObjectStore represents a Ceph Object Store Gateway
11376 properties:
11377 apiVersion:
11378 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'
11379 type: string
11380 kind:
11381 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'
11382 type: string
11383 metadata:
11384 type: object
11385 spec:
11386 description: ObjectStoreSpec represent the spec of a pool
11387 properties:
11388 dataPool:
11389 description: The data pool settings
11390 nullable: true
11391 properties:
11392 compressionMode:
11393 description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
11394 enum:
11395 - none
11396 - passive
11397 - aggressive
11398 - force
11399 - ""
11400 nullable: true
11401 type: string
11402 crushRoot:
11403 description: The root of the crush hierarchy utilized by the pool
11404 nullable: true
11405 type: string
11406 deviceClass:
11407 description: The device class the OSD should set to for use in the pool
11408 nullable: true
11409 type: string
11410 enableRBDStats:
11411 description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
11412 type: boolean
11413 erasureCoded:
11414 description: The erasure code settings
11415 properties:
11416 algorithm:
11417 description: The algorithm for erasure coding
11418 type: string
11419 codingChunks:
11420 description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
11421 minimum: 0
11422 type: integer
11423 dataChunks:
11424 description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
11425 minimum: 0
11426 type: integer
11427 required:
11428 - codingChunks
11429 - dataChunks
11430 type: object
11431 failureDomain:
11432 description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
11433 type: string
11434 mirroring:
11435 description: The mirroring settings
11436 properties:
11437 enabled:
11438 description: Enabled whether this pool is mirrored or not
11439 type: boolean
11440 mode:
11441 description: 'Mode is the mirroring mode: either pool or image'
11442 type: string
11443 peers:
11444 description: Peers represents the peers spec
11445 nullable: true
11446 properties:
11447 secretNames:
11448 description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
11449 items:
11450 type: string
11451 type: array
11452 type: object
11453 snapshotSchedules:
11454 description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
11455 items:
11456 description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
11457 properties:
11458 interval:
11459 description: Interval represent the periodicity of the snapshot.
11460 type: string
11461 path:
11462 description: Path is the path to snapshot, only valid for CephFS
11463 type: string
11464 startTime:
11465 description: StartTime indicates when to start the snapshot
11466 type: string
11467 type: object
11468 type: array
11469 type: object
11470 parameters:
11471 additionalProperties:
11472 type: string
11473 description: Parameters is a list of properties to enable on a given pool
11474 nullable: true
11475 type: object
11476 x-kubernetes-preserve-unknown-fields: true
11477 quotas:
11478 description: The quota settings
11479 nullable: true
11480 properties:
11481 maxBytes:
11482 description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
11483 format: int64
11484 type: integer
11485 maxObjects:
11486 description: MaxObjects represents the quota in objects
11487 format: int64
11488 type: integer
11489 maxSize:
11490 description: MaxSize represents the quota in bytes as a string
11491 pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
11492 type: string
11493 type: object
11494 replicated:
11495 description: The replication settings
11496 properties:
11497 hybridStorage:
11498 description: HybridStorage represents hybrid storage tier settings
11499 nullable: true
11500 properties:
11501 primaryDeviceClass:
11502 description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
11503 minLength: 1
11504 type: string
11505 secondaryDeviceClass:
11506 description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
11507 minLength: 1
11508 type: string
11509 required:
11510 - primaryDeviceClass
11511 - secondaryDeviceClass
11512 type: object
11513 replicasPerFailureDomain:
11514 description: ReplicasPerFailureDomain the number of replica in the specified failure domain
11515 minimum: 1
11516 type: integer
11517 requireSafeReplicaSize:
11518 description: RequireSafeReplicaSize if false allows you to set replica 1
11519 type: boolean
11520 size:
11521 description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
11522 minimum: 0
11523 type: integer
11524 subFailureDomain:
11525 description: SubFailureDomain the name of the sub-failure domain
11526 type: string
11527 targetSizeRatio:
11528 description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
11529 type: number
11530 required:
11531 - size
11532 type: object
11533 statusCheck:
11534 description: The mirroring statusCheck
11535 properties:
11536 mirror:
11537 description: HealthCheckSpec represents the health check of an object store bucket
11538 nullable: true
11539 properties:
11540 disabled:
11541 type: boolean
11542 interval:
11543 description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
11544 type: string
11545 timeout:
11546 type: string
11547 type: object
11548 type: object
11549 x-kubernetes-preserve-unknown-fields: true
11550 type: object
11551 gateway:
11552 description: The rgw pod info
11553 nullable: true
11554 properties:
11555 annotations:
11556 additionalProperties:
11557 type: string
11558 description: The annotations-related configuration to add/set on each Pod related object.
11559 nullable: true
11560 type: object
11561 x-kubernetes-preserve-unknown-fields: true
11562 caBundleRef:
11563 description: The name of the secret that stores custom ca-bundle with root and intermediate certificates.
11564 nullable: true
11565 type: string
11566 externalRgwEndpoints:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000011567 description: ExternalRgwEndpoints points to external RGW endpoint(s). Multiple endpoints can be given, but for stability of ObjectBucketClaims, we highly recommend that users give only a single external RGW endpoint that is a load balancer that sends requests to the multiple RGWs.
okozachenko120323147262023-01-28 04:16:42 +110011568 items:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000011569 description: EndpointAddress is a tuple that describes a single IP address or host name. This is a subset of Kubernetes's v1.EndpointAddress.
okozachenko120323147262023-01-28 04:16:42 +110011570 properties:
11571 hostname:
11572 description: The Hostname of this endpoint
11573 type: string
11574 ip:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000011575 description: The IP of this endpoint.
okozachenko120323147262023-01-28 04:16:42 +110011576 type: string
okozachenko120323147262023-01-28 04:16:42 +110011577 type: object
11578 nullable: true
11579 type: array
11580 hostNetwork:
11581 description: Whether host networking is enabled for the rgw daemon. If not set, the network settings from the cluster CR will be applied.
11582 nullable: true
11583 type: boolean
11584 x-kubernetes-preserve-unknown-fields: true
11585 instances:
11586 description: The number of pods in the rgw replicaset.
11587 format: int32
11588 nullable: true
11589 type: integer
11590 labels:
11591 additionalProperties:
11592 type: string
11593 description: The labels-related configuration to add/set on each Pod related object.
11594 nullable: true
11595 type: object
11596 x-kubernetes-preserve-unknown-fields: true
11597 placement:
11598 description: The affinity to place the rgw pods (default is to place on any available node)
11599 nullable: true
11600 properties:
11601 nodeAffinity:
11602 description: NodeAffinity is a group of node affinity scheduling rules
11603 properties:
11604 preferredDuringSchedulingIgnoredDuringExecution:
11605 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.
11606 items:
11607 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).
11608 properties:
11609 preference:
11610 description: A node selector term, associated with the corresponding weight.
11611 properties:
11612 matchExpressions:
11613 description: A list of node selector requirements by node's labels.
11614 items:
11615 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
11616 properties:
11617 key:
11618 description: The label key that the selector applies to.
11619 type: string
11620 operator:
11621 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
11622 type: string
11623 values:
11624 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.
11625 items:
11626 type: string
11627 type: array
11628 required:
11629 - key
11630 - operator
11631 type: object
11632 type: array
11633 matchFields:
11634 description: A list of node selector requirements by node's fields.
11635 items:
11636 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
11637 properties:
11638 key:
11639 description: The label key that the selector applies to.
11640 type: string
11641 operator:
11642 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
11643 type: string
11644 values:
11645 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.
11646 items:
11647 type: string
11648 type: array
11649 required:
11650 - key
11651 - operator
11652 type: object
11653 type: array
11654 type: object
11655 weight:
11656 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
11657 format: int32
11658 type: integer
11659 required:
11660 - preference
11661 - weight
11662 type: object
11663 type: array
11664 requiredDuringSchedulingIgnoredDuringExecution:
11665 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.
11666 properties:
11667 nodeSelectorTerms:
11668 description: Required. A list of node selector terms. The terms are ORed.
11669 items:
11670 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.
11671 properties:
11672 matchExpressions:
11673 description: A list of node selector requirements by node's labels.
11674 items:
11675 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
11676 properties:
11677 key:
11678 description: The label key that the selector applies to.
11679 type: string
11680 operator:
11681 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
11682 type: string
11683 values:
11684 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.
11685 items:
11686 type: string
11687 type: array
11688 required:
11689 - key
11690 - operator
11691 type: object
11692 type: array
11693 matchFields:
11694 description: A list of node selector requirements by node's fields.
11695 items:
11696 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
11697 properties:
11698 key:
11699 description: The label key that the selector applies to.
11700 type: string
11701 operator:
11702 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
11703 type: string
11704 values:
11705 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.
11706 items:
11707 type: string
11708 type: array
11709 required:
11710 - key
11711 - operator
11712 type: object
11713 type: array
11714 type: object
11715 type: array
11716 required:
11717 - nodeSelectorTerms
11718 type: object
11719 type: object
11720 podAffinity:
11721 description: PodAffinity is a group of inter pod affinity scheduling rules
11722 properties:
11723 preferredDuringSchedulingIgnoredDuringExecution:
11724 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.
11725 items:
11726 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
11727 properties:
11728 podAffinityTerm:
11729 description: Required. A pod affinity term, associated with the corresponding weight.
11730 properties:
11731 labelSelector:
11732 description: A label query over a set of resources, in this case pods.
11733 properties:
11734 matchExpressions:
11735 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
11736 items:
11737 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
11738 properties:
11739 key:
11740 description: key is the label key that the selector applies to.
11741 type: string
11742 operator:
11743 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
11744 type: string
11745 values:
11746 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.
11747 items:
11748 type: string
11749 type: array
11750 required:
11751 - key
11752 - operator
11753 type: object
11754 type: array
11755 matchLabels:
11756 additionalProperties:
11757 type: string
11758 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.
11759 type: object
11760 type: object
11761 namespaceSelector:
11762 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.
11763 properties:
11764 matchExpressions:
11765 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
11766 items:
11767 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
11768 properties:
11769 key:
11770 description: key is the label key that the selector applies to.
11771 type: string
11772 operator:
11773 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
11774 type: string
11775 values:
11776 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.
11777 items:
11778 type: string
11779 type: array
11780 required:
11781 - key
11782 - operator
11783 type: object
11784 type: array
11785 matchLabels:
11786 additionalProperties:
11787 type: string
11788 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.
11789 type: object
11790 type: object
11791 namespaces:
11792 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".
11793 items:
11794 type: string
11795 type: array
11796 topologyKey:
11797 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.
11798 type: string
11799 required:
11800 - topologyKey
11801 type: object
11802 weight:
11803 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
11804 format: int32
11805 type: integer
11806 required:
11807 - podAffinityTerm
11808 - weight
11809 type: object
11810 type: array
11811 requiredDuringSchedulingIgnoredDuringExecution:
11812 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.
11813 items:
11814 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
11815 properties:
11816 labelSelector:
11817 description: A label query over a set of resources, in this case pods.
11818 properties:
11819 matchExpressions:
11820 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
11821 items:
11822 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
11823 properties:
11824 key:
11825 description: key is the label key that the selector applies to.
11826 type: string
11827 operator:
11828 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
11829 type: string
11830 values:
11831 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.
11832 items:
11833 type: string
11834 type: array
11835 required:
11836 - key
11837 - operator
11838 type: object
11839 type: array
11840 matchLabels:
11841 additionalProperties:
11842 type: string
11843 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.
11844 type: object
11845 type: object
11846 namespaceSelector:
11847 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.
11848 properties:
11849 matchExpressions:
11850 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
11851 items:
11852 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
11853 properties:
11854 key:
11855 description: key is the label key that the selector applies to.
11856 type: string
11857 operator:
11858 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
11859 type: string
11860 values:
11861 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.
11862 items:
11863 type: string
11864 type: array
11865 required:
11866 - key
11867 - operator
11868 type: object
11869 type: array
11870 matchLabels:
11871 additionalProperties:
11872 type: string
11873 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.
11874 type: object
11875 type: object
11876 namespaces:
11877 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".
11878 items:
11879 type: string
11880 type: array
11881 topologyKey:
11882 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.
11883 type: string
11884 required:
11885 - topologyKey
11886 type: object
11887 type: array
11888 type: object
11889 podAntiAffinity:
11890 description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
11891 properties:
11892 preferredDuringSchedulingIgnoredDuringExecution:
11893 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.
11894 items:
11895 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
11896 properties:
11897 podAffinityTerm:
11898 description: Required. A pod affinity term, associated with the corresponding weight.
11899 properties:
11900 labelSelector:
11901 description: A label query over a set of resources, in this case pods.
11902 properties:
11903 matchExpressions:
11904 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
11905 items:
11906 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
11907 properties:
11908 key:
11909 description: key is the label key that the selector applies to.
11910 type: string
11911 operator:
11912 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
11913 type: string
11914 values:
11915 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.
11916 items:
11917 type: string
11918 type: array
11919 required:
11920 - key
11921 - operator
11922 type: object
11923 type: array
11924 matchLabels:
11925 additionalProperties:
11926 type: string
11927 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.
11928 type: object
11929 type: object
11930 namespaceSelector:
11931 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.
11932 properties:
11933 matchExpressions:
11934 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
11935 items:
11936 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
11937 properties:
11938 key:
11939 description: key is the label key that the selector applies to.
11940 type: string
11941 operator:
11942 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
11943 type: string
11944 values:
11945 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.
11946 items:
11947 type: string
11948 type: array
11949 required:
11950 - key
11951 - operator
11952 type: object
11953 type: array
11954 matchLabels:
11955 additionalProperties:
11956 type: string
11957 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.
11958 type: object
11959 type: object
11960 namespaces:
11961 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".
11962 items:
11963 type: string
11964 type: array
11965 topologyKey:
11966 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.
11967 type: string
11968 required:
11969 - topologyKey
11970 type: object
11971 weight:
11972 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
11973 format: int32
11974 type: integer
11975 required:
11976 - podAffinityTerm
11977 - weight
11978 type: object
11979 type: array
11980 requiredDuringSchedulingIgnoredDuringExecution:
11981 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.
11982 items:
11983 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
11984 properties:
11985 labelSelector:
11986 description: A label query over a set of resources, in this case pods.
11987 properties:
11988 matchExpressions:
11989 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
11990 items:
11991 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
11992 properties:
11993 key:
11994 description: key is the label key that the selector applies to.
11995 type: string
11996 operator:
11997 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
11998 type: string
11999 values:
12000 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.
12001 items:
12002 type: string
12003 type: array
12004 required:
12005 - key
12006 - operator
12007 type: object
12008 type: array
12009 matchLabels:
12010 additionalProperties:
12011 type: string
12012 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.
12013 type: object
12014 type: object
12015 namespaceSelector:
12016 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.
12017 properties:
12018 matchExpressions:
12019 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
12020 items:
12021 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
12022 properties:
12023 key:
12024 description: key is the label key that the selector applies to.
12025 type: string
12026 operator:
12027 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
12028 type: string
12029 values:
12030 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.
12031 items:
12032 type: string
12033 type: array
12034 required:
12035 - key
12036 - operator
12037 type: object
12038 type: array
12039 matchLabels:
12040 additionalProperties:
12041 type: string
12042 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.
12043 type: object
12044 type: object
12045 namespaces:
12046 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".
12047 items:
12048 type: string
12049 type: array
12050 topologyKey:
12051 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.
12052 type: string
12053 required:
12054 - topologyKey
12055 type: object
12056 type: array
12057 type: object
12058 tolerations:
12059 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
12060 items:
12061 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
12062 properties:
12063 effect:
12064 description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
12065 type: string
12066 key:
12067 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.
12068 type: string
12069 operator:
12070 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.
12071 type: string
12072 tolerationSeconds:
12073 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.
12074 format: int64
12075 type: integer
12076 value:
12077 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.
12078 type: string
12079 type: object
12080 type: array
12081 topologySpreadConstraints:
12082 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
12083 items:
12084 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
12085 properties:
12086 labelSelector:
12087 description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
12088 properties:
12089 matchExpressions:
12090 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
12091 items:
12092 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
12093 properties:
12094 key:
12095 description: key is the label key that the selector applies to.
12096 type: string
12097 operator:
12098 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
12099 type: string
12100 values:
12101 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.
12102 items:
12103 type: string
12104 type: array
12105 required:
12106 - key
12107 - operator
12108 type: object
12109 type: array
12110 matchLabels:
12111 additionalProperties:
12112 type: string
12113 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.
12114 type: object
12115 type: object
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000012116 matchLabelKeys:
12117 description: MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.
12118 items:
12119 type: string
12120 type: array
12121 x-kubernetes-list-type: atomic
okozachenko120323147262023-01-28 04:16:42 +110012122 maxSkew:
12123 description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
12124 format: int32
12125 type: integer
12126 minDomains:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000012127 description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
okozachenko120323147262023-01-28 04:16:42 +110012128 format: int32
12129 type: integer
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000012130 nodeAffinityPolicy:
12131 description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
12132 type: string
12133 nodeTaintsPolicy:
12134 description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
12135 type: string
okozachenko120323147262023-01-28 04:16:42 +110012136 topologyKey:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000012137 description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
okozachenko120323147262023-01-28 04:16:42 +110012138 type: string
12139 whenUnsatisfiable:
12140 description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
12141 type: string
12142 required:
12143 - maxSkew
12144 - topologyKey
12145 - whenUnsatisfiable
12146 type: object
12147 type: array
12148 type: object
12149 x-kubernetes-preserve-unknown-fields: true
12150 port:
12151 description: The port the rgw service will be listening on (http)
12152 format: int32
12153 type: integer
12154 priorityClassName:
12155 description: PriorityClassName sets priority classes on the rgw pods
12156 type: string
12157 resources:
12158 description: The resource requirements for the rgw pods
12159 nullable: true
12160 properties:
12161 limits:
12162 additionalProperties:
12163 anyOf:
12164 - type: integer
12165 - type: string
12166 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
12167 x-kubernetes-int-or-string: true
12168 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
12169 type: object
12170 requests:
12171 additionalProperties:
12172 anyOf:
12173 - type: integer
12174 - type: string
12175 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
12176 x-kubernetes-int-or-string: true
12177 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
12178 type: object
12179 type: object
12180 x-kubernetes-preserve-unknown-fields: true
12181 securePort:
12182 description: The port the rgw service will be listening on (https)
12183 format: int32
12184 maximum: 65535
12185 minimum: 0
12186 nullable: true
12187 type: integer
12188 service:
12189 description: The configuration related to add/set on each rgw service.
12190 nullable: true
12191 properties:
12192 annotations:
12193 additionalProperties:
12194 type: string
12195 description: The annotations-related configuration to add/set on each rgw service. nullable optional
12196 type: object
12197 type: object
12198 sslCertificateRef:
12199 description: The name of the secret that stores the ssl certificate for secure rgw connections
12200 nullable: true
12201 type: string
12202 type: object
12203 healthCheck:
12204 description: The rgw Bucket healthchecks and liveness probe
12205 nullable: true
12206 properties:
12207 bucket:
12208 description: HealthCheckSpec represents the health check of an object store bucket
12209 properties:
12210 disabled:
12211 type: boolean
12212 interval:
12213 description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
12214 type: string
12215 timeout:
12216 type: string
12217 type: object
12218 livenessProbe:
12219 description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
12220 properties:
12221 disabled:
12222 description: Disabled determines whether probe is disable or not
12223 type: boolean
12224 probe:
12225 description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
12226 properties:
12227 exec:
12228 description: Exec specifies the action to take.
12229 properties:
12230 command:
12231 description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
12232 items:
12233 type: string
12234 type: array
12235 type: object
12236 failureThreshold:
12237 description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
12238 format: int32
12239 type: integer
12240 grpc:
12241 description: GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.
12242 properties:
12243 port:
12244 description: Port number of the gRPC service. Number must be in the range 1 to 65535.
12245 format: int32
12246 type: integer
12247 service:
12248 description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
12249 type: string
12250 required:
12251 - port
12252 type: object
12253 httpGet:
12254 description: HTTPGet specifies the http request to perform.
12255 properties:
12256 host:
12257 description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
12258 type: string
12259 httpHeaders:
12260 description: Custom headers to set in the request. HTTP allows repeated headers.
12261 items:
12262 description: HTTPHeader describes a custom header to be used in HTTP probes
12263 properties:
12264 name:
12265 description: The header field name
12266 type: string
12267 value:
12268 description: The header field value
12269 type: string
12270 required:
12271 - name
12272 - value
12273 type: object
12274 type: array
12275 path:
12276 description: Path to access on the HTTP server.
12277 type: string
12278 port:
12279 anyOf:
12280 - type: integer
12281 - type: string
12282 description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
12283 x-kubernetes-int-or-string: true
12284 scheme:
12285 description: Scheme to use for connecting to the host. Defaults to HTTP.
12286 type: string
12287 required:
12288 - port
12289 type: object
12290 initialDelaySeconds:
12291 description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
12292 format: int32
12293 type: integer
12294 periodSeconds:
12295 description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
12296 format: int32
12297 type: integer
12298 successThreshold:
12299 description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
12300 format: int32
12301 type: integer
12302 tcpSocket:
12303 description: TCPSocket specifies an action involving a TCP port.
12304 properties:
12305 host:
12306 description: 'Optional: Host name to connect to, defaults to the pod IP.'
12307 type: string
12308 port:
12309 anyOf:
12310 - type: integer
12311 - type: string
12312 description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
12313 x-kubernetes-int-or-string: true
12314 required:
12315 - port
12316 type: object
12317 terminationGracePeriodSeconds:
12318 description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
12319 format: int64
12320 type: integer
12321 timeoutSeconds:
12322 description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
12323 format: int32
12324 type: integer
12325 type: object
12326 type: object
12327 readinessProbe:
12328 description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
12329 properties:
12330 disabled:
12331 description: Disabled determines whether probe is disable or not
12332 type: boolean
12333 probe:
12334 description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
12335 properties:
12336 exec:
12337 description: Exec specifies the action to take.
12338 properties:
12339 command:
12340 description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
12341 items:
12342 type: string
12343 type: array
12344 type: object
12345 failureThreshold:
12346 description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
12347 format: int32
12348 type: integer
12349 grpc:
12350 description: GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.
12351 properties:
12352 port:
12353 description: Port number of the gRPC service. Number must be in the range 1 to 65535.
12354 format: int32
12355 type: integer
12356 service:
12357 description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
12358 type: string
12359 required:
12360 - port
12361 type: object
12362 httpGet:
12363 description: HTTPGet specifies the http request to perform.
12364 properties:
12365 host:
12366 description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
12367 type: string
12368 httpHeaders:
12369 description: Custom headers to set in the request. HTTP allows repeated headers.
12370 items:
12371 description: HTTPHeader describes a custom header to be used in HTTP probes
12372 properties:
12373 name:
12374 description: The header field name
12375 type: string
12376 value:
12377 description: The header field value
12378 type: string
12379 required:
12380 - name
12381 - value
12382 type: object
12383 type: array
12384 path:
12385 description: Path to access on the HTTP server.
12386 type: string
12387 port:
12388 anyOf:
12389 - type: integer
12390 - type: string
12391 description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
12392 x-kubernetes-int-or-string: true
12393 scheme:
12394 description: Scheme to use for connecting to the host. Defaults to HTTP.
12395 type: string
12396 required:
12397 - port
12398 type: object
12399 initialDelaySeconds:
12400 description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
12401 format: int32
12402 type: integer
12403 periodSeconds:
12404 description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
12405 format: int32
12406 type: integer
12407 successThreshold:
12408 description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
12409 format: int32
12410 type: integer
12411 tcpSocket:
12412 description: TCPSocket specifies an action involving a TCP port.
12413 properties:
12414 host:
12415 description: 'Optional: Host name to connect to, defaults to the pod IP.'
12416 type: string
12417 port:
12418 anyOf:
12419 - type: integer
12420 - type: string
12421 description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
12422 x-kubernetes-int-or-string: true
12423 required:
12424 - port
12425 type: object
12426 terminationGracePeriodSeconds:
12427 description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
12428 format: int64
12429 type: integer
12430 timeoutSeconds:
12431 description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
12432 format: int32
12433 type: integer
12434 type: object
12435 type: object
12436 startupProbe:
12437 description: ProbeSpec is a wrapper around Probe so it can be enabled or disabled for a Ceph daemon
12438 properties:
12439 disabled:
12440 description: Disabled determines whether probe is disable or not
12441 type: boolean
12442 probe:
12443 description: Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.
12444 properties:
12445 exec:
12446 description: Exec specifies the action to take.
12447 properties:
12448 command:
12449 description: Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
12450 items:
12451 type: string
12452 type: array
12453 type: object
12454 failureThreshold:
12455 description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
12456 format: int32
12457 type: integer
12458 grpc:
12459 description: GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.
12460 properties:
12461 port:
12462 description: Port number of the gRPC service. Number must be in the range 1 to 65535.
12463 format: int32
12464 type: integer
12465 service:
12466 description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). \n If this is not specified, the default behavior is defined by gRPC."
12467 type: string
12468 required:
12469 - port
12470 type: object
12471 httpGet:
12472 description: HTTPGet specifies the http request to perform.
12473 properties:
12474 host:
12475 description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
12476 type: string
12477 httpHeaders:
12478 description: Custom headers to set in the request. HTTP allows repeated headers.
12479 items:
12480 description: HTTPHeader describes a custom header to be used in HTTP probes
12481 properties:
12482 name:
12483 description: The header field name
12484 type: string
12485 value:
12486 description: The header field value
12487 type: string
12488 required:
12489 - name
12490 - value
12491 type: object
12492 type: array
12493 path:
12494 description: Path to access on the HTTP server.
12495 type: string
12496 port:
12497 anyOf:
12498 - type: integer
12499 - type: string
12500 description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
12501 x-kubernetes-int-or-string: true
12502 scheme:
12503 description: Scheme to use for connecting to the host. Defaults to HTTP.
12504 type: string
12505 required:
12506 - port
12507 type: object
12508 initialDelaySeconds:
12509 description: 'Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
12510 format: int32
12511 type: integer
12512 periodSeconds:
12513 description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
12514 format: int32
12515 type: integer
12516 successThreshold:
12517 description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
12518 format: int32
12519 type: integer
12520 tcpSocket:
12521 description: TCPSocket specifies an action involving a TCP port.
12522 properties:
12523 host:
12524 description: 'Optional: Host name to connect to, defaults to the pod IP.'
12525 type: string
12526 port:
12527 anyOf:
12528 - type: integer
12529 - type: string
12530 description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
12531 x-kubernetes-int-or-string: true
12532 required:
12533 - port
12534 type: object
12535 terminationGracePeriodSeconds:
12536 description: Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
12537 format: int64
12538 type: integer
12539 timeoutSeconds:
12540 description: 'Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
12541 format: int32
12542 type: integer
12543 type: object
12544 type: object
12545 type: object
12546 metadataPool:
12547 description: The metadata pool settings
12548 nullable: true
12549 properties:
12550 compressionMode:
12551 description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
12552 enum:
12553 - none
12554 - passive
12555 - aggressive
12556 - force
12557 - ""
12558 nullable: true
12559 type: string
12560 crushRoot:
12561 description: The root of the crush hierarchy utilized by the pool
12562 nullable: true
12563 type: string
12564 deviceClass:
12565 description: The device class the OSD should set to for use in the pool
12566 nullable: true
12567 type: string
12568 enableRBDStats:
12569 description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
12570 type: boolean
12571 erasureCoded:
12572 description: The erasure code settings
12573 properties:
12574 algorithm:
12575 description: The algorithm for erasure coding
12576 type: string
12577 codingChunks:
12578 description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
12579 minimum: 0
12580 type: integer
12581 dataChunks:
12582 description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
12583 minimum: 0
12584 type: integer
12585 required:
12586 - codingChunks
12587 - dataChunks
12588 type: object
12589 failureDomain:
12590 description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
12591 type: string
12592 mirroring:
12593 description: The mirroring settings
12594 properties:
12595 enabled:
12596 description: Enabled whether this pool is mirrored or not
12597 type: boolean
12598 mode:
12599 description: 'Mode is the mirroring mode: either pool or image'
12600 type: string
12601 peers:
12602 description: Peers represents the peers spec
12603 nullable: true
12604 properties:
12605 secretNames:
12606 description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
12607 items:
12608 type: string
12609 type: array
12610 type: object
12611 snapshotSchedules:
12612 description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
12613 items:
12614 description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
12615 properties:
12616 interval:
12617 description: Interval represent the periodicity of the snapshot.
12618 type: string
12619 path:
12620 description: Path is the path to snapshot, only valid for CephFS
12621 type: string
12622 startTime:
12623 description: StartTime indicates when to start the snapshot
12624 type: string
12625 type: object
12626 type: array
12627 type: object
12628 parameters:
12629 additionalProperties:
12630 type: string
12631 description: Parameters is a list of properties to enable on a given pool
12632 nullable: true
12633 type: object
12634 x-kubernetes-preserve-unknown-fields: true
12635 quotas:
12636 description: The quota settings
12637 nullable: true
12638 properties:
12639 maxBytes:
12640 description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
12641 format: int64
12642 type: integer
12643 maxObjects:
12644 description: MaxObjects represents the quota in objects
12645 format: int64
12646 type: integer
12647 maxSize:
12648 description: MaxSize represents the quota in bytes as a string
12649 pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
12650 type: string
12651 type: object
12652 replicated:
12653 description: The replication settings
12654 properties:
12655 hybridStorage:
12656 description: HybridStorage represents hybrid storage tier settings
12657 nullable: true
12658 properties:
12659 primaryDeviceClass:
12660 description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
12661 minLength: 1
12662 type: string
12663 secondaryDeviceClass:
12664 description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
12665 minLength: 1
12666 type: string
12667 required:
12668 - primaryDeviceClass
12669 - secondaryDeviceClass
12670 type: object
12671 replicasPerFailureDomain:
12672 description: ReplicasPerFailureDomain the number of replica in the specified failure domain
12673 minimum: 1
12674 type: integer
12675 requireSafeReplicaSize:
12676 description: RequireSafeReplicaSize if false allows you to set replica 1
12677 type: boolean
12678 size:
12679 description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
12680 minimum: 0
12681 type: integer
12682 subFailureDomain:
12683 description: SubFailureDomain the name of the sub-failure domain
12684 type: string
12685 targetSizeRatio:
12686 description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
12687 type: number
12688 required:
12689 - size
12690 type: object
12691 statusCheck:
12692 description: The mirroring statusCheck
12693 properties:
12694 mirror:
12695 description: HealthCheckSpec represents the health check of an object store bucket
12696 nullable: true
12697 properties:
12698 disabled:
12699 type: boolean
12700 interval:
12701 description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
12702 type: string
12703 timeout:
12704 type: string
12705 type: object
12706 type: object
12707 x-kubernetes-preserve-unknown-fields: true
12708 type: object
12709 preservePoolsOnDelete:
12710 description: Preserve pools on object store deletion
12711 type: boolean
12712 security:
12713 description: Security represents security settings
12714 nullable: true
12715 properties:
12716 kms:
12717 description: KeyManagementService is the main Key Management option
12718 nullable: true
12719 properties:
12720 connectionDetails:
12721 additionalProperties:
12722 type: string
12723 description: ConnectionDetails contains the KMS connection details (address, port etc)
12724 nullable: true
12725 type: object
12726 x-kubernetes-preserve-unknown-fields: true
12727 tokenSecretName:
12728 description: TokenSecretName is the kubernetes secret containing the KMS token
12729 type: string
12730 type: object
12731 s3:
12732 description: The settings for supporting AWS-SSE:S3 with RGW
12733 nullable: true
12734 properties:
12735 connectionDetails:
12736 additionalProperties:
12737 type: string
12738 description: ConnectionDetails contains the KMS connection details (address, port etc)
12739 nullable: true
12740 type: object
12741 x-kubernetes-preserve-unknown-fields: true
12742 tokenSecretName:
12743 description: TokenSecretName is the kubernetes secret containing the KMS token
12744 type: string
12745 type: object
12746 type: object
12747 zone:
12748 description: The multisite info
12749 nullable: true
12750 properties:
12751 name:
12752 description: RGW Zone the Object Store is in
12753 type: string
12754 required:
12755 - name
12756 type: object
12757 type: object
12758 status:
12759 description: ObjectStoreStatus represents the status of a Ceph Object Store resource
12760 properties:
12761 bucketStatus:
12762 description: BucketStatus represents the status of a bucket
12763 properties:
12764 details:
12765 type: string
12766 health:
12767 description: ConditionType represent a resource's status
12768 type: string
12769 lastChanged:
12770 type: string
12771 lastChecked:
12772 type: string
12773 type: object
12774 conditions:
12775 items:
12776 description: Condition represents a status condition on any Rook-Ceph Custom Resource.
12777 properties:
12778 lastHeartbeatTime:
12779 format: date-time
12780 type: string
12781 lastTransitionTime:
12782 format: date-time
12783 type: string
12784 message:
12785 type: string
12786 reason:
12787 description: ConditionReason is a reason for a condition
12788 type: string
12789 status:
12790 type: string
12791 type:
12792 description: ConditionType represent a resource's status
12793 type: string
12794 type: object
12795 type: array
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000012796 endpoints:
12797 properties:
12798 insecure:
12799 items:
12800 type: string
12801 nullable: true
12802 type: array
12803 secure:
12804 items:
12805 type: string
12806 nullable: true
12807 type: array
12808 type: object
okozachenko120323147262023-01-28 04:16:42 +110012809 info:
12810 additionalProperties:
12811 type: string
12812 nullable: true
12813 type: object
12814 message:
12815 type: string
12816 observedGeneration:
12817 description: ObservedGeneration is the latest generation observed by the controller.
12818 format: int64
12819 type: integer
12820 phase:
12821 description: ConditionType represent a resource's status
12822 type: string
12823 type: object
12824 x-kubernetes-preserve-unknown-fields: true
12825 required:
12826 - metadata
12827 - spec
12828 type: object
12829 served: true
12830 storage: true
12831 subresources:
12832 status: {}
12833status:
12834 acceptedNames:
12835 kind: ""
12836 plural: ""
12837 conditions: []
12838 storedVersions: []
12839---
12840apiVersion: apiextensions.k8s.io/v1
12841kind: CustomResourceDefinition
12842metadata:
12843 annotations:
12844 controller-gen.kubebuilder.io/version: v0.6.2
12845 helm.sh/resource-policy: keep
12846 creationTimestamp: null
12847 name: cephobjectstoreusers.ceph.rook.io
12848spec:
12849 group: ceph.rook.io
12850 names:
12851 kind: CephObjectStoreUser
12852 listKind: CephObjectStoreUserList
12853 plural: cephobjectstoreusers
12854 shortNames:
12855 - rcou
12856 - objectuser
12857 singular: cephobjectstoreuser
12858 scope: Namespaced
12859 versions:
12860 - additionalPrinterColumns:
12861 - jsonPath: .status.phase
12862 name: Phase
12863 type: string
12864 name: v1
12865 schema:
12866 openAPIV3Schema:
12867 description: CephObjectStoreUser represents a Ceph Object Store Gateway User
12868 properties:
12869 apiVersion:
12870 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'
12871 type: string
12872 kind:
12873 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'
12874 type: string
12875 metadata:
12876 type: object
12877 spec:
12878 description: ObjectStoreUserSpec represent the spec of an Objectstoreuser
12879 properties:
12880 capabilities:
12881 description: Additional admin-level capabilities for the Ceph object store user
12882 nullable: true
12883 properties:
12884 bucket:
12885 description: Admin capabilities to read/write Ceph object store buckets. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
12886 enum:
12887 - '*'
12888 - read
12889 - write
12890 - read, write
12891 type: string
12892 metadata:
12893 description: Admin capabilities to read/write Ceph object store metadata. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
12894 enum:
12895 - '*'
12896 - read
12897 - write
12898 - read, write
12899 type: string
12900 usage:
12901 description: Admin capabilities to read/write Ceph object store usage. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
12902 enum:
12903 - '*'
12904 - read
12905 - write
12906 - read, write
12907 type: string
12908 user:
12909 description: Admin capabilities to read/write Ceph object store users. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
12910 enum:
12911 - '*'
12912 - read
12913 - write
12914 - read, write
12915 type: string
12916 zone:
12917 description: Admin capabilities to read/write Ceph object store zones. Documented in https://docs.ceph.com/en/latest/radosgw/admin/?#add-remove-admin-capabilities
12918 enum:
12919 - '*'
12920 - read
12921 - write
12922 - read, write
12923 type: string
12924 type: object
12925 displayName:
12926 description: The display name for the ceph users
12927 type: string
12928 quotas:
12929 description: ObjectUserQuotaSpec can be used to set quotas for the object store user to limit their usage. See the [Ceph docs](https://docs.ceph.com/en/latest/radosgw/admin/?#quota-management) for more
12930 nullable: true
12931 properties:
12932 maxBuckets:
12933 description: Maximum bucket limit for the ceph user
12934 nullable: true
12935 type: integer
12936 maxObjects:
12937 description: Maximum number of objects across all the user's buckets
12938 format: int64
12939 nullable: true
12940 type: integer
12941 maxSize:
12942 anyOf:
12943 - type: integer
12944 - type: string
12945 description: Maximum size limit of all objects across all the user's buckets See https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity for more info.
12946 nullable: true
12947 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
12948 x-kubernetes-int-or-string: true
12949 type: object
12950 store:
12951 description: The store the user will be created in
12952 type: string
12953 type: object
12954 status:
12955 description: ObjectStoreUserStatus represents the status Ceph Object Store Gateway User
12956 properties:
12957 info:
12958 additionalProperties:
12959 type: string
12960 nullable: true
12961 type: object
12962 observedGeneration:
12963 description: ObservedGeneration is the latest generation observed by the controller.
12964 format: int64
12965 type: integer
12966 phase:
12967 type: string
12968 type: object
12969 x-kubernetes-preserve-unknown-fields: true
12970 required:
12971 - metadata
12972 - spec
12973 type: object
12974 served: true
12975 storage: true
12976 subresources:
12977 status: {}
12978status:
12979 acceptedNames:
12980 kind: ""
12981 plural: ""
12982 conditions: []
12983 storedVersions: []
12984---
12985apiVersion: apiextensions.k8s.io/v1
12986kind: CustomResourceDefinition
12987metadata:
12988 annotations:
12989 controller-gen.kubebuilder.io/version: v0.6.2
12990 helm.sh/resource-policy: keep
12991 creationTimestamp: null
12992 name: cephobjectzonegroups.ceph.rook.io
12993spec:
12994 group: ceph.rook.io
12995 names:
12996 kind: CephObjectZoneGroup
12997 listKind: CephObjectZoneGroupList
12998 plural: cephobjectzonegroups
12999 singular: cephobjectzonegroup
13000 scope: Namespaced
13001 versions:
13002 - additionalPrinterColumns:
13003 - jsonPath: .status.phase
13004 name: Phase
13005 type: string
13006 name: v1
13007 schema:
13008 openAPIV3Schema:
13009 description: CephObjectZoneGroup represents a Ceph Object Store Gateway Zone Group
13010 properties:
13011 apiVersion:
13012 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'
13013 type: string
13014 kind:
13015 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'
13016 type: string
13017 metadata:
13018 type: object
13019 spec:
13020 description: ObjectZoneGroupSpec represent the spec of an ObjectZoneGroup
13021 properties:
13022 realm:
13023 description: The display name for the ceph users
13024 type: string
13025 required:
13026 - realm
13027 type: object
13028 status:
13029 description: Status represents the status of an object
13030 properties:
13031 conditions:
13032 items:
13033 description: Condition represents a status condition on any Rook-Ceph Custom Resource.
13034 properties:
13035 lastHeartbeatTime:
13036 format: date-time
13037 type: string
13038 lastTransitionTime:
13039 format: date-time
13040 type: string
13041 message:
13042 type: string
13043 reason:
13044 description: ConditionReason is a reason for a condition
13045 type: string
13046 status:
13047 type: string
13048 type:
13049 description: ConditionType represent a resource's status
13050 type: string
13051 type: object
13052 type: array
13053 observedGeneration:
13054 description: ObservedGeneration is the latest generation observed by the controller.
13055 format: int64
13056 type: integer
13057 phase:
13058 type: string
13059 type: object
13060 x-kubernetes-preserve-unknown-fields: true
13061 required:
13062 - metadata
13063 - spec
13064 type: object
13065 served: true
13066 storage: true
13067 subresources:
13068 status: {}
13069status:
13070 acceptedNames:
13071 kind: ""
13072 plural: ""
13073 conditions: []
13074 storedVersions: []
13075---
13076apiVersion: apiextensions.k8s.io/v1
13077kind: CustomResourceDefinition
13078metadata:
13079 annotations:
13080 controller-gen.kubebuilder.io/version: v0.6.2
13081 helm.sh/resource-policy: keep
13082 creationTimestamp: null
13083 name: cephobjectzones.ceph.rook.io
13084spec:
13085 group: ceph.rook.io
13086 names:
13087 kind: CephObjectZone
13088 listKind: CephObjectZoneList
13089 plural: cephobjectzones
13090 singular: cephobjectzone
13091 scope: Namespaced
13092 versions:
13093 - additionalPrinterColumns:
13094 - jsonPath: .status.phase
13095 name: Phase
13096 type: string
13097 name: v1
13098 schema:
13099 openAPIV3Schema:
13100 description: CephObjectZone represents a Ceph Object Store Gateway Zone
13101 properties:
13102 apiVersion:
13103 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'
13104 type: string
13105 kind:
13106 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'
13107 type: string
13108 metadata:
13109 type: object
13110 spec:
13111 description: ObjectZoneSpec represent the spec of an ObjectZone
13112 properties:
13113 customEndpoints:
13114 description: 'If this zone cannot be accessed from other peer Ceph clusters via the ClusterIP Service endpoint created by Rook, you must set this to the externally reachable endpoint(s). You may include the port in the definition. For example: "https://my-object-store.my-domain.net:443". In many cases, you should set this to the endpoint of the ingress resource that makes the CephObjectStore associated with this CephObjectStoreZone reachable to peer clusters. The list can have one or more endpoints pointing to different RGW servers in the zone.'
13115 items:
13116 type: string
13117 nullable: true
13118 type: array
13119 dataPool:
13120 description: The data pool settings
13121 nullable: true
13122 properties:
13123 compressionMode:
13124 description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
13125 enum:
13126 - none
13127 - passive
13128 - aggressive
13129 - force
13130 - ""
13131 nullable: true
13132 type: string
13133 crushRoot:
13134 description: The root of the crush hierarchy utilized by the pool
13135 nullable: true
13136 type: string
13137 deviceClass:
13138 description: The device class the OSD should set to for use in the pool
13139 nullable: true
13140 type: string
13141 enableRBDStats:
13142 description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
13143 type: boolean
13144 erasureCoded:
13145 description: The erasure code settings
13146 properties:
13147 algorithm:
13148 description: The algorithm for erasure coding
13149 type: string
13150 codingChunks:
13151 description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
13152 minimum: 0
13153 type: integer
13154 dataChunks:
13155 description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
13156 minimum: 0
13157 type: integer
13158 required:
13159 - codingChunks
13160 - dataChunks
13161 type: object
13162 failureDomain:
13163 description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
13164 type: string
13165 mirroring:
13166 description: The mirroring settings
13167 properties:
13168 enabled:
13169 description: Enabled whether this pool is mirrored or not
13170 type: boolean
13171 mode:
13172 description: 'Mode is the mirroring mode: either pool or image'
13173 type: string
13174 peers:
13175 description: Peers represents the peers spec
13176 nullable: true
13177 properties:
13178 secretNames:
13179 description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
13180 items:
13181 type: string
13182 type: array
13183 type: object
13184 snapshotSchedules:
13185 description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
13186 items:
13187 description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
13188 properties:
13189 interval:
13190 description: Interval represent the periodicity of the snapshot.
13191 type: string
13192 path:
13193 description: Path is the path to snapshot, only valid for CephFS
13194 type: string
13195 startTime:
13196 description: StartTime indicates when to start the snapshot
13197 type: string
13198 type: object
13199 type: array
13200 type: object
13201 parameters:
13202 additionalProperties:
13203 type: string
13204 description: Parameters is a list of properties to enable on a given pool
13205 nullable: true
13206 type: object
13207 x-kubernetes-preserve-unknown-fields: true
13208 quotas:
13209 description: The quota settings
13210 nullable: true
13211 properties:
13212 maxBytes:
13213 description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
13214 format: int64
13215 type: integer
13216 maxObjects:
13217 description: MaxObjects represents the quota in objects
13218 format: int64
13219 type: integer
13220 maxSize:
13221 description: MaxSize represents the quota in bytes as a string
13222 pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
13223 type: string
13224 type: object
13225 replicated:
13226 description: The replication settings
13227 properties:
13228 hybridStorage:
13229 description: HybridStorage represents hybrid storage tier settings
13230 nullable: true
13231 properties:
13232 primaryDeviceClass:
13233 description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
13234 minLength: 1
13235 type: string
13236 secondaryDeviceClass:
13237 description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
13238 minLength: 1
13239 type: string
13240 required:
13241 - primaryDeviceClass
13242 - secondaryDeviceClass
13243 type: object
13244 replicasPerFailureDomain:
13245 description: ReplicasPerFailureDomain the number of replica in the specified failure domain
13246 minimum: 1
13247 type: integer
13248 requireSafeReplicaSize:
13249 description: RequireSafeReplicaSize if false allows you to set replica 1
13250 type: boolean
13251 size:
13252 description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
13253 minimum: 0
13254 type: integer
13255 subFailureDomain:
13256 description: SubFailureDomain the name of the sub-failure domain
13257 type: string
13258 targetSizeRatio:
13259 description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
13260 type: number
13261 required:
13262 - size
13263 type: object
13264 statusCheck:
13265 description: The mirroring statusCheck
13266 properties:
13267 mirror:
13268 description: HealthCheckSpec represents the health check of an object store bucket
13269 nullable: true
13270 properties:
13271 disabled:
13272 type: boolean
13273 interval:
13274 description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
13275 type: string
13276 timeout:
13277 type: string
13278 type: object
13279 type: object
13280 x-kubernetes-preserve-unknown-fields: true
13281 type: object
13282 metadataPool:
13283 description: The metadata pool settings
13284 nullable: true
13285 properties:
13286 compressionMode:
13287 description: 'DEPRECATED: use Parameters instead, e.g., Parameters["compression_mode"] = "force" The inline compression mode in Bluestore OSD to set to (options are: none, passive, aggressive, force) Do NOT set a default value for kubebuilder as this will override the Parameters'
13288 enum:
13289 - none
13290 - passive
13291 - aggressive
13292 - force
13293 - ""
13294 nullable: true
13295 type: string
13296 crushRoot:
13297 description: The root of the crush hierarchy utilized by the pool
13298 nullable: true
13299 type: string
13300 deviceClass:
13301 description: The device class the OSD should set to for use in the pool
13302 nullable: true
13303 type: string
13304 enableRBDStats:
13305 description: EnableRBDStats is used to enable gathering of statistics for all RBD images in the pool
13306 type: boolean
13307 erasureCoded:
13308 description: The erasure code settings
13309 properties:
13310 algorithm:
13311 description: The algorithm for erasure coding
13312 type: string
13313 codingChunks:
13314 description: Number of coding chunks per object in an erasure coded storage pool (required for erasure-coded pool type). This is the number of OSDs that can be lost simultaneously before data cannot be recovered.
13315 minimum: 0
13316 type: integer
13317 dataChunks:
13318 description: Number of data chunks per object in an erasure coded storage pool (required for erasure-coded pool type). The number of chunks required to recover an object when any single OSD is lost is the same as dataChunks so be aware that the larger the number of data chunks, the higher the cost of recovery.
13319 minimum: 0
13320 type: integer
13321 required:
13322 - codingChunks
13323 - dataChunks
13324 type: object
13325 failureDomain:
13326 description: 'The failure domain: osd/host/(region or zone if available) - technically also any type in the crush map'
13327 type: string
13328 mirroring:
13329 description: The mirroring settings
13330 properties:
13331 enabled:
13332 description: Enabled whether this pool is mirrored or not
13333 type: boolean
13334 mode:
13335 description: 'Mode is the mirroring mode: either pool or image'
13336 type: string
13337 peers:
13338 description: Peers represents the peers spec
13339 nullable: true
13340 properties:
13341 secretNames:
13342 description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
13343 items:
13344 type: string
13345 type: array
13346 type: object
13347 snapshotSchedules:
13348 description: SnapshotSchedules is the scheduling of snapshot for mirrored images/pools
13349 items:
13350 description: SnapshotScheduleSpec represents the snapshot scheduling settings of a mirrored pool
13351 properties:
13352 interval:
13353 description: Interval represent the periodicity of the snapshot.
13354 type: string
13355 path:
13356 description: Path is the path to snapshot, only valid for CephFS
13357 type: string
13358 startTime:
13359 description: StartTime indicates when to start the snapshot
13360 type: string
13361 type: object
13362 type: array
13363 type: object
13364 parameters:
13365 additionalProperties:
13366 type: string
13367 description: Parameters is a list of properties to enable on a given pool
13368 nullable: true
13369 type: object
13370 x-kubernetes-preserve-unknown-fields: true
13371 quotas:
13372 description: The quota settings
13373 nullable: true
13374 properties:
13375 maxBytes:
13376 description: MaxBytes represents the quota in bytes Deprecated in favor of MaxSize
13377 format: int64
13378 type: integer
13379 maxObjects:
13380 description: MaxObjects represents the quota in objects
13381 format: int64
13382 type: integer
13383 maxSize:
13384 description: MaxSize represents the quota in bytes as a string
13385 pattern: ^[0-9]+[\.]?[0-9]*([KMGTPE]i|[kMGTPE])?$
13386 type: string
13387 type: object
13388 replicated:
13389 description: The replication settings
13390 properties:
13391 hybridStorage:
13392 description: HybridStorage represents hybrid storage tier settings
13393 nullable: true
13394 properties:
13395 primaryDeviceClass:
13396 description: PrimaryDeviceClass represents high performance tier (for example SSD or NVME) for Primary OSD
13397 minLength: 1
13398 type: string
13399 secondaryDeviceClass:
13400 description: SecondaryDeviceClass represents low performance tier (for example HDDs) for remaining OSDs
13401 minLength: 1
13402 type: string
13403 required:
13404 - primaryDeviceClass
13405 - secondaryDeviceClass
13406 type: object
13407 replicasPerFailureDomain:
13408 description: ReplicasPerFailureDomain the number of replica in the specified failure domain
13409 minimum: 1
13410 type: integer
13411 requireSafeReplicaSize:
13412 description: RequireSafeReplicaSize if false allows you to set replica 1
13413 type: boolean
13414 size:
13415 description: Size - Number of copies per object in a replicated storage pool, including the object itself (required for replicated pool type)
13416 minimum: 0
13417 type: integer
13418 subFailureDomain:
13419 description: SubFailureDomain the name of the sub-failure domain
13420 type: string
13421 targetSizeRatio:
13422 description: TargetSizeRatio gives a hint (%) to Ceph in terms of expected consumption of the total cluster capacity
13423 type: number
13424 required:
13425 - size
13426 type: object
13427 statusCheck:
13428 description: The mirroring statusCheck
13429 properties:
13430 mirror:
13431 description: HealthCheckSpec represents the health check of an object store bucket
13432 nullable: true
13433 properties:
13434 disabled:
13435 type: boolean
13436 interval:
13437 description: Interval is the internal in second or minute for the health check to run like 60s for 60 seconds
13438 type: string
13439 timeout:
13440 type: string
13441 type: object
13442 type: object
13443 x-kubernetes-preserve-unknown-fields: true
13444 type: object
13445 preservePoolsOnDelete:
13446 default: true
13447 description: Preserve pools on object zone deletion
13448 type: boolean
13449 zoneGroup:
13450 description: The display name for the ceph users
13451 type: string
13452 required:
13453 - dataPool
13454 - metadataPool
13455 - zoneGroup
13456 type: object
13457 status:
13458 description: Status represents the status of an object
13459 properties:
13460 conditions:
13461 items:
13462 description: Condition represents a status condition on any Rook-Ceph Custom Resource.
13463 properties:
13464 lastHeartbeatTime:
13465 format: date-time
13466 type: string
13467 lastTransitionTime:
13468 format: date-time
13469 type: string
13470 message:
13471 type: string
13472 reason:
13473 description: ConditionReason is a reason for a condition
13474 type: string
13475 status:
13476 type: string
13477 type:
13478 description: ConditionType represent a resource's status
13479 type: string
13480 type: object
13481 type: array
13482 observedGeneration:
13483 description: ObservedGeneration is the latest generation observed by the controller.
13484 format: int64
13485 type: integer
13486 phase:
13487 type: string
13488 type: object
13489 x-kubernetes-preserve-unknown-fields: true
13490 required:
13491 - metadata
13492 - spec
13493 type: object
13494 served: true
13495 storage: true
13496 subresources:
13497 status: {}
13498status:
13499 acceptedNames:
13500 kind: ""
13501 plural: ""
13502 conditions: []
13503 storedVersions: []
13504---
13505apiVersion: apiextensions.k8s.io/v1
13506kind: CustomResourceDefinition
13507metadata:
13508 annotations:
13509 controller-gen.kubebuilder.io/version: v0.6.2
13510 helm.sh/resource-policy: keep
13511 creationTimestamp: null
13512 name: cephrbdmirrors.ceph.rook.io
13513spec:
13514 group: ceph.rook.io
13515 names:
13516 kind: CephRBDMirror
13517 listKind: CephRBDMirrorList
13518 plural: cephrbdmirrors
13519 singular: cephrbdmirror
13520 scope: Namespaced
13521 versions:
13522 - additionalPrinterColumns:
13523 - jsonPath: .status.phase
13524 name: Phase
13525 type: string
13526 name: v1
13527 schema:
13528 openAPIV3Schema:
13529 description: CephRBDMirror represents a Ceph RBD Mirror
13530 properties:
13531 apiVersion:
13532 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'
13533 type: string
13534 kind:
13535 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'
13536 type: string
13537 metadata:
13538 type: object
13539 spec:
13540 description: RBDMirroringSpec represents the specification of an RBD mirror daemon
13541 properties:
13542 annotations:
13543 additionalProperties:
13544 type: string
13545 description: The annotations-related configuration to add/set on each Pod related object.
13546 nullable: true
13547 type: object
13548 x-kubernetes-preserve-unknown-fields: true
13549 count:
13550 description: Count represents the number of rbd mirror instance to run
13551 minimum: 1
13552 type: integer
13553 labels:
13554 additionalProperties:
13555 type: string
13556 description: The labels-related configuration to add/set on each Pod related object.
13557 nullable: true
13558 type: object
13559 x-kubernetes-preserve-unknown-fields: true
13560 peers:
13561 description: Peers represents the peers spec
13562 nullable: true
13563 properties:
13564 secretNames:
13565 description: SecretNames represents the Kubernetes Secret names to add rbd-mirror or cephfs-mirror peers
13566 items:
13567 type: string
13568 type: array
13569 type: object
13570 placement:
13571 description: The affinity to place the rgw pods (default is to place on any available node)
13572 nullable: true
13573 properties:
13574 nodeAffinity:
13575 description: NodeAffinity is a group of node affinity scheduling rules
13576 properties:
13577 preferredDuringSchedulingIgnoredDuringExecution:
13578 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.
13579 items:
13580 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).
13581 properties:
13582 preference:
13583 description: A node selector term, associated with the corresponding weight.
13584 properties:
13585 matchExpressions:
13586 description: A list of node selector requirements by node's labels.
13587 items:
13588 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
13589 properties:
13590 key:
13591 description: The label key that the selector applies to.
13592 type: string
13593 operator:
13594 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
13595 type: string
13596 values:
13597 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.
13598 items:
13599 type: string
13600 type: array
13601 required:
13602 - key
13603 - operator
13604 type: object
13605 type: array
13606 matchFields:
13607 description: A list of node selector requirements by node's fields.
13608 items:
13609 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
13610 properties:
13611 key:
13612 description: The label key that the selector applies to.
13613 type: string
13614 operator:
13615 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
13616 type: string
13617 values:
13618 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.
13619 items:
13620 type: string
13621 type: array
13622 required:
13623 - key
13624 - operator
13625 type: object
13626 type: array
13627 type: object
13628 weight:
13629 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
13630 format: int32
13631 type: integer
13632 required:
13633 - preference
13634 - weight
13635 type: object
13636 type: array
13637 requiredDuringSchedulingIgnoredDuringExecution:
13638 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.
13639 properties:
13640 nodeSelectorTerms:
13641 description: Required. A list of node selector terms. The terms are ORed.
13642 items:
13643 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.
13644 properties:
13645 matchExpressions:
13646 description: A list of node selector requirements by node's labels.
13647 items:
13648 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
13649 properties:
13650 key:
13651 description: The label key that the selector applies to.
13652 type: string
13653 operator:
13654 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
13655 type: string
13656 values:
13657 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.
13658 items:
13659 type: string
13660 type: array
13661 required:
13662 - key
13663 - operator
13664 type: object
13665 type: array
13666 matchFields:
13667 description: A list of node selector requirements by node's fields.
13668 items:
13669 description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
13670 properties:
13671 key:
13672 description: The label key that the selector applies to.
13673 type: string
13674 operator:
13675 description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
13676 type: string
13677 values:
13678 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.
13679 items:
13680 type: string
13681 type: array
13682 required:
13683 - key
13684 - operator
13685 type: object
13686 type: array
13687 type: object
13688 type: array
13689 required:
13690 - nodeSelectorTerms
13691 type: object
13692 type: object
13693 podAffinity:
13694 description: PodAffinity is a group of inter pod affinity scheduling rules
13695 properties:
13696 preferredDuringSchedulingIgnoredDuringExecution:
13697 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.
13698 items:
13699 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
13700 properties:
13701 podAffinityTerm:
13702 description: Required. A pod affinity term, associated with the corresponding weight.
13703 properties:
13704 labelSelector:
13705 description: A label query over a set of resources, in this case pods.
13706 properties:
13707 matchExpressions:
13708 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
13709 items:
13710 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
13711 properties:
13712 key:
13713 description: key is the label key that the selector applies to.
13714 type: string
13715 operator:
13716 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
13717 type: string
13718 values:
13719 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.
13720 items:
13721 type: string
13722 type: array
13723 required:
13724 - key
13725 - operator
13726 type: object
13727 type: array
13728 matchLabels:
13729 additionalProperties:
13730 type: string
13731 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.
13732 type: object
13733 type: object
13734 namespaceSelector:
13735 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.
13736 properties:
13737 matchExpressions:
13738 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
13739 items:
13740 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
13741 properties:
13742 key:
13743 description: key is the label key that the selector applies to.
13744 type: string
13745 operator:
13746 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
13747 type: string
13748 values:
13749 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.
13750 items:
13751 type: string
13752 type: array
13753 required:
13754 - key
13755 - operator
13756 type: object
13757 type: array
13758 matchLabels:
13759 additionalProperties:
13760 type: string
13761 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.
13762 type: object
13763 type: object
13764 namespaces:
13765 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".
13766 items:
13767 type: string
13768 type: array
13769 topologyKey:
13770 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.
13771 type: string
13772 required:
13773 - topologyKey
13774 type: object
13775 weight:
13776 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
13777 format: int32
13778 type: integer
13779 required:
13780 - podAffinityTerm
13781 - weight
13782 type: object
13783 type: array
13784 requiredDuringSchedulingIgnoredDuringExecution:
13785 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.
13786 items:
13787 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
13788 properties:
13789 labelSelector:
13790 description: A label query over a set of resources, in this case pods.
13791 properties:
13792 matchExpressions:
13793 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
13794 items:
13795 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
13796 properties:
13797 key:
13798 description: key is the label key that the selector applies to.
13799 type: string
13800 operator:
13801 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
13802 type: string
13803 values:
13804 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.
13805 items:
13806 type: string
13807 type: array
13808 required:
13809 - key
13810 - operator
13811 type: object
13812 type: array
13813 matchLabels:
13814 additionalProperties:
13815 type: string
13816 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.
13817 type: object
13818 type: object
13819 namespaceSelector:
13820 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.
13821 properties:
13822 matchExpressions:
13823 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
13824 items:
13825 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
13826 properties:
13827 key:
13828 description: key is the label key that the selector applies to.
13829 type: string
13830 operator:
13831 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
13832 type: string
13833 values:
13834 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.
13835 items:
13836 type: string
13837 type: array
13838 required:
13839 - key
13840 - operator
13841 type: object
13842 type: array
13843 matchLabels:
13844 additionalProperties:
13845 type: string
13846 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.
13847 type: object
13848 type: object
13849 namespaces:
13850 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".
13851 items:
13852 type: string
13853 type: array
13854 topologyKey:
13855 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.
13856 type: string
13857 required:
13858 - topologyKey
13859 type: object
13860 type: array
13861 type: object
13862 podAntiAffinity:
13863 description: PodAntiAffinity is a group of inter pod anti affinity scheduling rules
13864 properties:
13865 preferredDuringSchedulingIgnoredDuringExecution:
13866 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.
13867 items:
13868 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
13869 properties:
13870 podAffinityTerm:
13871 description: Required. A pod affinity term, associated with the corresponding weight.
13872 properties:
13873 labelSelector:
13874 description: A label query over a set of resources, in this case pods.
13875 properties:
13876 matchExpressions:
13877 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
13878 items:
13879 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
13880 properties:
13881 key:
13882 description: key is the label key that the selector applies to.
13883 type: string
13884 operator:
13885 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
13886 type: string
13887 values:
13888 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.
13889 items:
13890 type: string
13891 type: array
13892 required:
13893 - key
13894 - operator
13895 type: object
13896 type: array
13897 matchLabels:
13898 additionalProperties:
13899 type: string
13900 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.
13901 type: object
13902 type: object
13903 namespaceSelector:
13904 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.
13905 properties:
13906 matchExpressions:
13907 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
13908 items:
13909 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
13910 properties:
13911 key:
13912 description: key is the label key that the selector applies to.
13913 type: string
13914 operator:
13915 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
13916 type: string
13917 values:
13918 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.
13919 items:
13920 type: string
13921 type: array
13922 required:
13923 - key
13924 - operator
13925 type: object
13926 type: array
13927 matchLabels:
13928 additionalProperties:
13929 type: string
13930 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.
13931 type: object
13932 type: object
13933 namespaces:
13934 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".
13935 items:
13936 type: string
13937 type: array
13938 topologyKey:
13939 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.
13940 type: string
13941 required:
13942 - topologyKey
13943 type: object
13944 weight:
13945 description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
13946 format: int32
13947 type: integer
13948 required:
13949 - podAffinityTerm
13950 - weight
13951 type: object
13952 type: array
13953 requiredDuringSchedulingIgnoredDuringExecution:
13954 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.
13955 items:
13956 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
13957 properties:
13958 labelSelector:
13959 description: A label query over a set of resources, in this case pods.
13960 properties:
13961 matchExpressions:
13962 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
13963 items:
13964 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
13965 properties:
13966 key:
13967 description: key is the label key that the selector applies to.
13968 type: string
13969 operator:
13970 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
13971 type: string
13972 values:
13973 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.
13974 items:
13975 type: string
13976 type: array
13977 required:
13978 - key
13979 - operator
13980 type: object
13981 type: array
13982 matchLabels:
13983 additionalProperties:
13984 type: string
13985 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.
13986 type: object
13987 type: object
13988 namespaceSelector:
13989 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.
13990 properties:
13991 matchExpressions:
13992 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
13993 items:
13994 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
13995 properties:
13996 key:
13997 description: key is the label key that the selector applies to.
13998 type: string
13999 operator:
14000 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
14001 type: string
14002 values:
14003 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.
14004 items:
14005 type: string
14006 type: array
14007 required:
14008 - key
14009 - operator
14010 type: object
14011 type: array
14012 matchLabels:
14013 additionalProperties:
14014 type: string
14015 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.
14016 type: object
14017 type: object
14018 namespaces:
14019 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".
14020 items:
14021 type: string
14022 type: array
14023 topologyKey:
14024 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.
14025 type: string
14026 required:
14027 - topologyKey
14028 type: object
14029 type: array
14030 type: object
14031 tolerations:
14032 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>
14033 items:
14034 description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
14035 properties:
14036 effect:
14037 description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
14038 type: string
14039 key:
14040 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.
14041 type: string
14042 operator:
14043 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.
14044 type: string
14045 tolerationSeconds:
14046 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.
14047 format: int64
14048 type: integer
14049 value:
14050 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.
14051 type: string
14052 type: object
14053 type: array
14054 topologySpreadConstraints:
14055 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology
14056 items:
14057 description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
14058 properties:
14059 labelSelector:
14060 description: LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
14061 properties:
14062 matchExpressions:
14063 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
14064 items:
14065 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
14066 properties:
14067 key:
14068 description: key is the label key that the selector applies to.
14069 type: string
14070 operator:
14071 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
14072 type: string
14073 values:
14074 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.
14075 items:
14076 type: string
14077 type: array
14078 required:
14079 - key
14080 - operator
14081 type: object
14082 type: array
14083 matchLabels:
14084 additionalProperties:
14085 type: string
14086 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.
14087 type: object
14088 type: object
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000014089 matchLabelKeys:
14090 description: MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.
14091 items:
14092 type: string
14093 type: array
14094 x-kubernetes-list-type: atomic
okozachenko120323147262023-01-28 04:16:42 +110014095 maxSkew:
14096 description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
14097 format: int32
14098 type: integer
14099 minDomains:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000014100 description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
okozachenko120323147262023-01-28 04:16:42 +110014101 format: int32
14102 type: integer
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000014103 nodeAffinityPolicy:
14104 description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
14105 type: string
14106 nodeTaintsPolicy:
14107 description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a alpha-level feature enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
14108 type: string
okozachenko120323147262023-01-28 04:16:42 +110014109 topologyKey:
Mohammed Naserfc4a62c2023-02-10 02:59:17 +000014110 description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
okozachenko120323147262023-01-28 04:16:42 +110014111 type: string
14112 whenUnsatisfiable:
14113 description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
14114 type: string
14115 required:
14116 - maxSkew
14117 - topologyKey
14118 - whenUnsatisfiable
14119 type: object
14120 type: array
14121 type: object
14122 x-kubernetes-preserve-unknown-fields: true
14123 priorityClassName:
14124 description: PriorityClassName sets priority class on the rbd mirror pods
14125 type: string
14126 resources:
14127 description: The resource requirements for the rbd mirror pods
14128 nullable: true
14129 properties:
14130 limits:
14131 additionalProperties:
14132 anyOf:
14133 - type: integer
14134 - type: string
14135 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
14136 x-kubernetes-int-or-string: true
14137 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
14138 type: object
14139 requests:
14140 additionalProperties:
14141 anyOf:
14142 - type: integer
14143 - type: string
14144 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
14145 x-kubernetes-int-or-string: true
14146 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. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
14147 type: object
14148 type: object
14149 x-kubernetes-preserve-unknown-fields: true
14150 required:
14151 - count
14152 type: object
14153 status:
14154 description: Status represents the status of an object
14155 properties:
14156 conditions:
14157 items:
14158 description: Condition represents a status condition on any Rook-Ceph Custom Resource.
14159 properties:
14160 lastHeartbeatTime:
14161 format: date-time
14162 type: string
14163 lastTransitionTime:
14164 format: date-time
14165 type: string
14166 message:
14167 type: string
14168 reason:
14169 description: ConditionReason is a reason for a condition
14170 type: string
14171 status:
14172 type: string
14173 type:
14174 description: ConditionType represent a resource's status
14175 type: string
14176 type: object
14177 type: array
14178 observedGeneration:
14179 description: ObservedGeneration is the latest generation observed by the controller.
14180 format: int64
14181 type: integer
14182 phase:
14183 type: string
14184 type: object
14185 x-kubernetes-preserve-unknown-fields: true
14186 required:
14187 - metadata
14188 - spec
14189 type: object
14190 served: true
14191 storage: true
14192 subresources:
14193 status: {}
14194status:
14195 acceptedNames:
14196 kind: ""
14197 plural: ""
14198 conditions: []
14199 storedVersions: []
14200---
14201apiVersion: apiextensions.k8s.io/v1
14202kind: CustomResourceDefinition
14203metadata:
14204 name: objectbucketclaims.objectbucket.io
14205 annotations:
14206 helm.sh/resource-policy: keep
14207spec:
14208 group: objectbucket.io
14209 names:
14210 kind: ObjectBucketClaim
14211 listKind: ObjectBucketClaimList
14212 plural: objectbucketclaims
14213 singular: objectbucketclaim
14214 shortNames:
14215 - obc
14216 - obcs
14217 scope: Namespaced
14218 versions:
14219 - name: v1alpha1
14220 served: true
14221 storage: true
14222 schema:
14223 openAPIV3Schema:
14224 type: object
14225 properties:
14226 spec:
14227 type: object
14228 properties:
14229 storageClassName:
14230 type: string
14231 bucketName:
14232 type: string
14233 generateBucketName:
14234 type: string
14235 additionalConfig:
14236 type: object
14237 nullable: true
14238 x-kubernetes-preserve-unknown-fields: true
14239 objectBucketName:
14240 type: string
14241 status:
14242 type: object
14243 x-kubernetes-preserve-unknown-fields: true
14244 subresources:
14245 status: {}
14246---
14247apiVersion: apiextensions.k8s.io/v1
14248kind: CustomResourceDefinition
14249metadata:
14250 name: objectbuckets.objectbucket.io
14251 annotations:
14252 helm.sh/resource-policy: keep
14253spec:
14254 group: objectbucket.io
14255 names:
14256 kind: ObjectBucket
14257 listKind: ObjectBucketList
14258 plural: objectbuckets
14259 singular: objectbucket
14260 shortNames:
14261 - ob
14262 - obs
14263 scope: Cluster
14264 versions:
14265 - name: v1alpha1
14266 served: true
14267 storage: true
14268 schema:
14269 openAPIV3Schema:
14270 type: object
14271 properties:
14272 spec:
14273 type: object
14274 properties:
14275 storageClassName:
14276 type: string
14277 endpoint:
14278 type: object
14279 nullable: true
14280 properties:
14281 bucketHost:
14282 type: string
14283 bucketPort:
14284 type: integer
14285 format: int32
14286 bucketName:
14287 type: string
14288 region:
14289 type: string
14290 subRegion:
14291 type: string
14292 additionalConfig:
14293 type: object
14294 nullable: true
14295 x-kubernetes-preserve-unknown-fields: true
14296 authentication:
14297 type: object
14298 nullable: true
14299 items:
14300 type: object
14301 x-kubernetes-preserve-unknown-fields: true
14302 additionalState:
14303 type: object
14304 nullable: true
14305 x-kubernetes-preserve-unknown-fields: true
14306 reclaimPolicy:
14307 type: string
14308 claimRef:
14309 type: object
14310 nullable: true
14311 x-kubernetes-preserve-unknown-fields: true
14312 status:
14313 type: object
14314 x-kubernetes-preserve-unknown-fields: true
14315 subresources:
14316 status: {}
14317
14318{{- end }}