Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions src/data/playground-configs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1661,6 +1661,42 @@ export const chartConfigs: Record<string, ChartConfig> = {
default: '3',
description: 'Sentinel pod count',
},
{
label: 'Sentinel Pod Policy',
key: 'sentinel.podManagementPolicy',
type: 'select',
default: '',
options: ['', 'OrderedReady', 'Parallel'],
description: 'StatefulSet pod startup policy',
},
{
label: 'Graceful Failover',
key: 'sentinel.gracefulFailover.enabled',
type: 'toggle',
default: 'true',
description: 'Fail over before master shutdown',
},
{
label: 'Graceful Attempts',
key: 'sentinel.gracefulFailover.maxAttempts',
type: 'number',
default: '12',
description: 'preStop failover attempts',
},
{
label: 'Startup Guard',
key: 'sentinel.startupFailoverGuard.enabled',
type: 'toggle',
default: 'true',
description: 'Prevent empty master resume',
},
{
label: 'Startup Attempts',
key: 'sentinel.startupFailoverGuard.maxAttempts',
type: 'number',
default: '20',
description: 'Startup failover attempts',
},
{
label: 'Cluster Nodes',
key: 'cluster.nodes',
Expand Down
11 changes: 11 additions & 0 deletions src/pages/docs/charts/valkey.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,12 @@ pdb:
Keep at least three Sentinels and choose a quorum that matches the failure domains. Validate application reconnect
behavior before production rollout.

The chart enables Sentinel failover hardening by default. `sentinel.gracefulFailover.enabled` triggers a bounded
preStop failover when the active master is voluntarily terminated, and `sentinel.startupFailoverGuard.enabled` prevents
a fresh data directory from resuming as an empty master while peers still hold data. Keep
`sentinel.podManagementPolicy` empty for upgrade compatibility on existing StatefulSets; use `Parallel` only for new
installs where immutable StatefulSet fields are acceptable.

## Cluster

Cluster mode is for native sharding and requires Valkey Cluster-compatible clients:
Expand Down Expand Up @@ -292,6 +298,11 @@ client understands Sentinel discovery or Cluster redirects.
| `standalone.persistence.enabled` | `true` | Persist standalone data. |
| `replication.replicaCount` | `2` | Replica count for replication modes. |
| `sentinel.replicaCount` | `3` | Number of Sentinel pods. |
| `sentinel.podManagementPolicy` | `""` | Optional Sentinel StatefulSet pod management policy. |
| `sentinel.gracefulFailover.enabled` | `true` | Trigger preStop failover when the active master shuts down. |
| `sentinel.gracefulFailover.maxAttempts` | `12` | Failover confirmation attempts during graceful shutdown. |
| `sentinel.startupFailoverGuard.enabled` | `true` | Prevent fresh pods from resuming as empty masters. |
| `sentinel.startupFailoverGuard.maxAttempts` | `20` | Failover confirmation attempts during startup guard handling. |
| `cluster.nodes` | `6` | Total cluster pods. |
| `cluster.initJob.securityContext.runAsUser` | `999` | Cluster bootstrap Job container user ID. |
| `service.type` | `ClusterIP` | Client Service type where applicable. |
Expand Down
1 change: 1 addition & 0 deletions src/pages/playground.astro
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ const siteSyncPlaygroundConfigs: Record<string, string> = {
memcached: 'src/data/playground-configs.ts',
notediscovery: 'src/data/playground-configs.ts',
poznote: 'src/data/playground-configs.ts',
valkey: 'src/data/playground-configs.ts',
};
const configuredChartSlugs = new Set([...Object.keys(mergedConfigs), ...Object.keys(siteSyncPlaygroundConfigs)]);
const playgroundCharts = charts.filter(
Expand Down