Current Limitations
The following boundaries apply to the 2.0.0 documentation baseline.
TOC
Management interfaceServer versionsBackup, restore, and disaster recoveryFixed NodePort assignmentPersistent volume behaviorMonitoring integrationScheduling policy implementationTLS endpoint and client-certificate boundaryModulesConfiguration filteringFeatures not implemented by the OperatorManagement interface
There is no Web Console. All operations require CLI tools or Kubernetes API automation.
Server versions
Only Valkey 7.2, 8.1, and 9.1 are supported. An installed custom resource
definition (CRD) may still accept 8.0 or 9.0 for compatibility with upstream
API history. That does not establish product support: the 2.0.0 Operator image
map selects only 7.2, 8.1, and 9.1, and the pinned image source builds only
those three lines.
The inspected Helm Chart CRD copy is stale and omits 9.0 and 9.1, while the
API source and canonical generated CRD include both. Verify that the delivered
2.0.0 package installs a schema that admits 9.1. A missing 9.1 enum is a package
defect, not a reason to bypass admission.
Backup, restore, and disaster recovery
The Valkey Operator does not support backup, restore, or disaster recovery. It does not provide a backup resource, restore workflow, scheduled backup controller, cross-cluster replication, cross-cluster failover, or disaster-recovery API. High availability within one Kubernetes cluster is not backup or disaster recovery. No disaster-recovery procedure is included in this product documentation.
Fixed NodePort assignment
spec.access.ports exists in the API, but the inspected 2.0.0 source has
incompatible formats in the generated CRD schema and the runtime parser. Leave the
field unset so Kubernetes allocates NodePorts unless your delivered build provides
a documented and validated format.
Persistent volume behavior
In the inspected baseline, spec.storage.retainAfterDeleted has no effect:
generated persistent volume claims (PVCs) never carry an owner reference to the
instance, and no Operator reconcile path deletes them, so deleting an instance
always leaves its PVCs behind. Before deleting an instance, list its PVCs;
afterwards, remove unneeded PVCs explicitly once their data is confirmed
disposable.
spec.storage.accessMode is accepted by the schema and defaults to
ReadWriteOnce, but the StatefulSet builders always request ReadWriteOnce;
another value is not applied.
Monitoring integration
The exporter sidecar and metrics Services are implemented with
redis_exporter. The inspected Operator source does not establish complete
metric compatibility with every 9.1 command or field. Validate the required
metrics against the delivered exporter image. The shipped ServiceMonitor
selects Operator metrics, not Valkey data-plane metrics; create and test the
data-plane scrape configuration required by your monitoring stack.
Scheduling policy implementation
For Cluster architecture, the inspected implementation applies both
AntiAffinityInShard and AntiAffinity only within each shard. It does not
enforce one node per Pod across the whole instance. The API literal
CustomAffinity also does not match the internal constant used by the Cluster
StatefulSet builder, so spec.customAffinity is not reliably applied to Cluster
Pods in this baseline. In addition, the Cluster reconcile path preserves each
existing StatefulSet's current Pod affinity on update, so an affinity change on
an existing Cluster instance takes effect only for StatefulSets created
afterward, such as new shards. Failover and Replica copy spec.customAffinity
directly and do not use the high-level affinityPolicy to select it. See
Configure scheduling.
TLS endpoint and client-certificate boundary
The Operator-generated server certificate covers a limited set of generated
in-cluster names; it does not include arbitrary NodePort addresses,
LoadBalancer addresses, or every .svc form. For Cluster architecture, it also
does not cover the per-Pod Service names or addresses announced to clients.
Therefore a bootstrap TLS connection can pass hostname verification while a
redirected connection fails it. Do not treat the standard generated-certificate
path as a complete production Cluster TLS solution unless the delivered build
aligns every announced endpoint with a certificate subject alternative name.
Valkey also requires a trusted client certificate by default because the
generated server arguments do not disable TLS client authentication. Clients
need the trusted certificate authority (CA) plus a trusted client certificate
and private key. Do not distribute the instance server private key as a general
client credential. The Operator's internal clients disable server-name
verification; that internal implementation is not a safe configuration model
for application clients. Do not use --insecure as the workaround.
Modules
spec.modules renders startup loadmodule directives only. The inspected 2.0.0
container source installs no module files, and the high-level API has no server
image override. Treat modules as unavailable with the standard images unless a
delivered build explicitly supplies and validates the requested module.
Configuration filtering
rename-command is marked restart-required in one source map but is skipped by
both the Cluster and Failover configuration renderers, so it is unavailable in
this baseline. Forbidden configuration keys, including credential and
TLS-passphrase directives, are filtered case-insensitively on the Cluster,
Failover, and Sentinel configuration paths; a case variant cannot bypass the
Operator-owned list.
Verify the generated ConfigMap and the effective server configuration. On the
delivered server images, CONFIG GET reports a set requirepass or
primaryauth value as a fixed redaction placeholder, not the credential.
Features not implemented by the Operator
- integrated large-key inspection and report export;
- parameter templates;
- integrated log viewer;
- automatic cross-cluster replication or failover;
- an Operator-managed backup repository or restore job.
The absence of an integrated large-key report does not prevent a controlled
manual investigation with valkey-cli. See
Analyze large keys with valkey-cli
for the operational impact and Cluster coverage requirements.