--- api_metadata: apiVersion: "flowcontrol.apiserver.k8s.io/v1beta2" import: "k8s.io/api/flowcontrol/v1beta2" kind: "PriorityLevelConfiguration" content_type: "api_reference" description: "PriorityLevelConfiguration represents the configuration of a priority level." title: "PriorityLevelConfiguration v1beta2" weight: 8 auto_generated: true --- `apiVersion: flowcontrol.apiserver.k8s.io/v1beta2` `import "k8s.io/api/flowcontrol/v1beta2"` ## PriorityLevelConfiguration {#PriorityLevelConfiguration} PriorityLevelConfiguration represents the configuration of a priority level.
- **apiVersion**: flowcontrol.apiserver.k8s.io/v1beta2 - **kind**: PriorityLevelConfiguration - **metadata** (}}">ObjectMeta) `metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - **spec** (}}">PriorityLevelConfigurationSpec) `spec` is the specification of the desired behavior of a "request-priority". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status - **status** (}}">PriorityLevelConfigurationStatus) `status` is the current status of a "request-priority". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status ## PriorityLevelConfigurationSpec {#PriorityLevelConfigurationSpec} PriorityLevelConfigurationSpec specifies the configuration of a priority level.
- **type** (string), required `type` indicates whether this priority level is subject to limitation on request execution. A value of `"Exempt"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `"Limited"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required. - **limited** (LimitedPriorityLevelConfiguration) `limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `"Limited"`. *LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues: * How are requests for this priority level limited? * What should be done with requests that exceed the limit?* - **limited.assuredConcurrencyShares** (int32) `assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the number of requests of this priority level that may be exeucting at a given time. ACS must be a positive number. The server's concurrency limit (SCL) is divided among the concurrency-controlled priority levels in proportion to their assured concurrency shares. This produces the assured concurrency value (ACV) --- the number of requests that may be executing at a time --- for each such priority level: ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) ) bigger numbers of ACS mean more reserved concurrent requests (at the expense of every other PL). This field has a default value of 30. - **limited.limitResponse** (LimitResponse) `limitResponse` indicates what to do with requests that can not be executed right now *LimitResponse defines how to handle requests that can not be executed right now.* - **limited.limitResponse.type** (string), required `type` is "Queue" or "Reject". "Queue" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. "Reject" means that requests that can not be executed upon arrival are rejected. Required. - **limited.limitResponse.queuing** (QueuingConfiguration) `queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `"Queue"`. *QueuingConfiguration holds the configuration parameters for queuing* - **limited.limitResponse.queuing.handSize** (int32) `handSize` is a small positive number that configures the shuffle sharding of requests into queues. When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here. The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues). See the user-facing documentation for more extensive guidance on setting this field. This field has a default value of 8. - **limited.limitResponse.queuing.queueLengthLimit** (int32) `queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected. This value must be positive. If not specified, it will be defaulted to 50. - **limited.limitResponse.queuing.queues** (int32) `queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive. Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant. This field has a default value of 64. ## PriorityLevelConfigurationStatus {#PriorityLevelConfigurationStatus} PriorityLevelConfigurationStatus represents the current state of a "request-priority".
- **conditions** ([]PriorityLevelConfigurationCondition) *Map: unique values on key type will be kept during a merge* `conditions` is the current state of "request-priority". *PriorityLevelConfigurationCondition defines the condition of priority level.* - **conditions.lastTransitionTime** (Time) `lastTransitionTime` is the last time the condition transitioned from one status to another. *Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.* - **conditions.message** (string) `message` is a human-readable message indicating details about last transition. - **conditions.reason** (string) `reason` is a unique, one-word, CamelCase reason for the condition's last transition. - **conditions.status** (string) `status` is the status of the condition. Can be True, False, Unknown. Required. - **conditions.type** (string) `type` is the type of the condition. Required. ## PriorityLevelConfigurationList {#PriorityLevelConfigurationList} PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.
- **apiVersion**: flowcontrol.apiserver.k8s.io/v1beta2 - **kind**: PriorityLevelConfigurationList - **metadata** (}}">ListMeta) `metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - **items** ([]}}">PriorityLevelConfiguration), required `items` is a list of request-priorities. ## Operations {#Operations}
### `get` read the specified PriorityLevelConfiguration #### HTTP Request GET /apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/{name} #### Parameters - **name** (*in path*): string, required name of the PriorityLevelConfiguration - **pretty** (*in query*): string }}">pretty #### Response 200 (}}">PriorityLevelConfiguration): OK 401: Unauthorized ### `get` read status of the specified PriorityLevelConfiguration #### HTTP Request GET /apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/{name}/status #### Parameters - **name** (*in path*): string, required name of the PriorityLevelConfiguration - **pretty** (*in query*): string }}">pretty #### Response 200 (}}">PriorityLevelConfiguration): OK 401: Unauthorized ### `list` list or watch objects of kind PriorityLevelConfiguration #### HTTP Request GET /apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations #### Parameters - **allowWatchBookmarks** (*in query*): boolean }}">allowWatchBookmarks - **continue** (*in query*): string }}">continue - **fieldSelector** (*in query*): string }}">fieldSelector - **labelSelector** (*in query*): string }}">labelSelector - **limit** (*in query*): integer }}">limit - **pretty** (*in query*): string }}">pretty - **resourceVersion** (*in query*): string }}">resourceVersion - **resourceVersionMatch** (*in query*): string }}">resourceVersionMatch - **timeoutSeconds** (*in query*): integer }}">timeoutSeconds - **watch** (*in query*): boolean }}">watch #### Response 200 (}}">PriorityLevelConfigurationList): OK 401: Unauthorized ### `create` create a PriorityLevelConfiguration #### HTTP Request POST /apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations #### Parameters - **body**: }}">PriorityLevelConfiguration, required - **dryRun** (*in query*): string }}">dryRun - **fieldManager** (*in query*): string }}">fieldManager - **fieldValidation** (*in query*): string }}">fieldValidation - **pretty** (*in query*): string }}">pretty #### Response 200 (}}">PriorityLevelConfiguration): OK 201 (}}">PriorityLevelConfiguration): Created 202 (}}">PriorityLevelConfiguration): Accepted 401: Unauthorized ### `update` replace the specified PriorityLevelConfiguration #### HTTP Request PUT /apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/{name} #### Parameters - **name** (*in path*): string, required name of the PriorityLevelConfiguration - **body**: }}">PriorityLevelConfiguration, required - **dryRun** (*in query*): string }}">dryRun - **fieldManager** (*in query*): string }}">fieldManager - **fieldValidation** (*in query*): string }}">fieldValidation - **pretty** (*in query*): string }}">pretty #### Response 200 (}}">PriorityLevelConfiguration): OK 201 (}}">PriorityLevelConfiguration): Created 401: Unauthorized ### `update` replace status of the specified PriorityLevelConfiguration #### HTTP Request PUT /apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/{name}/status #### Parameters - **name** (*in path*): string, required name of the PriorityLevelConfiguration - **body**: }}">PriorityLevelConfiguration, required - **dryRun** (*in query*): string }}">dryRun - **fieldManager** (*in query*): string }}">fieldManager - **fieldValidation** (*in query*): string }}">fieldValidation - **pretty** (*in query*): string }}">pretty #### Response 200 (}}">PriorityLevelConfiguration): OK 201 (}}">PriorityLevelConfiguration): Created 401: Unauthorized ### `patch` partially update the specified PriorityLevelConfiguration #### HTTP Request PATCH /apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/{name} #### Parameters - **name** (*in path*): string, required name of the PriorityLevelConfiguration - **body**: }}">Patch, required - **dryRun** (*in query*): string }}">dryRun - **fieldManager** (*in query*): string }}">fieldManager - **fieldValidation** (*in query*): string }}">fieldValidation - **force** (*in query*): boolean }}">force - **pretty** (*in query*): string }}">pretty #### Response 200 (}}">PriorityLevelConfiguration): OK 201 (}}">PriorityLevelConfiguration): Created 401: Unauthorized ### `patch` partially update status of the specified PriorityLevelConfiguration #### HTTP Request PATCH /apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/{name}/status #### Parameters - **name** (*in path*): string, required name of the PriorityLevelConfiguration - **body**: }}">Patch, required - **dryRun** (*in query*): string }}">dryRun - **fieldManager** (*in query*): string }}">fieldManager - **fieldValidation** (*in query*): string }}">fieldValidation - **force** (*in query*): boolean }}">force - **pretty** (*in query*): string }}">pretty #### Response 200 (}}">PriorityLevelConfiguration): OK 201 (}}">PriorityLevelConfiguration): Created 401: Unauthorized ### `delete` delete a PriorityLevelConfiguration #### HTTP Request DELETE /apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/{name} #### Parameters - **name** (*in path*): string, required name of the PriorityLevelConfiguration - **body**: }}">DeleteOptions - **dryRun** (*in query*): string }}">dryRun - **gracePeriodSeconds** (*in query*): integer }}">gracePeriodSeconds - **pretty** (*in query*): string }}">pretty - **propagationPolicy** (*in query*): string }}">propagationPolicy #### Response 200 (}}">Status): OK 202 (}}">Status): Accepted 401: Unauthorized ### `deletecollection` delete collection of PriorityLevelConfiguration #### HTTP Request DELETE /apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations #### Parameters - **body**: }}">DeleteOptions - **continue** (*in query*): string }}">continue - **dryRun** (*in query*): string }}">dryRun - **fieldSelector** (*in query*): string }}">fieldSelector - **gracePeriodSeconds** (*in query*): integer }}">gracePeriodSeconds - **labelSelector** (*in query*): string }}">labelSelector - **limit** (*in query*): integer }}">limit - **pretty** (*in query*): string }}">pretty - **propagationPolicy** (*in query*): string }}">propagationPolicy - **resourceVersion** (*in query*): string }}">resourceVersion - **resourceVersionMatch** (*in query*): string }}">resourceVersionMatch - **timeoutSeconds** (*in query*): integer }}">timeoutSeconds #### Response 200 (}}">Status): OK 401: Unauthorized