Production-ready Valkey operations for Kubernetes and OpenShift, with global Valtrix console integration.
- β¨ Highlights
- π Version Matrix
- ποΈ Core Concepts
- πΌοΈ Global Valtrix Web UI
- π‘ OpenShift OperatorHub Experience
- π οΈ Quick Install (OpenShift)
- π Deploy Global Valtrix
- π¦ Deploy a Valkey Cluster
- π Valtrix Configuration Reference
- β‘ Operational Commands
- π Troubleshooting
- β¬οΈ Upgrade Notes
- π Release Identity
- π License
Valkey Operator v1.0.9 delivers a stable API and an end-to-end platform experience for running sharded Valkey clusters:
- β
API promoted to
valkey.arencloud.com/v1 - π Global Valtrix support through
ValtrixConfig - π‘οΈ OpenShift-native route exposure for Valtrix
- βοΈ Built-in support for Valkey node actions (restart/failover controls)
- π¦ Release-aligned related images (operator/exporter/tools/valtrix)
- π Catalog and bundle support for OpenShift OperatorHub workflows
| Component | Image |
|---|---|
| Operator | quay.io/arencloud/valkey-operator:v1.0.9 |
| Valtrix | quay.io/arencloud/valtrix:v1.0.9 |
| Exporter | quay.io/arencloud/valkey-exporter:v1.0.9 |
| Tools | quay.io/arencloud/valkey-tools:v1.0.9 |
| Base Runtime | registry.access.redhat.com/hi/valkey:9 |
Defines a sharded Valkey deployment (shards + replicas), persistence, resources, and associated management sidecars.
Internal node-level status/resource managed by the operator.
Singleton/global Valtrix configuration designed for operator-namespace deployment and cluster-wide discovery.
The Valtrix Console is a single, unified entry point for all Valkey operations. It automatically adapts its interface, data visibility, and action controls based on the identity of the logged-in user through native OpenShift RBAC integration.
Unlike traditional dashboards, Valtrix doesn't require separate instances for different teams. One deployment serves the entire cluster, providing a tailored experience:
- π‘οΈ Identity-Aware: Uses OpenShift OAuth to identify the user.
- π’ Namespace Isolation: Automatically filters clusters, nodes, and logs based on namespace-level permissions.
- β‘ Permission-Gated Actions: Buttons for "Restart", "Failover", or "Delete" only appear if the user has the required
RoleorClusterRole.
Below is a side-by-side conceptual comparison of how the Global UI transforms based on who is logged in.
The Dashboard adapts instantly. Admins see the total fleet health across the entire OpenShift cluster, while Users see a streamlined view of only their projects.
π Cluster Admin View π€ Usual User View π‘ Full visibility of all shards and clusters. π‘ Focused view of authorized resources.
Resource discovery is permission-based. The same "Clusters" page dynamically filters its content.
π Cluster Admin View π€ Usual User View π Management of the entire fleet. π¦ Scoped to specific namespaces.
Auditability and exploration remain intact but isolated.
π Cluster Admin View π€ Usual User View π‘οΈ Cluster-wide governance. π Personalized activity stream.
The Valkey Operator is fully integrated with the OpenShift Operator Lifecycle Manager (OLM), providing a seamless "click-to-deploy" experience directly from the OpenShift Web Console.
The operator is discovered via the valkey-operator-catalog. Once installed, it appears in the Installed Operators section, managing its own lifecycle and dependencies.
| π¦ Installed Operator View | π Operator Details |
|---|---|
![]() |
![]() |
| π‘ Status, Version, and Capability level. | π‘ Detailed description and provided APIs. |
Administrators can manage ValkeyCluster and ValtrixConfig resources using native OpenShift forms and YAML editors, providing a consistent management interface alongside other OpenShift workloads.
| π Valkey Cluster Management | π Resource Inventory |
|---|---|
![]() |
![]() |
| π‘ Centralized view of all managed resources. | π‘ Live status of Valkey instances. |
oc create namespace valkey-operatorapiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
name: valkey-operator
namespace: valkey-operator
spec: {}Apply:
oc apply -f operatorgroup.yamlapiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: valkey-operator
namespace: valkey-operator
spec:
channel: stable
installPlanApproval: Automatic
name: valkey-operator
source: valkey-operator-catalog
sourceNamespace: openshift-marketplaceApply:
oc apply -f subscription.yamloc -n valkey-operator get subscription valkey-operator
oc -n valkey-operator get csv
oc -n valkey-operator get podsExpected CSV:
valkey-operator.v1.0.9inSucceededphase.
apiVersion: valkey.arencloud.com/v1
kind: ValtrixConfig
metadata:
name: global
namespace: valkey-operator
spec:
enabled: true
image: quay.io/arencloud/valtrix:v1.0.9
replicas: 1
port: 8080
enableNodeActions: true
exposeRoute: true
auth:
mode: openshiftApply:
oc apply -f valtrixconfig.yamlVerify:
oc -n valkey-operator get valtrixconfig global -o wide
oc -n valkey-operator get deploy,svc,route | grep valtrixapiVersion: valkey.arencloud.com/v1
kind: ValkeyCluster
metadata:
name: valkey-cluster-sample
namespace: valkey
spec:
image: registry.access.redhat.com/hi/valkey:9
shards: 3
replicas: 1
persistence:
size: 10GiApply:
oc new-project valkey || true
oc apply -f valkeycluster.yamlVerify:
oc -n valkey get valkeyclusters
oc -n valkey get pods
oc -n valkey get valkeynodesValtrixConfig.spec parameters:
- π’
enabled(bool): enable/disable global Valtrix deployment - πΌοΈ
image(string): Valtrix image - π₯
replicas(int): number of Valtrix replicas - π
port(int): container service port - β‘
enableNodeActions(bool): enables operational node actions - π£οΈ
exposeRoute(bool): auto-creates OpenShift route - π
auth.mode(none|openshift): auth model - π₯
auth.requiredGroups([]string): write action group allow-list - π€
auth.requiredUsers([]string): write action user allow-list
oc -n valkey-operator get pods
oc -n valkey-operator logs deploy/controller-manager --tail=200
oc -n valkey-operator get valtrixconfig global -o yamloc -n valkey-operator get route valtrixoc -n valkey get valkeyclusters
oc -n valkey describe valkeycluster valkey-cluster-sample
oc -n valkey delete valkeycluster valkey-cluster-sample- Ensure only one OperatorGroup exists in
valkey-operator. - Prefer
AllNamespacesscope (spec: {}) forv1.0.9. - Check OLM logs:
oc -n openshift-operator-lifecycle-manager logs deploy/olm-operator --tail=300
- Verify pod readiness:
oc -n valkey-operator get pods | grep valtrix - Check Valtrix status on CR:
oc -n valkey-operator get valtrixconfig global -o yaml
- Inspect pod logs and generated config:
oc -n valkey logs <pod-name> -c server oc -n valkey get pvc
From pre-v1 API versions:
- π Migrate manifests from
valkey.arencloud.io/v1alpha1tovalkey.arencloud.com/v1 - ποΈ Remove deprecated Valkey Admin resources (replaced by Valtrix flow)
- π Ensure catalogs/subscriptions point to
v1.0.9
- Operator version:
1.0.9 - Supported Platforms: OpenShift
4.18-4.21 - Channel:
stable - Suggested namespace:
valkey-operator - API group:
valkey.arencloud.com - API version:
v1
This project is distributed under the repository license terms.













