Skip to content

Commit f2da093

Browse files
authored
feat: parallel deployment and better readiness check (#26)
## Summary by Sourcery Enable parallel rolling updates of validator StatefulSets and tighten readiness checks by updating probe thresholds and frequency New Features: - Enable parallel deployment of validator pods by setting podManagementPolicy to Parallel Enhancements: - Adjust readiness probe to require at least one peer and reduce probe period to 5 seconds
1 parent d86fa21 commit f2da093

3 files changed

Lines changed: 5 additions & 4 deletions

File tree

charts/network/charts/network-nodes/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ A Helm chart for Kubernetes
8282
| initContainers.shared | list|string | `[]` | Init containers applied to both validator and RPC pods. |
8383
| initContainers.validator | list|string | `[]` | Additional init containers exclusively for validator pods. |
8484
| livenessProbe.failureThreshold | int | `3` | Consecutive failures required before the container is restarted. |
85-
| livenessProbe.httpGet.path | string | `"/liveness"` | HTTP path used for liveness probing. |
85+
| livenessProbe.httpGet.path | string | `"/readiness?minPeers=1&maxBlocksBehind=100"` | HTTP path used for liveness probing. |
8686
| livenessProbe.httpGet.port | string|int | `"json-rpc"` | Target container port serving the liveness endpoint. |
8787
| livenessProbe.initialDelaySeconds | int | `30` | Seconds to wait before starting liveness checks. |
8888
| livenessProbe.periodSeconds | int | `10` | Frequency of liveness checks in seconds. |
@@ -122,7 +122,7 @@ A Helm chart for Kubernetes
122122
| readinessProbe.httpGet.path | string | `"/readiness?minPeers=0&maxBlocksBehind=100"` | HTTP path used for readiness probing, including peer/sync thresholds. |
123123
| readinessProbe.httpGet.port | string|int | `"json-rpc"` | Target container port serving the readiness endpoint. |
124124
| readinessProbe.initialDelaySeconds | int | `15` | Seconds to wait before starting readiness checks. |
125-
| readinessProbe.periodSeconds | int | `10` | Frequency of readiness checks in seconds. |
125+
| readinessProbe.periodSeconds | int | `5` | Frequency of readiness checks in seconds. |
126126
| readinessProbe.timeoutSeconds | int | `2` | Timeout in seconds before marking the probe as failed. |
127127
| resources | object | `{}` | |
128128
| rpcReplicaCount | int | `2` | Number of RPC node replicas provisioned via StatefulSet. |

charts/network/charts/network-nodes/templates/statefulset-validator.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ spec:
3535
{{- $initContainers := .Values.initContainers | default (dict) }}
3636
{{- $sharedInitContainers := get $initContainers "shared" }}
3737
{{- $validatorInitContainers := get $initContainers "validator" }}
38+
podManagementPolicy: Parallel
3839
replicas: {{ $validatorReplicaBudget }}
3940
serviceName: {{ include "nodes.fullname" . }}
4041
{{- if and $useClaimTemplate (or (ne $whenDeleted "") (ne $whenScaled "")) }}

charts/network/charts/network-nodes/values.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ livenessProbe:
334334
# HTTP GET probe configuration hitting the Besu liveness endpoint.
335335
httpGet:
336336
# -- (string) HTTP path used for liveness probing.
337-
path: /liveness
337+
path: /readiness?minPeers=1&maxBlocksBehind=100
338338
# -- (string|int) Target container port serving the liveness endpoint.
339339
port: json-rpc
340340
# -- (int) Seconds to wait before starting liveness checks.
@@ -357,7 +357,7 @@ readinessProbe:
357357
# -- (int) Seconds to wait before starting readiness checks.
358358
initialDelaySeconds: 15
359359
# -- (int) Frequency of readiness checks in seconds.
360-
periodSeconds: 10
360+
periodSeconds: 5
361361
# -- (int) Timeout in seconds before marking the probe as failed.
362362
timeoutSeconds: 2
363363
# -- (int) Consecutive failures required before the pod is considered unready.

0 commit comments

Comments
 (0)