mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-09 12:07:47 +00:00
apf: add API changes for borrowing by exempt pl
This commit is contained in:
parent
5c72df7281
commit
3d3240c8b4
@ -377,6 +377,14 @@ type PriorityLevelConfigurationSpec struct {
|
||||
// This field must be non-empty if and only if `type` is `"Limited"`.
|
||||
// +optional
|
||||
Limited *LimitedPriorityLevelConfiguration
|
||||
|
||||
// `exempt` specifies how requests are handled for an exempt priority level.
|
||||
// This field MUST be empty if `type` is `"Limited"`.
|
||||
// This field MAY be non-empty if `type` is `"Exempt"`.
|
||||
// If empty and `type` is `"Exempt"` then the default values
|
||||
// for `ExemptPriorityLevelConfiguration` apply.
|
||||
// +optional
|
||||
Exempt *ExemptPriorityLevelConfiguration
|
||||
}
|
||||
|
||||
// PriorityLevelEnablement indicates whether limits on execution are enabled for the priority level
|
||||
@ -406,10 +414,10 @@ type LimitedPriorityLevelConfiguration struct {
|
||||
// Limited priority levels in proportion to their NCS values:
|
||||
//
|
||||
// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs )
|
||||
// sum_ncs = sum[limited priority level k] NCS(k)
|
||||
// sum_ncs = sum[priority level k] NCS(k)
|
||||
//
|
||||
// Bigger numbers mean a larger nominal concurrency limit,
|
||||
// at the expense of every other Limited priority level.
|
||||
// at the expense of every other priority level.
|
||||
// This field has a default value of 30.
|
||||
// +optional
|
||||
NominalConcurrencyShares int32
|
||||
@ -447,6 +455,43 @@ type LimitedPriorityLevelConfiguration struct {
|
||||
BorrowingLimitPercent *int32
|
||||
}
|
||||
|
||||
// ExemptPriorityLevelConfiguration describes the configurable aspects
|
||||
// of the handling of exempt requests.
|
||||
// In the mandatory exempt configuration object the values in the fields
|
||||
// here can be modified by authorized users, unlike the rest of the `spec`.
|
||||
type ExemptPriorityLevelConfiguration struct {
|
||||
// `nominalConcurrencyShares` (NCS) contributes to the computation of the
|
||||
// NominalConcurrencyLimit (NominalCL) of this level.
|
||||
// This is the number of execution seats nominally reserved for this priority level.
|
||||
// This DOES NOT limit the dispatching from this priority level
|
||||
// but affects the other priority levels through the borrowing mechanism.
|
||||
// The server's concurrency limit (ServerCL) is divided among all the
|
||||
// priority levels in proportion to their NCS values:
|
||||
//
|
||||
// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs )
|
||||
// sum_ncs = sum[priority level k] NCS(k)
|
||||
//
|
||||
// Bigger numbers mean a larger nominal concurrency limit,
|
||||
// at the expense of every other priority level.
|
||||
// This field has a default value of zero.
|
||||
// +optional
|
||||
NominalConcurrencyShares int32
|
||||
// `lendablePercent` prescribes the fraction of the level's NominalCL that
|
||||
// can be borrowed by other priority levels. This value of this
|
||||
// field must be between 0 and 100, inclusive, and it defaults to 0.
|
||||
// The number of seats that other levels can borrow from this level, known
|
||||
// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.
|
||||
//
|
||||
// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )
|
||||
//
|
||||
// +optional
|
||||
LendablePercent *int32
|
||||
// The `BorrowingCL` of an Exempt priority level is implicitly `ServerCL`.
|
||||
// In other words, an exempt priority level
|
||||
// has no meaningful limit on how much it borrows.
|
||||
// There is no explicit representation of that here.
|
||||
}
|
||||
|
||||
// LimitResponse defines how to handle requests that can not be executed right now.
|
||||
// +union
|
||||
type LimitResponse struct {
|
||||
|
@ -399,6 +399,14 @@ type PriorityLevelConfigurationSpec struct {
|
||||
// This field must be non-empty if and only if `type` is `"Limited"`.
|
||||
// +optional
|
||||
Limited *LimitedPriorityLevelConfiguration `json:"limited,omitempty" protobuf:"bytes,2,opt,name=limited"`
|
||||
|
||||
// `exempt` specifies how requests are handled for an exempt priority level.
|
||||
// This field MUST be empty if `type` is `"Limited"`.
|
||||
// This field MAY be non-empty if `type` is `"Exempt"`.
|
||||
// If empty and `type` is `"Exempt"` then the default values
|
||||
// for `ExemptPriorityLevelConfiguration` apply.
|
||||
// +optional
|
||||
Exempt *ExemptPriorityLevelConfiguration `json:"exempt,omitempty" protobuf:"bytes,3,opt,name=exempt"`
|
||||
}
|
||||
|
||||
// PriorityLevelEnablement indicates whether limits on execution are enabled for the priority level
|
||||
@ -469,6 +477,43 @@ type LimitedPriorityLevelConfiguration struct {
|
||||
BorrowingLimitPercent *int32 `json:"borrowingLimitPercent,omitempty" protobuf:"varint,4,opt,name=borrowingLimitPercent"`
|
||||
}
|
||||
|
||||
// ExemptPriorityLevelConfiguration describes the configurable aspects
|
||||
// of the handling of exempt requests.
|
||||
// In the mandatory exempt configuration object the values in the fields
|
||||
// here can be modified by authorized users, unlike the rest of the `spec`.
|
||||
type ExemptPriorityLevelConfiguration struct {
|
||||
// `nominalConcurrencyShares` (NCS) contributes to the computation of the
|
||||
// NominalConcurrencyLimit (NominalCL) of this level.
|
||||
// This is the number of execution seats nominally reserved for this priority level.
|
||||
// This DOES NOT limit the dispatching from this priority level
|
||||
// but affects the other priority levels through the borrowing mechanism.
|
||||
// The server's concurrency limit (ServerCL) is divided among all the
|
||||
// priority levels in proportion to their NCS values:
|
||||
//
|
||||
// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs )
|
||||
// sum_ncs = sum[priority level k] NCS(k)
|
||||
//
|
||||
// Bigger numbers mean a larger nominal concurrency limit,
|
||||
// at the expense of every other priority level.
|
||||
// This field has a default value of zero.
|
||||
// +optional
|
||||
NominalConcurrencyShares int32 `json:"nominalConcurrencyShares" protobuf:"varint,1,opt,name=nominalConcurrencyShares"`
|
||||
// `lendablePercent` prescribes the fraction of the level's NominalCL that
|
||||
// can be borrowed by other priority levels. This value of this
|
||||
// field must be between 0 and 100, inclusive, and it defaults to 0.
|
||||
// The number of seats that other levels can borrow from this level, known
|
||||
// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.
|
||||
//
|
||||
// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )
|
||||
//
|
||||
// +optional
|
||||
LendablePercent *int32 `json:"lendablePercent,omitempty" protobuf:"varint,2,opt,name=lendablePercent"`
|
||||
// The `BorrowingCL` of an Exempt priority level is implicitly `ServerCL`.
|
||||
// In other words, an exempt priority level
|
||||
// has no meaningful limit on how much it borrows.
|
||||
// There is no explicit representation of that here.
|
||||
}
|
||||
|
||||
// LimitResponse defines how to handle requests that can not be executed right now.
|
||||
// +union
|
||||
type LimitResponse struct {
|
||||
|
@ -435,6 +435,14 @@ type PriorityLevelConfigurationSpec struct {
|
||||
// This field must be non-empty if and only if `type` is `"Limited"`.
|
||||
// +optional
|
||||
Limited *LimitedPriorityLevelConfiguration `json:"limited,omitempty" protobuf:"bytes,2,opt,name=limited"`
|
||||
|
||||
// `exempt` specifies how requests are handled for an exempt priority level.
|
||||
// This field MUST be empty if `type` is `"Limited"`.
|
||||
// This field MAY be non-empty if `type` is `"Exempt"`.
|
||||
// If empty and `type` is `"Exempt"` then the default values
|
||||
// for `ExemptPriorityLevelConfiguration` apply.
|
||||
// +optional
|
||||
Exempt *ExemptPriorityLevelConfiguration `json:"exempt,omitempty" protobuf:"bytes,3,opt,name=exempt"`
|
||||
}
|
||||
|
||||
// PriorityLevelEnablement indicates whether limits on execution are enabled for the priority level
|
||||
@ -505,6 +513,43 @@ type LimitedPriorityLevelConfiguration struct {
|
||||
BorrowingLimitPercent *int32 `json:"borrowingLimitPercent,omitempty" protobuf:"varint,4,opt,name=borrowingLimitPercent"`
|
||||
}
|
||||
|
||||
// ExemptPriorityLevelConfiguration describes the configurable aspects
|
||||
// of the handling of exempt requests.
|
||||
// In the mandatory exempt configuration object the values in the fields
|
||||
// here can be modified by authorized users, unlike the rest of the `spec`.
|
||||
type ExemptPriorityLevelConfiguration struct {
|
||||
// `nominalConcurrencyShares` (NCS) contributes to the computation of the
|
||||
// NominalConcurrencyLimit (NominalCL) of this level.
|
||||
// This is the number of execution seats nominally reserved for this priority level.
|
||||
// This DOES NOT limit the dispatching from this priority level
|
||||
// but affects the other priority levels through the borrowing mechanism.
|
||||
// The server's concurrency limit (ServerCL) is divided among all the
|
||||
// priority levels in proportion to their NCS values:
|
||||
//
|
||||
// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs )
|
||||
// sum_ncs = sum[priority level k] NCS(k)
|
||||
//
|
||||
// Bigger numbers mean a larger nominal concurrency limit,
|
||||
// at the expense of every other priority level.
|
||||
// This field has a default value of zero.
|
||||
// +optional
|
||||
NominalConcurrencyShares int32 `json:"nominalConcurrencyShares" protobuf:"varint,1,opt,name=nominalConcurrencyShares"`
|
||||
// `lendablePercent` prescribes the fraction of the level's NominalCL that
|
||||
// can be borrowed by other priority levels. This value of this
|
||||
// field must be between 0 and 100, inclusive, and it defaults to 0.
|
||||
// The number of seats that other levels can borrow from this level, known
|
||||
// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.
|
||||
//
|
||||
// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )
|
||||
//
|
||||
// +optional
|
||||
LendablePercent *int32 `json:"lendablePercent,omitempty" protobuf:"varint,2,opt,name=lendablePercent"`
|
||||
// The `BorrowingCL` of an Exempt priority level is implicitly `ServerCL`.
|
||||
// In other words, an exempt priority level
|
||||
// has no meaningful limit on how much it borrows.
|
||||
// There is no explicit representation of that here.
|
||||
}
|
||||
|
||||
// LimitResponse defines how to handle requests that can not be executed right now.
|
||||
// +union
|
||||
type LimitResponse struct {
|
||||
|
@ -435,6 +435,14 @@ type PriorityLevelConfigurationSpec struct {
|
||||
// This field must be non-empty if and only if `type` is `"Limited"`.
|
||||
// +optional
|
||||
Limited *LimitedPriorityLevelConfiguration `json:"limited,omitempty" protobuf:"bytes,2,opt,name=limited"`
|
||||
|
||||
// `exempt` specifies how requests are handled for an exempt priority level.
|
||||
// This field MUST be empty if `type` is `"Limited"`.
|
||||
// This field MAY be non-empty if `type` is `"Exempt"`.
|
||||
// If empty and `type` is `"Exempt"` then the default values
|
||||
// for `ExemptPriorityLevelConfiguration` apply.
|
||||
// +optional
|
||||
Exempt *ExemptPriorityLevelConfiguration `json:"exempt,omitempty" protobuf:"bytes,3,opt,name=exempt"`
|
||||
}
|
||||
|
||||
// PriorityLevelEnablement indicates whether limits on execution are enabled for the priority level
|
||||
@ -505,6 +513,43 @@ type LimitedPriorityLevelConfiguration struct {
|
||||
BorrowingLimitPercent *int32 `json:"borrowingLimitPercent,omitempty" protobuf:"varint,4,opt,name=borrowingLimitPercent"`
|
||||
}
|
||||
|
||||
// ExemptPriorityLevelConfiguration describes the configurable aspects
|
||||
// of the handling of exempt requests.
|
||||
// In the mandatory exempt configuration object the values in the fields
|
||||
// here can be modified by authorized users, unlike the rest of the `spec`.
|
||||
type ExemptPriorityLevelConfiguration struct {
|
||||
// `nominalConcurrencyShares` (NCS) contributes to the computation of the
|
||||
// NominalConcurrencyLimit (NominalCL) of this level.
|
||||
// This is the number of execution seats nominally reserved for this priority level.
|
||||
// This DOES NOT limit the dispatching from this priority level
|
||||
// but affects the other priority levels through the borrowing mechanism.
|
||||
// The server's concurrency limit (ServerCL) is divided among all the
|
||||
// priority levels in proportion to their NCS values:
|
||||
//
|
||||
// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs )
|
||||
// sum_ncs = sum[priority level k] NCS(k)
|
||||
//
|
||||
// Bigger numbers mean a larger nominal concurrency limit,
|
||||
// at the expense of every other priority level.
|
||||
// This field has a default value of zero.
|
||||
// +optional
|
||||
NominalConcurrencyShares int32 `json:"nominalConcurrencyShares" protobuf:"varint,1,opt,name=nominalConcurrencyShares"`
|
||||
// `lendablePercent` prescribes the fraction of the level's NominalCL that
|
||||
// can be borrowed by other priority levels. This value of this
|
||||
// field must be between 0 and 100, inclusive, and it defaults to 0.
|
||||
// The number of seats that other levels can borrow from this level, known
|
||||
// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.
|
||||
//
|
||||
// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )
|
||||
//
|
||||
// +optional
|
||||
LendablePercent *int32 `json:"lendablePercent,omitempty" protobuf:"varint,2,opt,name=lendablePercent"`
|
||||
// The `BorrowingCL` of an Exempt priority level is implicitly `ServerCL`.
|
||||
// In other words, an exempt priority level
|
||||
// has no meaningful limit on how much it borrows.
|
||||
// There is no explicit representation of that here.
|
||||
}
|
||||
|
||||
// LimitResponse defines how to handle requests that can not be executed right now.
|
||||
// +union
|
||||
type LimitResponse struct {
|
||||
|
@ -433,6 +433,14 @@ type PriorityLevelConfigurationSpec struct {
|
||||
// This field must be non-empty if and only if `type` is `"Limited"`.
|
||||
// +optional
|
||||
Limited *LimitedPriorityLevelConfiguration `json:"limited,omitempty" protobuf:"bytes,2,opt,name=limited"`
|
||||
|
||||
// `exempt` specifies how requests are handled for an exempt priority level.
|
||||
// This field MUST be empty if `type` is `"Limited"`.
|
||||
// This field MAY be non-empty if `type` is `"Exempt"`.
|
||||
// If empty and `type` is `"Exempt"` then the default values
|
||||
// for `ExemptPriorityLevelConfiguration` apply.
|
||||
// +optional
|
||||
Exempt *ExemptPriorityLevelConfiguration `json:"exempt,omitempty" protobuf:"bytes,3,opt,name=exempt"`
|
||||
}
|
||||
|
||||
// PriorityLevelEnablement indicates whether limits on execution are enabled for the priority level
|
||||
@ -462,10 +470,10 @@ type LimitedPriorityLevelConfiguration struct {
|
||||
// Limited priority levels in proportion to their NCS values:
|
||||
//
|
||||
// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs )
|
||||
// sum_ncs = sum[limited priority level k] NCS(k)
|
||||
// sum_ncs = sum[priority level k] NCS(k)
|
||||
//
|
||||
// Bigger numbers mean a larger nominal concurrency limit,
|
||||
// at the expense of every other Limited priority level.
|
||||
// at the expense of every other priority level.
|
||||
// This field has a default value of 30.
|
||||
// +optional
|
||||
NominalConcurrencyShares int32 `json:"nominalConcurrencyShares" protobuf:"varint,1,opt,name=nominalConcurrencyShares"`
|
||||
@ -503,6 +511,43 @@ type LimitedPriorityLevelConfiguration struct {
|
||||
BorrowingLimitPercent *int32 `json:"borrowingLimitPercent,omitempty" protobuf:"varint,4,opt,name=borrowingLimitPercent"`
|
||||
}
|
||||
|
||||
// ExemptPriorityLevelConfiguration describes the configurable aspects
|
||||
// of the handling of exempt requests.
|
||||
// In the mandatory exempt configuration object the values in the fields
|
||||
// here can be modified by authorized users, unlike the rest of the `spec`.
|
||||
type ExemptPriorityLevelConfiguration struct {
|
||||
// `nominalConcurrencyShares` (NCS) contributes to the computation of the
|
||||
// NominalConcurrencyLimit (NominalCL) of this level.
|
||||
// This is the number of execution seats nominally reserved for this priority level.
|
||||
// This DOES NOT limit the dispatching from this priority level
|
||||
// but affects the other priority levels through the borrowing mechanism.
|
||||
// The server's concurrency limit (ServerCL) is divided among all the
|
||||
// priority levels in proportion to their NCS values:
|
||||
//
|
||||
// NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs )
|
||||
// sum_ncs = sum[priority level k] NCS(k)
|
||||
//
|
||||
// Bigger numbers mean a larger nominal concurrency limit,
|
||||
// at the expense of every other priority level.
|
||||
// This field has a default value of zero.
|
||||
// +optional
|
||||
NominalConcurrencyShares int32 `json:"nominalConcurrencyShares" protobuf:"varint,1,opt,name=nominalConcurrencyShares"`
|
||||
// `lendablePercent` prescribes the fraction of the level's NominalCL that
|
||||
// can be borrowed by other priority levels. This value of this
|
||||
// field must be between 0 and 100, inclusive, and it defaults to 0.
|
||||
// The number of seats that other levels can borrow from this level, known
|
||||
// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.
|
||||
//
|
||||
// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )
|
||||
//
|
||||
// +optional
|
||||
LendablePercent *int32 `json:"lendablePercent,omitempty" protobuf:"varint,2,opt,name=lendablePercent"`
|
||||
// The `BorrowingCL` of an Exempt priority level is implicitly `ServerCL`.
|
||||
// In other words, an exempt priority level
|
||||
// has no meaningful limit on how much it borrows.
|
||||
// There is no explicit representation of that here.
|
||||
}
|
||||
|
||||
// LimitResponse defines how to handle requests that can not be executed right now.
|
||||
// +union
|
||||
type LimitResponse struct {
|
||||
|
Loading…
Reference in New Issue
Block a user