MCPcopy Index your code
hub / github.com/OT-CONTAINER-KIT/redis-operator

github.com/OT-CONTAINER-KIT/redis-operator @v0.25.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.25.0 ↗ · + Follow
2,096 symbols 8,234 edges 146 files 364 documented · 17%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CI Pipeline GoReportCard GitHub go.mod Go version (subdirectory of monorepo) made-with-Go Docker License

A Golang-based Redis operator that will make/oversee Redis standalone and cluster mode setup on top of Kubernetes. It can create a Redis cluster setup with best practices on Cloud as well as the bare metal environment. Also, it provides an in-built monitoring capability using redis-exporter.

For documentation, please refer to https://redis-operator.opstree.dev/

Organizations that are using Redis Operator to manage their Redis workload can be found here. If your organization is also using Redis Operator, please feel free to add by creating a pull request

This operator only supports versions of Redis >=6.

Architecture

<img src="https://github.com/OT-CONTAINER-KIT/redis-operator/raw/v0.25.0/static/updated-redis-operator-architecture-using-meshery.jpg">

Purpose

There are multiple problems that people face while setting up Redis setup on Kubernetes, especially cluster type setup. The purpose of creating this operator is to provide an easy and production-ready interface for Redis setup that includes best-practices, security controls, monitoring, and management.

Supported Features

Here are the features which are supported by this operator:

  • Redis cluster and standalone mode setup
  • Redis cluster failover and recovery
  • Inbuilt monitoring with redis exporter
  • Password and password-less setup of Redis
  • TLS support for additional security layer
  • IPv4 and IPv6 support for Redis setup
  • Detailed monitoring Grafana dashboard

Check the Installation to deploy your first cluster with operator.

Image Compatibility

The operator supports Redis versions >=6.x. However, it is strongly recommended to use the latest stable version to ensure you have the latest security fixes and bug patches from upstream.

Container Images: - Redis: quay.io/opstree/redis - Sentinel: quay.io/opstree/redis-sentinel - Exporter: quay.io/opstree/redis-exporter

Monitoring with Prometheus

To monitor Redis performance we will be using Prometheus. In any case, extra Prometheus configuration will not be required because we will be using the Prometheus service discovery pattern. For that we already have set these annotations:

  annotations:
    redis.opstreelabs.in: "true"
    prometheus.io/scrape: "true"
    prometheus.io/port: "9121"

In addition to the annotations you have the possibility to deploy a ServiceMonitor for each of the Redis installations (configurable via Helm values file).

Contribution

Please see our CONTRIBUTING.md for details.

Release History

Please see our Release History for details.

Contact Information

This project is managed by OpsTree Solutions. For any queries or suggestions, you can reach out to us at opensource@opstree.com.

Join our Slack Channel: #redis-operator.

Extension points exported contracts — how you extend this code

LoggerInterface (Interface)
(no doc) [1 implementers]
mocks/log/logger.go
Healer (Interface)
(no doc) [1 implementers]
internal/controller/common/redis/heal.go
Client (Interface)
(no doc) [1 implementers]
internal/service/redis/client.go
StatefulSet (Interface)
(no doc) [1 implementers]
internal/k8sutils/statefulset.go
Checker (Interface)
(no doc) [1 implementers]
internal/controller/common/redis/check.go
Service (Interface)
(no doc) [1 implementers]
internal/service/redis/client.go
Logger (Interface)
(no doc)
internal/k8sutils/log/log.go

Core symbols most depended-on inside this repo

n
called by 2730
docs/themes/docsy/static/js/swagger-ui-bundle.js
n
called by 916
docs/themes/docsy/static/js/swagger-ui-standalone-preset.js
r
called by 720
docs/themes/docsy/static/js/swagger-ui-bundle.js
t
called by 544
docs/static/js/asciinema-player.js
o
called by 465
docs/themes/docsy/static/js/swagger-ui-bundle.js
e
called by 459
docs/static/js/asciinema-player.js
r
called by 345
docs/themes/docsy/static/js/swagger-ui-standalone-preset.js
i
called by 307
docs/themes/docsy/static/js/swagger-ui-bundle.js

Shape

Function 1,735
Method 259
Struct 85
Interface 7
FuncType 5
TypeAlias 5

Languages

TypeScript63%
Go37%

Modules by API surface

docs/static/js/asciinema-player.js897 symbols
docs/themes/docsy/static/js/swagger-ui-bundle.js198 symbols
docs/themes/docsy/static/js/swagger-ui-standalone-preset.js169 symbols
docs/themes/docsy/static/js/deflate.js42 symbols
internal/k8sutils/redis.go41 symbols
internal/k8sutils/statefulset.go37 symbols
api/common/v1beta2/zz_generated.deepcopy.go34 symbols
internal/service/redis/client.go28 symbols
internal/k8sutils/cluster-scaling.go25 symbols
api/common/v1beta2/common_types.go25 symbols
internal/k8sutils/statefulset_test.go20 symbols
api/rediscluster/v1beta2/zz_generated.deepcopy.go16 symbols

For agents

$ claude mcp add redis-operator \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page