Skip to content

Conversation

@navneet066
Copy link

@navneet066 navneet066 commented Nov 12, 2025

Description

This pull request adds the functionality of exposing the Services to defined on the redisCluster.serviceType in the helm chart.
This is important because right now it is not possible to add in redisCluster CRD kubernetesConfig.service.serviceType . This helps in exposing the services on Demand.

Example CRD:

apiVersion: redis.redis.opstreelabs.in/v1beta2
kind: RedisCluster
metadata:
  annotations:
    meta.helm.sh/release-name: redis-cluster
    meta.helm.sh/release-namespace: widas-dataservices
  labels:
    app.kubernetes.io/component: middleware
    app.kubernetes.io/instance: redis-cluster
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: redis-cluster
    app.kubernetes.io/version: 0.17.0
    helm.sh/chart: redis-cluster-0.17.0
  name: redis-cluster
spec:
  clusterSize: 3
  clusterVersion: v7
  kubernetesConfig:
    image: quay.io/opstree/redis:v7.0.15
    imagePullPolicy: IfNotPresent
    updateStrategy: {}
    service:
      serviceType: LoadBalancer
  persistenceEnabled: true
  podSecurityContext:
    fsGroup: 1000
    runAsUser: 1000
  port: 6379
  redisExporter:
    image: quay.io/opstree/redis-exporter:v1.44.0
    imagePullPolicy: IfNotPresent
    port: 9121
  redisFollower:
    replicas: 3
  redisLeader:
    replicas: 3
  storage:
    nodeConfVolume: false
    nodeConfVolumeClaimTemplate:
      metadata: {}
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 1Gi
      status: {}
    volumeClaimTemplate:
      metadata: {}
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 5Gi
        storageClassName: directpv-min-io
      status: {}
    volumeMount: {}

values.yaml

redisCluster:
  clusterSize: 3
  clusterVersion: v7
  leader:
    serviceType: LoadBalancer
  follower:
    serviceType: LoadBalancer
  persistenceEnabled: true
  podSecurityContext:
    fsGroup: 0
    runAsUser: 0
  port: 6379
redisExporter:
  enabled: true
storageSpec:
  volumeClaimTemplate:
    spec:
      storageClassName: directpv-min-io
      accessModes: ["ReadWriteOnce"]
      resources:
        requests:
          storage: 5Gi
  nodeConfVolume: false

Output for service:

 kubectl get svc
redis-cluster-follower              ClusterIP      10.233.37.72    <none>         6379/TCP         5d7h
redis-cluster-follower-additional   LoadBalancer   10.233.58.112   172.18.19.59   6379:30547/TCP   5d7h
redis-cluster-follower-headless     ClusterIP      None            <none>         6379/TCP         5d7h
redis-cluster-leader                ClusterIP      10.233.29.249   <none>         6379/TCP         5d8h
redis-cluster-leader-additional     LoadBalancer   10.233.37.34    172.18.19.58   6379:31307/TCP   5d8h
redis-cluster-leader-headless       ClusterIP      None            <none>         6379/TCP         5d8h
redis-cluster-master                ClusterIP      10.233.23.161   <none>         6379/TCP         5d8h
redisinsight                        LoadBalancer   10.233.23.197   172.18.19.56   5540:32457/TCP   5d9h

Fixes #ISSUE

Type of change

  • New feature (non-breaking change which adds functionality)

Checklist

  • Tests have been added/modified and all tests pass.
  • Functionality/bugs have been confirmed to be unchanged or fixed.
  • I have performed a self-review of my own code.
  • Documentation has been updated or added where necessary.

Additional Context

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant