Skip to content

Commit

Permalink
feat: rolling update for Pipeline Vertex (#2040)
Browse files Browse the repository at this point in the history
Signed-off-by: Derek Wang <[email protected]>
  • Loading branch information
whynowy authored Sep 9, 2024
1 parent 2189ea9 commit c4b4d00
Show file tree
Hide file tree
Showing 29 changed files with 2,205 additions and 995 deletions.
21 changes: 17 additions & 4 deletions api/json-schema/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -17785,6 +17785,10 @@
"udf": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.UDF"
},
"updateStrategy": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.UpdateStrategy",
"description": "The strategy to use to replace existing pods with new ones."
},
"volumes": {
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.Volume"
Expand Down Expand Up @@ -20608,6 +20612,10 @@
"udf": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.UDF"
},
"updateStrategy": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.UpdateStrategy",
"description": "The strategy to use to replace existing pods with new ones."
},
"volumes": {
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.Volume"
Expand Down Expand Up @@ -20639,11 +20647,11 @@
"x-kubernetes-patch-strategy": "merge"
},
"currentHash": {
"description": "If not empty, indicates the version of the Vertex used to generate Pods in the sequence [0,currentReplicas).",
"description": "If not empty, indicates the current version of the Vertex used to generate Pods.",
"type": "string"
},
"currentReplicas": {
"description": "The number of Pods created by the controller from the Vertex version indicated by currentHash.",
"desiredReplicas": {
"description": "The number of desired replicas.",
"format": "int64",
"type": "integer"
},
Expand Down Expand Up @@ -20679,9 +20687,14 @@
"type": "string"
},
"updateHash": {
"description": "If not empty, indicates the version of the Vertx used to generate Pods in the sequence [replicas-updatedReplicas,replicas)",
"description": "If not empty, indicates the updated version of the Vertex used to generate Pods.",
"type": "string"
},
"updatedReadyReplicas": {
"description": "The number of ready Pods created by the controller from the Vertex version indicated by updateHash.",
"format": "int64",
"type": "integer"
},
"updatedReplicas": {
"description": "The number of Pods created by the controller from the Vertex version indicated by updateHash.",
"format": "int64",
Expand Down
21 changes: 17 additions & 4 deletions api/openapi-spec/swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -17793,6 +17793,10 @@
"udf": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.UDF"
},
"updateStrategy": {
"description": "The strategy to use to replace existing pods with new ones.",
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.UpdateStrategy"
},
"volumes": {
"type": "array",
"items": {
Expand Down Expand Up @@ -20590,6 +20594,10 @@
"udf": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.UDF"
},
"updateStrategy": {
"description": "The strategy to use to replace existing pods with new ones.",
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.UpdateStrategy"
},
"volumes": {
"type": "array",
"items": {
Expand Down Expand Up @@ -20617,11 +20625,11 @@
"x-kubernetes-patch-strategy": "merge"
},
"currentHash": {
"description": "If not empty, indicates the version of the Vertex used to generate Pods in the sequence [0,currentReplicas).",
"description": "If not empty, indicates the current version of the Vertex used to generate Pods.",
"type": "string"
},
"currentReplicas": {
"description": "The number of Pods created by the controller from the Vertex version indicated by currentHash.",
"desiredReplicas": {
"description": "The number of desired replicas.",
"type": "integer",
"format": "int64"
},
Expand Down Expand Up @@ -20657,9 +20665,14 @@
"type": "string"
},
"updateHash": {
"description": "If not empty, indicates the version of the Vertx used to generate Pods in the sequence [replicas-updatedReplicas,replicas)",
"description": "If not empty, indicates the updated version of the Vertex used to generate Pods.",
"type": "string"
},
"updatedReadyReplicas": {
"description": "The number of ready Pods created by the controller from the Vertex version indicated by updateHash.",
"type": "integer",
"format": "int64"
},
"updatedReplicas": {
"description": "The number of Pods created by the controller from the Vertex version indicated by updateHash.",
"type": "integer",
Expand Down
2 changes: 1 addition & 1 deletion config/advanced-install/minimal-crds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ spec:
- jsonPath: .status.phase
name: Phase
type: string
- jsonPath: .spec.replicas
- jsonPath: .status.desiredReplicas
name: Desired
type: string
- jsonPath: .status.replicas
Expand Down
17 changes: 17 additions & 0 deletions config/base/crds/full/numaflow.numaproj.io_pipelines.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9037,6 +9037,23 @@ spec:
- window
type: object
type: object
updateStrategy:
default:
rollingUpdate:
maxUnavailable: 25%
type: RollingUpdate
properties:
rollingUpdate:
properties:
maxUnavailable:
anyOf:
- type: integer
- type: string
x-kubernetes-int-or-string: true
type: object
type:
type: string
type: object
volumes:
items:
properties:
Expand Down
24 changes: 22 additions & 2 deletions config/base/crds/full/numaflow.numaproj.io_vertices.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ spec:
- jsonPath: .status.phase
name: Phase
type: string
- jsonPath: .spec.replicas
- jsonPath: .status.desiredReplicas
name: Desired
type: string
- jsonPath: .status.replicas
Expand Down Expand Up @@ -4701,6 +4701,23 @@ spec:
- window
type: object
type: object
updateStrategy:
default:
rollingUpdate:
maxUnavailable: 25%
type: RollingUpdate
properties:
rollingUpdate:
properties:
maxUnavailable:
anyOf:
- type: integer
- type: string
x-kubernetes-int-or-string: true
type: object
type:
type: string
type: object
volumes:
items:
properties:
Expand Down Expand Up @@ -5486,7 +5503,7 @@ spec:
type: array
currentHash:
type: string
currentReplicas:
desiredReplicas:
format: int32
type: integer
lastScaledAt:
Expand Down Expand Up @@ -5515,6 +5532,9 @@ spec:
type: string
updateHash:
type: string
updatedReadyReplicas:
format: int32
type: integer
updatedReplicas:
format: int32
type: integer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ spec:
- jsonPath: .status.phase
name: Phase
type: string
- jsonPath: .spec.replicas
- jsonPath: .status.desiredReplicas
name: Desired
type: string
- jsonPath: .status.replicas
Expand Down
41 changes: 39 additions & 2 deletions config/install.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17310,6 +17310,23 @@ spec:
- window
type: object
type: object
updateStrategy:
default:
rollingUpdate:
maxUnavailable: 25%
type: RollingUpdate
properties:
rollingUpdate:
properties:
maxUnavailable:
anyOf:
- type: integer
- type: string
x-kubernetes-int-or-string: true
type: object
type:
type: string
type: object
volumes:
items:
properties:
Expand Down Expand Up @@ -18168,7 +18185,7 @@ spec:
- jsonPath: .status.phase
name: Phase
type: string
- jsonPath: .spec.replicas
- jsonPath: .status.desiredReplicas
name: Desired
type: string
- jsonPath: .status.replicas
Expand Down Expand Up @@ -22848,6 +22865,23 @@ spec:
- window
type: object
type: object
updateStrategy:
default:
rollingUpdate:
maxUnavailable: 25%
type: RollingUpdate
properties:
rollingUpdate:
properties:
maxUnavailable:
anyOf:
- type: integer
- type: string
x-kubernetes-int-or-string: true
type: object
type:
type: string
type: object
volumes:
items:
properties:
Expand Down Expand Up @@ -23633,7 +23667,7 @@ spec:
type: array
currentHash:
type: string
currentReplicas:
desiredReplicas:
format: int32
type: integer
lastScaledAt:
Expand Down Expand Up @@ -23662,6 +23696,9 @@ spec:
type: string
updateHash:
type: string
updatedReadyReplicas:
format: int32
type: integer
updatedReplicas:
format: int32
type: integer
Expand Down
41 changes: 39 additions & 2 deletions config/namespace-install.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17310,6 +17310,23 @@ spec:
- window
type: object
type: object
updateStrategy:
default:
rollingUpdate:
maxUnavailable: 25%
type: RollingUpdate
properties:
rollingUpdate:
properties:
maxUnavailable:
anyOf:
- type: integer
- type: string
x-kubernetes-int-or-string: true
type: object
type:
type: string
type: object
volumes:
items:
properties:
Expand Down Expand Up @@ -18168,7 +18185,7 @@ spec:
- jsonPath: .status.phase
name: Phase
type: string
- jsonPath: .spec.replicas
- jsonPath: .status.desiredReplicas
name: Desired
type: string
- jsonPath: .status.replicas
Expand Down Expand Up @@ -22848,6 +22865,23 @@ spec:
- window
type: object
type: object
updateStrategy:
default:
rollingUpdate:
maxUnavailable: 25%
type: RollingUpdate
properties:
rollingUpdate:
properties:
maxUnavailable:
anyOf:
- type: integer
- type: string
x-kubernetes-int-or-string: true
type: object
type:
type: string
type: object
volumes:
items:
properties:
Expand Down Expand Up @@ -23633,7 +23667,7 @@ spec:
type: array
currentHash:
type: string
currentReplicas:
desiredReplicas:
format: int32
type: integer
lastScaledAt:
Expand Down Expand Up @@ -23662,6 +23696,9 @@ spec:
type: string
updateHash:
type: string
updatedReadyReplicas:
format: int32
type: integer
updatedReplicas:
format: int32
type: integer
Expand Down
Loading

0 comments on commit c4b4d00

Please sign in to comment.