You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement delayed termination to achieve zero downtime upgrades (#1159)
Problem:
During an upgrade of NGF, external clients can experience downtime.
Solution:
- Introduce configurable delayed termination.
- Add sleep subcommand to gateway binary
- Add lifecycle paramaters to helm to both nginx-gateway and nginx
containers.
- Add terminationGracePeriodSeconds parameter to helm.
- Add affinity parameter to helm (primary needed for testing to
prevent pods running on the same node).
- Rerun zero downtime non-functional tests.
Testing:
- Manual testing
SOLVES #1155
Co-authored-by: Saylor Berman <[email protected]>
Copy file name to clipboardExpand all lines: deploy/helm-chart/README.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -138,6 +138,7 @@ The following tables lists the configurable parameters of the NGINX Gateway Fabr
138
138
|`nginxGateway.image.repository`| The repository for the NGINX Gateway Fabric image. | ghcr.io/nginxinc/nginx-gateway-fabric |
139
139
|`nginxGateway.image.tag`| The tag for the NGINX Gateway Fabric image. | edge |
140
140
|`nginxGateway.image.pullPolicy`| The `imagePullPolicy` for the NGINX Gateway Fabric image. | Always |
141
+
|`nginxGateway.lifecycle`| The `lifecycle` of the nginx-gateway container. | {} |
141
142
|`nginxGateway.gatewayClassName`| The name of the GatewayClass for the NGINX Gateway Fabric deployment. | nginx |
142
143
|`nginxGateway.gatewayControllerName`| The name of the Gateway controller. The controller name must be of the form: DOMAIN/PATH. The controller's domain is gateway.nginx.org. | gateway.nginx.org/nginx-gateway-controller |
143
144
|`nginxGateway.kind`| The kind of the NGINX Gateway Fabric installation - currently, only Deployment is supported. | deployment |
@@ -151,6 +152,9 @@ The following tables lists the configurable parameters of the NGINX Gateway Fabr
151
152
|`nginx.image.repository`| The repository for the NGINX image. | ghcr.io/nginxinc/nginx-gateway-fabric/nginx |
152
153
|`nginx.image.tag`| The tag for the NGINX image. | edge |
153
154
|`nginx.image.pullPolicy`| The `imagePullPolicy` for the NGINX image. | Always |
155
+
|`nginx.lifecycle`| The `lifecycle` of the nginx container. | {} |
156
+
|`terminationGracePeriodSeconds`| The termination grace period of the NGINX Gateway Fabric pod. | 30 |
157
+
|`affinity`| The `affinity` of the NGINX Gateway Fabric pod. | {} |
154
158
|`serviceAccount.annotations`| The `annotations` for the ServiceAccount used by the NGINX Gateway Fabric deployment. | {} |
155
159
|`serviceAccount.name`| Name of the ServiceAccount used by the NGINX Gateway Fabric deployment. | Autogenerated |
156
160
|`service.create`| Creates a service to expose the NGINX Gateway Fabric pods. | true |
0 commit comments