EvenPodsSpread: auto-gen files

This commit is contained in:
Wei Huang
2019-07-18 11:01:17 -07:00
parent 49da505a9a
commit eafd4e96d9
7 changed files with 1459 additions and 950 deletions

View File

@@ -9924,6 +9924,20 @@
},
"type": "array"
},
"topologySpreadConstraints": {
"description": "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. This field is alpha-level and is only honored by clusters that enables the EvenPodsSpread feature. All topologySpreadConstraints are ANDed.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.TopologySpreadConstraint"
},
"type": "array",
"x-kubernetes-list-map-keys": [
"topologyKey",
"whenUnsatisfiable"
],
"x-kubernetes-list-type": "map",
"x-kubernetes-patch-merge-key": "topologyKey",
"x-kubernetes-patch-strategy": "merge"
},
"volumes": {
"description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
"items": {
@@ -11494,6 +11508,34 @@
},
"type": "object"
},
"io.k8s.api.core.v1.TopologySpreadConstraint": {
"description": "TopologySpreadConstraint specifies how to spread matching pods among the given topology.",
"properties": {
"labelSelector": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector",
"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."
},
"maxSkew": {
"description": "MaxSkew describes the degree to which pods may be unevenly distributed. It's the maximum permitted difference between the number of matching pods in any two topology domains of a given topology type. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: | zone1 | zone2 | zone3 | | P | P | | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. It's a required field. Default value is 1 and 0 is not allowed.",
"format": "int32",
"type": "integer"
},
"topologyKey": {
"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. It's a required field.",
"type": "string"
},
"whenUnsatisfiable": {
"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 still schedule it It's considered as \"Unsatisfiable\" if and only if placing incoming pod on any topology violates \"MaxSkew\". 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.",
"type": "string"
}
},
"required": [
"maxSkew",
"topologyKey",
"whenUnsatisfiable"
],
"type": "object"
},
"io.k8s.api.core.v1.TypedLocalObjectReference": {
"description": "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.",
"properties": {