auto-update crds catalog

This commit is contained in:
Drone Shipper 2023-06-12 21:14:12 +00:00
parent 313a8b4c7d
commit 0776a48f08
2 changed files with 331 additions and 39 deletions

View File

@ -1143,6 +1143,11 @@
}, },
"type": "array" "type": "array"
}, },
"schemaOnly": {
"default": false,
"description": "When set to true, only the `pre-data` and `post-data` sections of `pg_restore` are invoked, avoiding data import. Default: `false`.",
"type": "boolean"
},
"source": { "source": {
"description": "The source of the import", "description": "The source of the import",
"properties": { "properties": {
@ -1332,7 +1337,7 @@
"description": "Bootstrap the cluster from a backup", "description": "Bootstrap the cluster from a backup",
"properties": { "properties": {
"backup": { "backup": {
"description": "The backup we need to restore", "description": "The backup object containing the physical base backup from which to initiate the recovery procedure. Mutually exclusive with `source` and `volumeSnapshots`.",
"properties": { "properties": {
"endpointCA": { "endpointCA": {
"description": "EndpointCA store the CA bundle of the barman endpoint. Useful when using self-signed certificates to avoid errors with certificate issuer and barman-cloud-wal-archive.", "description": "EndpointCA store the CA bundle of the barman endpoint. Useful when using self-signed certificates to avoid errors with certificate issuer and barman-cloud-wal-archive.",
@ -1426,8 +1431,66 @@
"additionalProperties": false "additionalProperties": false
}, },
"source": { "source": {
"description": "The external cluster whose backup we will restore. This is also used as the name of the folder under which the backup is stored, so it must be set to the name of the source cluster", "description": "The external cluster whose backup we will restore. This is also used as the name of the folder under which the backup is stored, so it must be set to the name of the source cluster Mutually exclusive with `backup` and `volumeSnapshots`.",
"type": "string" "type": "string"
},
"volumeSnapshots": {
"description": "The static PVC data source(s) from which to initiate the recovery procedure. Currently supporting `VolumeSnapshot` and `PersistentVolumeClaim` resources that map an existing PVC group, compatible with CloudNativePG, and taken with a cold backup copy on a fenced Postgres instance (limitation which will be removed in the future when online backup will be implemented). Mutually exclusive with `backup` and `source`.",
"properties": {
"storage": {
"description": "Configuration of the storage of the instances",
"properties": {
"apiGroup": {
"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.",
"type": "string"
},
"kind": {
"description": "Kind is the type of resource being referenced",
"type": "string"
},
"name": {
"description": "Name is the name of resource being referenced",
"type": "string"
}
},
"required": [
"kind",
"name"
],
"type": "object",
"x-kubernetes-map-type": "atomic",
"additionalProperties": false
},
"walStorage": {
"description": "Configuration of the storage for PostgreSQL WAL (Write-Ahead Log)",
"properties": {
"apiGroup": {
"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.",
"type": "string"
},
"kind": {
"description": "Kind is the type of resource being referenced",
"type": "string"
},
"name": {
"description": "Name is the name of resource being referenced",
"type": "string"
}
},
"required": [
"kind",
"name"
],
"type": "object",
"x-kubernetes-map-type": "atomic",
"additionalProperties": false
}
},
"required": [
"storage"
],
"type": "object",
"additionalProperties": false
} }
}, },
"type": "object", "type": "object",
@ -2188,6 +2251,10 @@
"description": "Whether the role will be permitted to create, alter, drop, comment on, change the security label for, and grant or revoke membership in other roles. Default is `false`.", "description": "Whether the role will be permitted to create, alter, drop, comment on, change the security label for, and grant or revoke membership in other roles. Default is `false`.",
"type": "boolean" "type": "boolean"
}, },
"disablePassword": {
"description": "DisablePassword indicates that a role's password should be set to NULL in Postgres",
"type": "boolean"
},
"ensure": { "ensure": {
"default": "present", "default": "present",
"description": "Ensure the role is `present` or `absent` - defaults to \"present\"", "description": "Ensure the role is `present` or `absent` - defaults to \"present\"",
@ -2218,7 +2285,7 @@
"type": "string" "type": "string"
}, },
"passwordSecret": { "passwordSecret": {
"description": "Secret containing the password of the role (if present)", "description": "Secret containing the password of the role (if present) If null, the password will be ignored unless DisablePassword is set",
"properties": { "properties": {
"name": { "name": {
"description": "Name of the referent.", "description": "Name of the referent.",
@ -2517,7 +2584,7 @@
}, },
"primaryUpdateStrategy": { "primaryUpdateStrategy": {
"default": "unsupervised", "default": "unsupervised",
"description": "Strategy to follow to upgrade the primary server during a rolling update procedure, after all replicas have been successfully updated: it can be automated (`unsupervised` - default) or manual (`supervised`)", "description": "Deployment strategy to follow to upgrade the primary server during a rolling update procedure, after all replicas have been successfully updated: it can be automated (`unsupervised` - default) or manual (`supervised`)",
"enum": [ "enum": [
"unsupervised", "unsupervised",
"supervised" "supervised"
@ -2843,13 +2910,17 @@
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
"x-kubernetes-int-or-string": true "x-kubernetes-int-or-string": true
}, },
"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/", "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
"type": "object" "type": "object"
} }
}, },
"type": "object", "type": "object",
"additionalProperties": false "additionalProperties": false
}, },
"schedulerName": {
"description": "If specified, the pod will be dispatched by specified Kubernetes scheduler. If not specified, the pod will be dispatched by the default scheduler. More info: https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/",
"type": "string"
},
"seccompProfile": { "seccompProfile": {
"description": "The SeccompProfile applied to every Pod and Container. Defaults to: `RuntimeDefault`", "description": "The SeccompProfile applied to every Pod and Container. Defaults to: `RuntimeDefault`",
"properties": { "properties": {
@ -3029,7 +3100,7 @@
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
"x-kubernetes-int-or-string": true "x-kubernetes-int-or-string": true
}, },
"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/", "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
"type": "object" "type": "object"
} }
}, },
@ -3134,6 +3205,101 @@
"format": "int32", "format": "int32",
"type": "integer" "type": "integer"
}, },
"topologySpreadConstraints": {
"description": "TopologySpreadConstraints specifies how to spread matching pods among the given topology. More info: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/",
"items": {
"description": "TopologySpreadConstraint specifies how to spread matching pods among the given topology.",
"properties": {
"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.",
"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",
"additionalProperties": false
},
"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",
"x-kubernetes-map-type": "atomic",
"additionalProperties": false
},
"matchLabelKeys": {
"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. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).",
"items": {
"type": "string"
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"maxSkew": {
"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.",
"format": "int32",
"type": "integer"
},
"minDomains": {
"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).",
"format": "int32",
"type": "integer"
},
"nodeAffinityPolicy": {
"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 beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.",
"type": "string"
},
"nodeTaintsPolicy": {
"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 beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.",
"type": "string"
},
"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. 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.",
"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 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.",
"type": "string"
}
},
"required": [
"maxSkew",
"topologyKey",
"whenUnsatisfiable"
],
"type": "object",
"additionalProperties": false
},
"type": "array"
},
"walStorage": { "walStorage": {
"description": "Configuration of the storage for PostgreSQL WAL (Write-Ahead Log)", "description": "Configuration of the storage for PostgreSQL WAL (Write-Ahead Log)",
"properties": { "properties": {
@ -3252,7 +3418,7 @@
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
"x-kubernetes-int-or-string": true "x-kubernetes-int-or-string": true
}, },
"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/", "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
"type": "object" "type": "object"
} }
}, },

View File

@ -29,12 +29,66 @@
"type": "object", "type": "object",
"additionalProperties": false "additionalProperties": false
}, },
"deploymentStrategy": {
"description": "The deployment strategy to use for pgbouncer to replace existing pods with new ones",
"properties": {
"rollingUpdate": {
"description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. --- TODO: Update this to follow our convention for oneOf, whatever we decide it to be.",
"properties": {
"maxSurge": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
}
],
"description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.",
"x-kubernetes-int-or-string": true
},
"maxUnavailable": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
}
],
"description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.",
"x-kubernetes-int-or-string": true
}
},
"type": "object",
"additionalProperties": false
},
"type": {
"description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"instances": { "instances": {
"default": 1, "default": 1,
"description": "The number of replicas we want", "description": "The number of replicas we want",
"format": "int32", "format": "int32",
"type": "integer" "type": "integer"
}, },
"monitoring": {
"description": "The configuration of the monitoring infrastructure of this pooler.",
"properties": {
"enablePodMonitor": {
"default": false,
"description": "Enable or disable the `PodMonitor`",
"type": "boolean"
}
},
"type": "object",
"additionalProperties": false
},
"pgbouncer": { "pgbouncer": {
"description": "The PgBouncer configuration", "description": "The PgBouncer configuration",
"properties": { "properties": {
@ -1051,7 +1105,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -1155,7 +1209,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -1256,7 +1310,7 @@
"type": "integer" "type": "integer"
}, },
"grpc": { "grpc": {
"description": "GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.", "description": "GRPC specifies an action involving a GRPC port.",
"properties": { "properties": {
"port": { "port": {
"description": "Port number of the gRPC service. Number must be in the range 1 to 65535.", "description": "Port number of the gRPC service. Number must be in the range 1 to 65535.",
@ -1287,7 +1341,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -1455,7 +1509,7 @@
"type": "integer" "type": "integer"
}, },
"grpc": { "grpc": {
"description": "GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.", "description": "GRPC specifies an action involving a GRPC port.",
"properties": { "properties": {
"port": { "port": {
"description": "Port number of the gRPC service. Number must be in the range 1 to 65535.", "description": "Port number of the gRPC service. Number must be in the range 1 to 65535.",
@ -1486,7 +1540,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -1585,6 +1639,30 @@
"type": "object", "type": "object",
"additionalProperties": false "additionalProperties": false
}, },
"resizePolicy": {
"description": "Resources resize policy for the container.",
"items": {
"description": "ContainerResizePolicy represents resource resize policy for the container.",
"properties": {
"resourceName": {
"description": "Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.",
"type": "string"
},
"restartPolicy": {
"description": "Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired.",
"type": "string"
}
},
"required": [
"resourceName",
"restartPolicy"
],
"type": "object",
"additionalProperties": false
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"resources": { "resources": {
"description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
"properties": { "properties": {
@ -1639,7 +1717,7 @@
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
"x-kubernetes-int-or-string": true "x-kubernetes-int-or-string": true
}, },
"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/", "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
"type": "object" "type": "object"
} }
}, },
@ -1793,7 +1871,7 @@
"type": "integer" "type": "integer"
}, },
"grpc": { "grpc": {
"description": "GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.", "description": "GRPC specifies an action involving a GRPC port.",
"properties": { "properties": {
"port": { "port": {
"description": "Port number of the gRPC service. Number must be in the range 1 to 65535.", "description": "Port number of the gRPC service. Number must be in the range 1 to 65535.",
@ -1824,7 +1902,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -2298,7 +2376,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -2402,7 +2480,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -2503,7 +2581,7 @@
"type": "integer" "type": "integer"
}, },
"grpc": { "grpc": {
"description": "GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.", "description": "GRPC specifies an action involving a GRPC port.",
"properties": { "properties": {
"port": { "port": {
"description": "Port number of the gRPC service. Number must be in the range 1 to 65535.", "description": "Port number of the gRPC service. Number must be in the range 1 to 65535.",
@ -2534,7 +2612,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -2702,7 +2780,7 @@
"type": "integer" "type": "integer"
}, },
"grpc": { "grpc": {
"description": "GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.", "description": "GRPC specifies an action involving a GRPC port.",
"properties": { "properties": {
"port": { "port": {
"description": "Port number of the gRPC service. Number must be in the range 1 to 65535.", "description": "Port number of the gRPC service. Number must be in the range 1 to 65535.",
@ -2733,7 +2811,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -2832,6 +2910,30 @@
"type": "object", "type": "object",
"additionalProperties": false "additionalProperties": false
}, },
"resizePolicy": {
"description": "Resources resize policy for the container.",
"items": {
"description": "ContainerResizePolicy represents resource resize policy for the container.",
"properties": {
"resourceName": {
"description": "Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.",
"type": "string"
},
"restartPolicy": {
"description": "Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired.",
"type": "string"
}
},
"required": [
"resourceName",
"restartPolicy"
],
"type": "object",
"additionalProperties": false
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"resources": { "resources": {
"description": "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.", "description": "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.",
"properties": { "properties": {
@ -2886,7 +2988,7 @@
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
"x-kubernetes-int-or-string": true "x-kubernetes-int-or-string": true
}, },
"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/", "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
"type": "object" "type": "object"
} }
}, },
@ -3040,7 +3142,7 @@
"type": "integer" "type": "integer"
}, },
"grpc": { "grpc": {
"description": "GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.", "description": "GRPC specifies an action involving a GRPC port.",
"properties": { "properties": {
"port": { "port": {
"description": "Port number of the gRPC service. Number must be in the range 1 to 65535.", "description": "Port number of the gRPC service. Number must be in the range 1 to 65535.",
@ -3071,7 +3173,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -3560,7 +3662,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -3664,7 +3766,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -3765,7 +3867,7 @@
"type": "integer" "type": "integer"
}, },
"grpc": { "grpc": {
"description": "GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.", "description": "GRPC specifies an action involving a GRPC port.",
"properties": { "properties": {
"port": { "port": {
"description": "Port number of the gRPC service. Number must be in the range 1 to 65535.", "description": "Port number of the gRPC service. Number must be in the range 1 to 65535.",
@ -3796,7 +3898,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -3964,7 +4066,7 @@
"type": "integer" "type": "integer"
}, },
"grpc": { "grpc": {
"description": "GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.", "description": "GRPC specifies an action involving a GRPC port.",
"properties": { "properties": {
"port": { "port": {
"description": "Port number of the gRPC service. Number must be in the range 1 to 65535.", "description": "Port number of the gRPC service. Number must be in the range 1 to 65535.",
@ -3995,7 +4097,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -4094,6 +4196,30 @@
"type": "object", "type": "object",
"additionalProperties": false "additionalProperties": false
}, },
"resizePolicy": {
"description": "Resources resize policy for the container.",
"items": {
"description": "ContainerResizePolicy represents resource resize policy for the container.",
"properties": {
"resourceName": {
"description": "Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.",
"type": "string"
},
"restartPolicy": {
"description": "Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired.",
"type": "string"
}
},
"required": [
"resourceName",
"restartPolicy"
],
"type": "object",
"additionalProperties": false
},
"type": "array",
"x-kubernetes-list-type": "atomic"
},
"resources": { "resources": {
"description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/", "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
"properties": { "properties": {
@ -4148,7 +4274,7 @@
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
"x-kubernetes-int-or-string": true "x-kubernetes-int-or-string": true
}, },
"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/", "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
"type": "object" "type": "object"
} }
}, },
@ -4302,7 +4428,7 @@
"type": "integer" "type": "integer"
}, },
"grpc": { "grpc": {
"description": "GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.", "description": "GRPC specifies an action involving a GRPC port.",
"properties": { "properties": {
"port": { "port": {
"description": "Port number of the gRPC service. Number must be in the range 1 to 65535.", "description": "Port number of the gRPC service. Number must be in the range 1 to 65535.",
@ -4333,7 +4459,7 @@
"description": "HTTPHeader describes a custom header to be used in HTTP probes", "description": "HTTPHeader describes a custom header to be used in HTTP probes",
"properties": { "properties": {
"name": { "name": {
"description": "The header field name", "description": "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
"type": "string" "type": "string"
}, },
"value": { "value": {
@ -4638,7 +4764,7 @@
"x-kubernetes-list-type": "map" "x-kubernetes-list-type": "map"
}, },
"restartPolicy": { "restartPolicy": {
"description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy", "description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy",
"type": "string" "type": "string"
}, },
"runtimeClassName": { "runtimeClassName": {
@ -4650,7 +4776,7 @@
"type": "string" "type": "string"
}, },
"schedulingGates": { "schedulingGates": {
"description": "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. More info: https://git.k8s.io/enhancements/keps/sig-scheduling/3521-pod-scheduling-readiness. \n This is an alpha-level feature enabled by PodSchedulingReadiness feature gate.", "description": "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. \n SchedulingGates can only be set at pod creation time, and be removed only afterwards. \n This is a beta feature enabled by the PodSchedulingReadiness feature gate.",
"items": { "items": {
"description": "PodSchedulingGate is associated to a Pod to guard its scheduling.", "description": "PodSchedulingGate is associated to a Pod to guard its scheduling.",
"properties": { "properties": {
@ -4904,7 +5030,7 @@
"additionalProperties": false "additionalProperties": false
}, },
"matchLabelKeys": { "matchLabelKeys": {
"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.", "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. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. \n This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).",
"items": { "items": {
"type": "string" "type": "string"
}, },
@ -5314,7 +5440,7 @@
"type": "string" "type": "string"
} }
], ],
"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", "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: https://kubernetes.io/docs/concepts/storage/volumes#emptydir",
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
"x-kubernetes-int-or-string": true "x-kubernetes-int-or-string": true
} }
@ -5447,7 +5573,7 @@
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$", "pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
"x-kubernetes-int-or-string": true "x-kubernetes-int-or-string": true
}, },
"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/", "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
"type": "object" "type": "object"
} }
}, },