-
Notifications
You must be signed in to change notification settings - Fork 2
/
concatenated_crd.yaml
1813 lines (1788 loc) · 86.6 KB
/
concatenated_crd.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: backups.operator.yugabyte.io
spec:
group: operator.yugabyte.io
scope: Namespaced
names:
plural: backups
singular: backup
kind: Backup
categories:
- all
- yugabyte
versions:
- name: v1alpha1
subresources:
status: {}
served: true
storage: true
schema:
openAPIV3Schema:
description: Custom resource definition for YugabyteDB backups.
type: object
properties:
status:
type: object
description: Backup status for the backup custom resource.
properties:
message:
description: String log message from backup controller
type: string
resourceUUID:
description: Internal UUID of the backup resource.
type: string
taskUUID:
description: Internal UUID of the task associated with the backup resource.
type: string
spec:
type: object
properties:
backupType:
description: >
Type of backup to be taken.
Allowed values are -
YQL_TABLE_TYPE REDIS_TABLE_TYPE PGSQL_TABLE_TYPE TRANSACTION_STATUS_TABLE_TYPE
type: string
enum:
- YQL_TABLE_TYPE
- PGSQL_TABLE_TYPE
sse:
description: Server side encryption for the backup.
type: boolean
storageConfig:
description: >
Storage configuration for the backup,
should contain name of storage config object
type: string
universe:
description: >
Name of the universe for which backup is to be taken,
refers to a ybuniverse CR name.
type: string
tableByTableBackup:
description: Boolean indicating if backup is to be taken table by table.
type: boolean
keyspace:
description: Name of keyspace to be backed up.
type: string
timeBeforeDelete:
description: Time before backup is deleted from storage in milliseconds.
type: integer
minimum: 0
required:
- keyspace
- backupType
- storageConfig
- universe
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: releases.operator.yugabyte.io
spec:
group: operator.yugabyte.io
scope: Namespaced
names:
plural: releases
singular: release
kind: Release
categories:
- all
- yugabyte
versions:
- name: v1alpha1
subresources:
status: {}
additionalPrinterColumns:
- name: Version
type: string
description: The state of the universe
jsonPath: .spec.config.version
- name: Status
type: string
description: The state of the universe
jsonPath: .status.message
- name: Downloaded
type: string
description: The Software version of the Universe
jsonPath: .status.success
served: true
storage: true
schema:
openAPIV3Schema:
type: object
description: >
Custom resource definition for YugabyteDB release, describes a release.
properties:
status:
description: Release status on the cluster.
type: object
properties:
message:
description: String log message from release controller
type: string
success:
description: >
Boolean indicating if the release was successfully
downloaded and usable
type: boolean
resourceUUID:
description: Internal UUID of the release resource.
type: string
spec:
type: object
description: Release object specification.
properties:
config:
description: Release download configration, we support GCS, S3 and HTTP.
type: object
properties:
version:
description: >
Version of the release chart to use.
Refer to the release charts at charts.yugabyte.com
type: string
downloadConfig:
description: >
Download configugration,
we support GCS, S3 and HTTP as download sources for now.
type: object
properties:
s3:
description: S3 download configuration
type: object
properties:
accessKeyId:
description: S3 access key
type: string
secretAccessKey:
description: S3 secret key
type: string
paths:
description: S3 paths to download the release from
type: object
properties:
x86_64:
type: string
description: Optional Path to x86_64 package
x86_64_checksum:
type: string
description: Checksum for x86_64 package
helmChart:
type: string
description: Required Path to the Helm chart package
helmChartChecksum:
description: Optional checksum for Helm chart package
type: string
gcs:
type: object
properties:
paths:
type: object
properties:
x86_64:
type: string
description: Optional Path to x86_64 package
x86_64_checksum:
type: string
description: Optional Checksum for x86_64 package
helmChart:
type: string
description: Path to the Helm chart package
helmChartChecksum:
type: string
description: Optional checksum for Helm chart package
credentialsJson:
type: string
description: GCS service key JSON
http:
type: object
properties:
paths:
type: object
properties:
x86_64:
type: string
description: Optional Path to x86_64 package
x86_64_checksum:
type: string
description: Optional Checksum for x86_64 package
helmChart:
type: string
description: Path to the Helm chart package
helmChartChecksum:
type: string
description: Optional checksum for Helm chart package
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: restorejobs.operator.yugabyte.io
spec:
group: operator.yugabyte.io
scope: Namespaced
names:
plural: restorejobs
singular: restorejob
kind: RestoreJob
categories:
- all
- yugabyte
versions:
- name: v1alpha1
subresources:
status: {}
served: true
storage: true
schema:
openAPIV3Schema:
type: object
description: Custom resource definition for YugabyteDB restore job
properties:
status:
type: object
description: Restore job status for the restore job custom resource.
properties:
message:
description: String log message from restore job controller
type: string
taskUUID:
description: >
Internal UUID of the task associated with
the restore job resource.
type: string
resourceUUID:
description: Internal UUID of the restore operation.
type: string
spec:
type: object
properties:
actionType:
description: Type of action to be taken. Allowed values - RESTORE
type: string
enum:
- RESTORE
universe:
description: >
Name of the universe for which restore is to be taken,
refers to a ybuniverse CR name.
type: string
backup:
description: >
Name of the backup to be restored,
refers to a backup CR name.
type: string
keyspace:
description: Name of the keyspace to be restored.
type: string
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: storageconfigs.operator.yugabyte.io
spec:
group: operator.yugabyte.io
scope: Namespaced
names:
plural: storageconfigs
singular: storageconfig
kind: StorageConfig
categories:
- all
- yugabyte
versions:
- name: v1alpha1
subresources:
status: {}
served: true
storage: true
schema:
openAPIV3Schema:
description: Custom resource definition for YugabyteDB backup storage configuration.
type: object
properties:
status:
description: >
Storage configuration status for the storage configuration custom resource.
type: object
properties:
message:
description: String log message from storage configuration controller.
type: string
success:
description: >
Boolean indicating if the storage configuration was successfully created.
type: boolean
resourceUUID:
description: Internal UUID of the storage configuration resource.
type: string
spec:
type: object
properties:
config_type:
description:
Type of storage configuration to be created.
Allowed values - STORAGE_S3, STORAGE_NFS, STORAGE_GCS, STORAGE_AZ
type: string
enum:
- STORAGE_S3
- STORAGE_NFS
- STORAGE_GCS
- STORAGE_AZ
x-kubernetes-validations:
- message: Config type cannot be changed
rule: self == oldSelf
data:
type: object
description: Data object to create storage configuration.
properties:
AWS_ACCESS_KEY_ID:
description: AWS access key id for the S3 storage configuration.
type: string
AWS_SECRET_ACCESS_KEY:
description: AWS secret access key for the S3 storage configuration.
type: string
USE_IAM:
description: Use IAM for storage account access. Valid for S3/GCS.
type: boolean
BACKUP_LOCATION:
description: Backup location for the storage configuration.
type: string
x-kubernetes-validations:
- message: BACKUP_LOCATION cannot be changed
rule: self == oldSelf
GCS_CREDENTIALS_JSON:
description: GCS credentials JSON for the GCS storage configuration.
type: string
AZURE_STORAGE_SAS_TOKEN:
description: Azure SAS token for the Azure storage configuration.
type: string
required:
- BACKUP_LOCATION
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: support-bundles.operator.yugabyte.io
spec:
group: operator.yugabyte.io
scope: Namespaced
names:
plural: support-bundles
singular: support-bundle
kind: SupportBundle
shortNames:
- sb
categories:
- all
- yugabyte
versions:
- name: v1alpha1
subresources:
status: {}
served: true
storage: true
schema:
openAPIV3Schema:
description: >
Custom resource definition for YugabyteDB support bundle to capture logs,
events in case of failures.
type: object
properties:
status:
description: Support bundle status for the support bundle custom resource.
type: object
properties:
status:
description: >
Status of the support bundle.
Allowed values - generating, ready, failed
type: string
enum:
- generating
- ready
- failed
access:
description: Access details for the generated support bundle to download.
type: string
resourceUUID:
description: Internal UUID of the support bundle resource.
type: string
spec:
type: object
properties:
universeName:
description: >
Name of the universe for which support bundle is to be generated,
refers to a ybuniverse CR name.
type: string
collectionTimerange:
description: Time range for which logs and events are to be collected.
type: object
properties:
startDate:
description: Start date for the logs and events collection.
type: string
example: 2022-12-12T13:07:18Z,
format: date-time
endDate:
description: End date for the logs and events collection.
type: string
example: 2022-12-12T13:07:18Z,
format: date-time
required:
- startDate
components:
description: >
Components for which logs and events are to be collected. If not provided, all
components will be collected.
type: array
items:
type: string
enum:
- UniverseLogs
- ApplicationLogs
- OutputFiles
- ErrorFiles
- CoreFiles
- GFlags
- Instance
- ConsensusMeta
- TabletMeta
- YbcLogs
- K8sInfo
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: ybuniverses.operator.yugabyte.io
spec:
group: operator.yugabyte.io
versions:
- name: v1alpha1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
description: >
Custom resource definition for YugabyteDB universe.
This CR describes the universe configuration for an instance of yugabytedb database.
For details about YugabyteDB please refer to https://docs.yugabyte.com/
properties:
spec:
type: object
description: Schema spec for a yugabytedb universe.
x-kubernetes-validations:
- message: replicationFactor <= numNodes
rule: self.replicationFactor <= self.numNodes
properties:
universeName:
type: string
description: Name of the universe object to create
x-kubernetes-validations:
- message: universeName cannot be changed once set.
rule: self == oldSelf
numNodes:
description: Number of tservers in the universe to create.
type: integer
replicationFactor:
description: Number of times to replicate data in a universe.
type: integer
x-kubernetes-validations:
- message: Replication Factor is cannot be changed
rule: self == oldSelf
gFlags:
description: >
Configuration flags for the universe.
These can be set on masters or tservers
type: object
properties:
tserverGFlags:
description: >
Configuration flags for the tserver process in the universe.
type: object
additionalProperties:
type: string
masterGFlags:
description: >
Configuration flags for the master process in the universe.
type: object
additionalProperties:
type: string
perAZ:
description: >
Configuration flags per AZ per process in the universe.
type: object
additionalProperties:
type: object
properties:
tserverGFlags:
type: object
additionalProperties:
type: string
masterGFlags:
type: object
additionalProperties:
type: string
enableYSQL:
description: Enable YSQL interface in the universe.
default: true
type: boolean
x-kubernetes-validations:
- message: enableYSQL cannot be changed
rule: self == oldSelf
enableNodeToNodeEncrypt:
description: >
Enable node to node encryption in the universe.
This encrypts the data in transit between nodes.
type: boolean
default: true
x-kubernetes-validations:
- message: enableNodeToNodeEncrypt cannot be changed
rule: self == oldSelf
enableClientToNodeEncrypt:
description: >
Enable client to node encryption in the universe.
Enable this to use tls enabled connnection between
client and database.
type: boolean
default: true
x-kubernetes-validations:
- message: enableClientToNodeEncrypt cannot be changed
rule: self == oldSelf
ybSoftwareVersion:
description: Version of DB software to use in the universe.
type: string
providerName:
description: Preexisting Provider name to use in the universe.
type: string
x-kubernetes-validations:
- message: providerName cannot be changed
rule: self == oldSelf
zoneFilter:
description: >
Only deploy yugabytedb nodes in these zones mentioned in the list.
Defaults to all zones if unspecified.
type: array
x-kubernetes-validations:
- message: zoneFilter cannot be changed
rule: self == oldSelf
items:
type: string
enableYSQLAuth:
description: enableYSQLAuth enables authentication for YSQL inteface.
type: boolean
default: false
x-kubernetes-validations:
- message: enableYSQL auth cannot be changed once set.
rule: self == oldSelf
ysqlPassword:
description: Used to refer to secrets if enableYSQLAuth is set.
type: object
x-kubernetes-validations:
- message: ysqlPassword cannot be changed once set.
rule: self == oldSelf
properties:
secretName:
type: string
required:
- secretName
enableYCQL:
description: Enable YCQL interface in the universe.
type: boolean
default: false
x-kubernetes-validations:
- message: enableYCQL cannot be changed once set.
rule: self == oldSelf
enableYCQLAuth:
description: enableYCQLAuth enables authentication for YCQL inteface.
type: boolean
default: false
x-kubernetes-validations:
- message: enableYCQLAuth cannot be changed once set.
rule: self == oldSelf
ycqlPassword:
description: Used to refer to secrets if enableYCQLAuth is set.
type: object
x-kubernetes-validations:
- message: ycqlPassword cannot be changed once set.
rule: self == oldSelf
properties:
secretName:
type: string
required:
- secretName
enableIPV6:
description: Enable IPV6 in the universe.
type: boolean
default: false
x-kubernetes-validations:
- message: enableIPV6 cannot be changed once set.
rule: self == oldSelf
enableLoadBalancer:
description: >
Enable LoadBalancer access to the universe.
Creates a service with Type:LoadBalancer
in the universe for tserver and masters.
type: boolean
default: false
x-kubernetes-validations:
- message: enableExposingService cannot be changed once set.
rule: self == oldSelf
deviceInfo:
description: >
Device information for the universe to
refer to storage information for volume,
storage classes etc.
properties:
volumeSize:
type: integer
default: 100
numVolumes:
type: integer
default: 1
x-kubernetes-validations:
- message: numVolumes cannot be changed once set.
rule: self == oldSelf
storageClass:
type: string
x-kubernetes-validations:
- message: StorageClass cannot be changed once set.
rule: self == oldSelf
type: object
kubernetesOverrides:
description: >
Kubernetes overrides for the universe.
Please refer to yugabyteDB documentation for more details.
https://docs.yugabyte.com/preview/yugabyte-platform/create-deployments/create-universe-multi-zone-kubernetes/#configure-helm-overrides
type: object
# Since this is not an exhaustive list yet.
# Helm chart can have a bunch more properties.
x-kubernetes-preserve-unknown-fields: true
properties:
resource:
type: object
properties:
master:
type: object
properties:
requests:
type: object
properties:
cpu:
type: string
x-kubernetes-int-or-string: true
memory:
type: string
x-kubernetes-int-or-string: true
limits:
type: object
properties:
cpu:
type: string
x-kubernetes-int-or-string: true
memory:
type: string
x-kubernetes-int-or-string: true
tserver:
type: object
properties:
requests:
type: object
properties:
cpu:
type: string
x-kubernetes-int-or-string: true
memory:
type: string
x-kubernetes-int-or-string: true
limits:
type: object
properties:
cpu:
type: string
x-kubernetes-int-or-string: true
memory:
type: string
x-kubernetes-int-or-string: true
master:
type: object
properties:
affinity:
description: Pod scheduling affinity settings
type: object
properties:
podAffinity:
description: Pod affinity is a group of inter pod affinity
scheduling rules.
properties:
preferredDuringSchedulingIgnoredDuringExecution:
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.
items:
description: The weights of all of the matched
WeightedPodAffinityTerm fields are added per-node to
find the most preferred node(s)
properties:
podAffinityTerm:
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
properties:
labelSelector:
description: A label selector is a label
query over a set of resources. The result
of matchLabels and matchExpressions are
ANDed. An empty label selector matches
all objects. A null label selector matches
no objects.
properties:
matchExpressions:
description: matchExpressions is a list
of label selector requirements. The
requirements are ANDed.
items:
description: A label selector requirement
is a selector that contains values,
a key, and an operator that relates
the key and values.
properties:
key:
description: key is the label
key that the selector applies
to.
type: string
operator:
description: operator represents
a key's relationship to a set
of values. Valid operators are
In, NotIn, Exists and DoesNotExist.
type: string
values:
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.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
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.
type: object
type: object
namespaces:
description: namespaces specifies which
namespaces the labelSelector applies to
(matches against); null or empty list
means "this pod's namespace"
items:
type: string
type: array
topologyKey:
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.
type: string
required:
- topologyKey
type: object
weight:
description: weight associated with matching
the corresponding podAffinityTerm, in the
range 1-100.
format: int32
type: integer
required:
- weight
- podAffinityTerm
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
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.
items:
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
properties:
labelSelector:
description: A label selector is a label query
over a set of resources. The result of matchLabels
and matchExpressions are ANDed. An empty label
selector matches all objects. A null label
selector matches no objects.
properties:
matchExpressions:
description: matchExpressions is a list
of label selector requirements. The requirements
are ANDed.
items:
description: A label selector requirement
is a selector that contains values,
a key, and an operator that relates
the key and values.
properties:
key:
description: key is the label key
that the selector applies to.
type: string
operator:
description: operator represents a
key's relationship to a set of values.
Valid operators are In, NotIn, Exists
and DoesNotExist.
type: string
values:
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.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
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.
type: object
type: object
namespaces:
description: namespaces specifies which namespaces
the labelSelector applies to (matches against);
null or empty list means "this pod's namespace"
items:
type: string
type: array
topologyKey:
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.
type: string
required:
- topologyKey
type: object
type: array
type: object
podAntiAffinity:
type: object
description: "Pod anti affinity is a group of inter pod
anti affinity scheduling rules."
properties:
requiredDuringSchedulingIgnoredDuringExecution:
type: array
items:
type: object
properties:
topologyKey:
type: string
labelSelector:
type: object
properties:
matchExpressions:
type: array
items:
type: object
properties:
key:
type: string
operator:
type: string
enum: ["In", "NotIn", "Exists", "DoesNotExist"]
values:
type: array
items:
type: string
matchLabels:
type: object
additionalProperties:
type: string
namespaces:
type: array
items:
type: string
preferredDuringSchedulingIgnoredDuringExecution:
type: array
items:
type: object
properties:
weight:
type: integer
podAffinityTerm:
type: object
properties: