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
Original file line number Diff line number Diff line change
@@ -0,0 +1,341 @@
apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
annotations:
alm-examples: |-
[
{
"apiVersion": "redis.redis.opstreelabs.in/v1beta2",
"kind": "Redis",
"metadata": {
"name": "redis-standalone"
},
"spec": {
"kubernetesConfig": {
"image": "quay.io/opstree/redis:v7.0.12",
"imagePullPolicy": "IfNotPresent"
}
}
},
{
"apiVersion": "redis.redis.opstreelabs.in/v1beta2",
"kind": "RedisCluster",
"metadata": {
"name": "redis-cluster"
},
"spec": {
"clusterSize": 3,
"kubernetesConfig": {
"image": "quay.io/opstree/redis:v7.0.12",
"imagePullPolicy": "IfNotPresent"
}
}
}
]
capabilities: Deep Insights
categories: Database
certified: "false"
containerImage: quay.io/opstree/redis-operator:v0.18.1
createdAt: "2025-10-03T05:48:27Z"
description: Redis Operator v0.18.1 brings enhanced stateful set management with minReadySeconds support, improved operator deployment with tolerations and image pull secrets, comprehensive monitoring via ServiceMonitor for Redis Sentinel, and enhanced reliability through readiness/liveness probes. Includes Redis 7.0.15 upgrade for better performance and security.
operators.operatorframework.io/builder: operator-sdk-v1.28.0+git
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
repository: https://github.com/OT-CONTAINER-KIT/redis-operator
support: OpsTree Solutions
name: redis-operator.v0.18.1
namespace: placeholder
spec:
apiservicedefinitions: {}
customresourcedefinitions:
owned:
- description: Redis is the Schema for the redis API
displayName: Redis
kind: Redis
name: redis.redis.redis.opstreelabs.in
version: v1beta2
- description: RedisCluster is the Schema for the redisclusters API
displayName: Redis Cluster
kind: RedisCluster
name: redisclusters.redis.redis.opstreelabs.in
version: v1beta2
- description: RedisReplication is the Schema for the redisreplications API
displayName: Redis Replication
kind: RedisReplication
name: redisreplications.redis.redis.opstreelabs.in
version: v1beta2
- description: RedisSentinel is the Schema for the redissentinels API
displayName: Redis Sentinel
kind: RedisSentinel
name: redissentinels.redis.redis.opstreelabs.in
version: v1beta2
description: |
## Redis Operator v0.18.1

The Redis Operator is a comprehensive, production-grade Kubernetes operator that simplifies the deployment, management, and monitoring of Redis instances on Kubernetes clusters. Built with Go and following cloud-native best practices, this operator supports both standalone and cluster Redis deployments with enterprise-level features.

### Key Features

**🚀 Deployment Modes:**
- Redis Standalone: Single-instance Redis deployment
- Redis Cluster: Highly available Redis cluster with automatic sharding
- Redis Replication: Master-slave replication setup with automatic failover
- Redis Sentinel: High availability with automatic master discovery and failover

**🔒 Security & Authentication:**
- TLS/SSL encryption support for secure communications
- Access Control Lists (ACL) for fine-grained user permissions
- Password-based and password-less authentication
- Pod security contexts and security constraints

**📊 Monitoring & Observability:**
- Built-in Redis Exporter integration for Prometheus metrics
- Comprehensive Grafana dashboards for performance monitoring
- ServiceMonitor support for automatic Prometheus discovery
- Health checks with configurable liveness and readiness probes

### Prerequisites
- Kubernetes 1.18.0+
- 2 CPU cores and 4GB RAM (recommended)
- StorageClass for persistent storage (for stateful deployments)

### Quick Start

1. Install the operator:
```bash
kubectl create namespace redis-operator
kubectl apply -f https://raw.githubusercontent.com/OT-CONTAINER-KIT/redis-operator/v0.18.1/config/samples/redis_v1beta2_redis.yaml
```

2. Create a Redis instance:
```yaml
apiVersion: redis.redis.opstreelabs.in/v1beta2
kind: Redis
metadata:
name: redis-standalone
spec:
kubernetesConfig:
image: quay.io/opstree/redis:v7.0.12
imagePullPolicy: IfNotPresent
```

For more examples and documentation, visit: https://redis-operator.opstree.dev/
displayName: Redis Operator
icon:
- base64data: iVBORw0KGgoAAAANSUhEUgAAAKsAAACrCAYAAAAZ6GwZAAAACXBIWXMAAAsSAAALEgHS3X78AAANq0lEQVR4nO2da2wUVRiGX7q0tLRcpFwKCFgQFBEQBBEQQUAQFUQQUEEQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQQFUQ=
mediatype: image/png
install:
spec:
clusterPermissions:
- rules:
- apiGroups:
- apps
resources:
- statefulsets
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- configmaps
- events
- persistentvolumeclaims
- pods
- services
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- redis.redis.opstreelabs.in
resources:
- redis
- redisclusters
- redisreplications
- redissentinels
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- redis.redis.opstreelabs.in
resources:
- redis/finalizers
- redisclusters/finalizers
- redisreplications/finalizers
- redissentinels/finalizers
verbs:
- update
- apiGroups:
- redis.redis.opstreelabs.in
resources:
- redis/status
- redisclusters/status
- redisreplications/status
- redissentinels/status
verbs:
- get
- patch
- update
serviceAccountName: redis-operator-controller-manager
deployments:
- name: redis-operator-controller-manager
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/component: manager
app.kubernetes.io/created-by: redis-operator
app.kubernetes.io/instance: controller-manager
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: deployment
app.kubernetes.io/part-of: redis-operator
control-plane: controller-manager
strategy: {}
template:
metadata:
annotations:
kubectl.kubernetes.io/default-container: manager
labels:
app.kubernetes.io/component: manager
app.kubernetes.io/created-by: redis-operator
app.kubernetes.io/instance: controller-manager
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/name: deployment
app.kubernetes.io/part-of: redis-operator
control-plane: controller-manager
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/arch
operator: In
values:
- amd64
- arm64
- ppc64le
- s390x
- key: kubernetes.io/os
operator: In
values:
- linux
containers:
- args:
- --secure-listen-address=0.0.0.0:8443
- --upstream=http://127.0.0.1:8080/
- --logtostderr=true
- --v=0
image: gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1
name: kube-rbac-proxy
ports:
- containerPort: 8443
name: https
protocol: TCP
resources:
limits:
cpu: 500m
memory: 128Mi
requests:
cpu: 5m
memory: 64Mi
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
- args:
- --health-probe-bind-address=:8081
- --metrics-bind-address=127.0.0.1:8080
- --leader-elect
command:
- /manager
image: quay.io/opstree/redis-operator:v0.18.1
livenessProbe:
httpGet:
path: /healthz
port: 8081
initialDelaySeconds: 15
periodSeconds: 20
name: manager
readinessProbe:
httpGet:
path: /readyz
port: 8081
initialDelaySeconds: 5
periodSeconds: 10
resources:
limits:
cpu: 500m
memory: 128Mi
requests:
cpu: 10m
memory: 64Mi
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
securityContext:
runAsNonRoot: true
serviceAccountName: redis-operator-controller-manager
terminationGracePeriodSeconds: 10
permissions: []
strategy: deployment
installModes:
- supported: false
type: OwnNamespace
- supported: false
type: SingleNamespace
- supported: false
type: MultiNamespace
- supported: true
type: AllNamespaces
keywords:
- redis
- database
- nosql
- cluster
- cache
- memory
- sentinel
- replication
links:
- name: Redis Operator
url: https://redis-operator.opstree.dev
- name: GitHub
url: https://github.com/OT-CONTAINER-KIT/redis-operator
- name: Documentation
url: https://redis-operator.opstree.dev
maintainers:
- email: [email protected]
name: iamabhishek-dubey
- email: [email protected]
name: yangw
- email: [email protected]
name: shubham-cmyk
- email: [email protected]
name: drivebyer
- email: [email protected]
name: sandy724
maturity: stable
minKubeVersion: 1.18.0
provider:
name: OpsTree Solutions
url: https://opstree.com
replaces: redis-operator.v0.15.1
version: 0.18.1
Loading
Loading