Skip to content

arencloud/valkey-operator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Valkey Operator v1.0.9

Production-ready Valkey operations for Kubernetes and OpenShift, with global Valtrix console integration.


πŸ“‘ Table of Contents


✨ Highlights

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

πŸ“Š Version Matrix (v1.0.9)

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

πŸ—οΈ Core Concepts

πŸ”Ή ValkeyCluster (v1)

Defines a sharded Valkey deployment (shards + replicas), persistence, resources, and associated management sidecars.

πŸ”Ή ValkeyNode (v1)

Internal node-level status/resource managed by the operator.

πŸ”Ή ValtrixConfig (v1)

Singleton/global Valtrix configuration designed for operator-namespace deployment and cluster-wide discovery.


πŸ–ΌοΈ Global Valtrix Web UI

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.


🎨 Dynamic Multi-Tenant Experience

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 Role or ClusterRole.

πŸ‘‘ Admin vs πŸ‘€ User Perspectives

Below is a side-by-side conceptual comparison of how the Global UI transforms based on who is logged in.

πŸ–₯️ Global Dashboard

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
Global Overview User Overview
πŸ’‘ Full visibility of all shards and clusters. πŸ’‘ Focused view of authorized resources.

πŸ’Ž Cluster & Node Inventory

Resource discovery is permission-based. The same "Clusters" page dynamically filters its content.

πŸ‘‘ Cluster Admin View πŸ‘€ Usual User View
Clusters List User Clusters
Node Details User Nodes
πŸš€ Management of the entire fleet. πŸ“¦ Scoped to specific namespaces.

πŸ” Governance & API

Auditability and exploration remain intact but isolated.

πŸ‘‘ Cluster Admin View πŸ‘€ Usual User View
Audit Logs User Audit
API View User API
πŸ›‘οΈ Cluster-wide governance. πŸ“‘ Personalized activity stream.

🎑 OpenShift OperatorHub Experience

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.


πŸ” Operator Discovery & Installation

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
Installed Operator Operator Details
πŸ’‘ Status, Version, and Capability level. πŸ’‘ Detailed description and provided APIs.

πŸ’Ž Managing Valkey Resources

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
Operator View Valkey Clusters
πŸ’‘ Centralized view of all managed resources. πŸ’‘ Live status of Valkey instances.

πŸ› οΈ Quick Install (OpenShift)

1️⃣ Create namespace

oc create namespace valkey-operator

2️⃣ Create OperatorGroup (AllNamespaces)

apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
  name: valkey-operator
  namespace: valkey-operator
spec: {}

Apply:

oc apply -f operatorgroup.yaml

3️⃣ Create Subscription

apiVersion: 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-marketplace

Apply:

oc apply -f subscription.yaml

4️⃣ Verify installation

oc -n valkey-operator get subscription valkey-operator
oc -n valkey-operator get csv
oc -n valkey-operator get pods

Expected CSV: valkey-operator.v1.0.9 in Succeeded phase.


🌐 Deploy Global Valtrix

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: openshift

Apply:

oc apply -f valtrixconfig.yaml

Verify:

oc -n valkey-operator get valtrixconfig global -o wide
oc -n valkey-operator get deploy,svc,route | grep valtrix

πŸ“¦ Deploy a Valkey Cluster

apiVersion: 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: 10Gi

Apply:

oc new-project valkey || true
oc apply -f valkeycluster.yaml

Verify:

oc -n valkey get valkeyclusters
oc -n valkey get pods
oc -n valkey get valkeynodes

πŸ“– Valtrix Configuration Reference

ValtrixConfig.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

⚑ Operational Commands

🩺 Health checks

oc -n valkey-operator get pods
oc -n valkey-operator logs deploy/controller-manager --tail=200
oc -n valkey-operator get valtrixconfig global -o yaml

πŸ›£οΈ Route access

oc -n valkey-operator get route valtrix

πŸ”„ Cluster lifecycle

oc -n valkey get valkeyclusters
oc -n valkey describe valkeycluster valkey-cluster-sample
oc -n valkey delete valkeycluster valkey-cluster-sample

πŸ” Troubleshooting

πŸ›‘ CSV stuck / install not progressing

  • Ensure only one OperatorGroup exists in valkey-operator.
  • Prefer AllNamespaces scope (spec: {}) for v1.0.9.
  • Check OLM logs:
    oc -n openshift-operator-lifecycle-manager logs deploy/olm-operator --tail=300

🌐 Valtrix route exists but app not reachable

  • 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

πŸ’Ύ Cluster pods failing on storage/config

  • Inspect pod logs and generated config:
    oc -n valkey logs <pod-name> -c server
    oc -n valkey get pvc

⬆️ Upgrade Notes

From pre-v1 API versions:

  • πŸ”„ Migrate manifests from valkey.arencloud.io/v1alpha1 to valkey.arencloud.com/v1
  • πŸ—‘οΈ Remove deprecated Valkey Admin resources (replaced by Valtrix flow)
  • πŸ“ Ensure catalogs/subscriptions point to v1.0.9

πŸ†” Release Identity

  • 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

πŸ“œ License

This project is distributed under the repository license terms.

About

OpenShift Valkey Operator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors