浏览代码

Merge pull request #40937 from thaJeztah/split_resource_types

API: split types for Resources Reservations and Limits
Tibor Vass 5 年之前
父节点
当前提交
fa38a6cd21
共有 3 个文件被更改,包括 25 次插入4 次删除
  1. 15 1
      api/swagger.yaml
  2. 9 2
      api/types/swarm/task.go
  3. 1 1
      daemon/cluster/convert/service.go

+ 15 - 1
api/swagger.yaml

@@ -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"

+ 9 - 2
api/types/swarm/task.go

@@ -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"`
 }
 

+ 1 - 1
daemon/cluster/convert/service.go

@@ -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,
 			}