diff --git a/charts/arcadedb/README.md b/charts/arcadedb/README.md index 4bee9f0..919b5f5 100644 --- a/charts/arcadedb/README.md +++ b/charts/arcadedb/README.md @@ -218,6 +218,7 @@ Opt-in, behavior-preserving observability (ArcadeDB 26.7.1+). Every knob below d | Name | Description | Value | |--------------------------------------------|---------------------------------------------------|---------| | `observability.health.readinessRequiresHA` | /api/v1/ready waits for Raft join on HA clusters | `false` | +| `observability.health.readinessHAMaxLag` | Max Raft log entries a follower may lag behind commit index and still report Ready (requires readinessRequiresHA) | `100` | Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example: diff --git a/charts/arcadedb/templates/_helpers.tpl b/charts/arcadedb/templates/_helpers.tpl index 3fcb56f..2727766 100644 --- a/charts/arcadedb/templates/_helpers.tpl +++ b/charts/arcadedb/templates/_helpers.tpl @@ -203,6 +203,7 @@ All opt-in; emits nothing when defaults are unchanged. {{- end }} {{- if $health.readinessRequiresHA }} - -Darcadedb.server.readinessRequiresHA=true +- -Darcadedb.server.readinessHAMaxLag={{ $health.readinessHAMaxLag }} {{- end }} {{- end -}} diff --git a/charts/arcadedb/tests/observability_test.yaml b/charts/arcadedb/tests/observability_test.yaml index 648be0d..aed2c5a 100644 --- a/charts/arcadedb/tests/observability_test.yaml +++ b/charts/arcadedb/tests/observability_test.yaml @@ -19,6 +19,9 @@ tests: - notContains: path: spec.template.spec.containers[0].command content: "-Darcadedb.server.readinessRequiresHA=true" + - notContains: + path: spec.template.spec.containers[0].command + content: "-Darcadedb.server.readinessHAMaxLag=100" - notContains: path: spec.template.spec.containers[0].command content: "-Darcadedb.server.logIncludeTrace=true" @@ -79,13 +82,33 @@ tests: path: spec.template.spec.containers[0].command content: "-Darcadedb.serverMetrics.tracing.samplingRate=0.1" - - it: readinessRequiresHA emits the arg + - it: readinessRequiresHA emits the arg plus the default readinessHAMaxLag set: observability.health.readinessRequiresHA: true asserts: - contains: path: spec.template.spec.containers[0].command content: "-Darcadedb.server.readinessRequiresHA=true" + - contains: + path: spec.template.spec.containers[0].command + content: "-Darcadedb.server.readinessHAMaxLag=100" + + - it: readinessHAMaxLag can be overridden + set: + observability.health.readinessRequiresHA: true + observability.health.readinessHAMaxLag: 25 + asserts: + - contains: + path: spec.template.spec.containers[0].command + content: "-Darcadedb.server.readinessHAMaxLag=25" + + - it: readinessHAMaxLag is not emitted when readinessRequiresHA is false + set: + observability.health.readinessHAMaxLag: 25 + asserts: + - notContains: + path: spec.template.spec.containers[0].command + content: "-Darcadedb.server.readinessHAMaxLag=25" - it: renders without panic when observability is explicitly null set: diff --git a/charts/arcadedb/values.yaml b/charts/arcadedb/values.yaml index 8e853c8..8dc61c3 100644 --- a/charts/arcadedb/values.yaml +++ b/charts/arcadedb/values.yaml @@ -341,3 +341,5 @@ observability: health: ## @param observability.health.readinessRequiresHA /api/v1/ready waits for Raft join on HA clusters readinessRequiresHA: false + ## @param observability.health.readinessHAMaxLag Max Raft log entries a follower may lag behind commit index and still report Ready (requires readinessRequiresHA) + readinessHAMaxLag: 100