Merge pull request #40937 from thaJeztah/split_resource_types
API: split types for Resources Reservations and Limits
This commit is contained in:
commit
fa38a6cd21
3 changed files with 25 additions and 4 deletions
|
@ -625,6 +625,20 @@ definitions:
|
|||
type: "integer"
|
||||
format: "int64"
|
||||
|
||||
Limit:
|
||||
description: |
|
||||
An object describing a limit on resources which can be requested by a task.
|
||||
type: "object"
|
||||
properties:
|
||||
NanoCPUs:
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
example: 4000000000
|
||||
MemoryBytes:
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
example: 8272408576
|
||||
|
||||
ResourceObject:
|
||||
description: |
|
||||
An object describing the resources which can be advertised by a node and
|
||||
|
@ -3262,7 +3276,7 @@ definitions:
|
|||
properties:
|
||||
Limits:
|
||||
description: "Define resources limits."
|
||||
$ref: "#/definitions/ResourceObject"
|
||||
$ref: "#/definitions/Limit"
|
||||
Reservation:
|
||||
description: "Define resources reservation."
|
||||
$ref: "#/definitions/ResourceObject"
|
||||
|
|
|
@ -91,13 +91,20 @@ type TaskSpec struct {
|
|||
Runtime RuntimeType `json:",omitempty"`
|
||||
}
|
||||
|
||||
// Resources represents resources (CPU/Memory).
|
||||
// Resources represents resources (CPU/Memory) which can be advertised by a
|
||||
// node and requested to be reserved for a task.
|
||||
type Resources struct {
|
||||
NanoCPUs int64 `json:",omitempty"`
|
||||
MemoryBytes int64 `json:",omitempty"`
|
||||
GenericResources []GenericResource `json:",omitempty"`
|
||||
}
|
||||
|
||||
// Limit describes limits on resources which can be requested by a task.
|
||||
type Limit struct {
|
||||
NanoCPUs int64 `json:",omitempty"`
|
||||
MemoryBytes int64 `json:",omitempty"`
|
||||
}
|
||||
|
||||
// GenericResource represents a "user defined" resource which can
|
||||
// be either an integer (e.g: SSD=3) or a string (e.g: SSD=sda1)
|
||||
type GenericResource struct {
|
||||
|
@ -125,7 +132,7 @@ type DiscreteGenericResource struct {
|
|||
|
||||
// ResourceRequirements represents resources requirements.
|
||||
type ResourceRequirements struct {
|
||||
Limits *Resources `json:",omitempty"`
|
||||
Limits *Limit `json:",omitempty"`
|
||||
Reservations *Resources `json:",omitempty"`
|
||||
}
|
||||
|
||||
|
|
|
@ -401,7 +401,7 @@ func resourcesFromGRPC(res *swarmapi.ResourceRequirements) *types.ResourceRequir
|
|||
if res != nil {
|
||||
resources = &types.ResourceRequirements{}
|
||||
if res.Limits != nil {
|
||||
resources.Limits = &types.Resources{
|
||||
resources.Limits = &types.Limit{
|
||||
NanoCPUs: res.Limits.NanoCPUs,
|
||||
MemoryBytes: res.Limits.MemoryBytes,
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue