add redis replication chart
All checks were successful
renovate / renovate (push) Successful in 34s
lint-and-test / lint-helm (push) Successful in 12s
lint-and-test / chart-testing (push) Successful in 20s
release-charts-generic-device-plugin / release (push) Successful in 18s
release-charts-redis-replication / release (push) Successful in 15s

This commit is contained in:
2025-12-14 23:32:36 -06:00
parent 06a206e4b3
commit 96154b9be9
8 changed files with 403 additions and 2 deletions

View File

@@ -0,0 +1,65 @@
{{/*
Expand the names
*/}}
{{- define "redis.replicationName" -}}
{{- if .Values.replicationNameOverride }}
{{- .Values.replicationNameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "redis-replication-%s" .Release.Name -}}
{{- end }}
{{- end }}
{{- define "redis.sentinelName" -}}
{{- if .Values.sentinelNameOverride }}
{{- .Values.sentinelNameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "redis-sentinel-%s" .Release.Name -}}
{{- end }}
{{- end }}
{{/*
Allow the release namespace to be overridden for multi-namespace deployments in combined charts
*/}}
{{- define "redis.namespace" -}}
{{- if .Values.namespaceOverride -}}
{{- .Values.namespaceOverride -}}
{{- else -}}
{{- .Release.Namespace -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "redis.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "redis.labels" -}}
helm.sh/chart: {{ include "redis.chart" $ }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.Version | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- with .Values.additionalLabels }}
{{ toYaml . }}
{{- end }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "redis.replicationSelectorLabels" -}}
app.kubernetes.io/name: {{ include "redis.replicationName" $ }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}
{{- define "redis.sentinelSelectorLabels" -}}
app.kubernetes.io/name: {{ include "redis.sentinelName" $ }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- end }}

View File

@@ -0,0 +1,39 @@
apiVersion: redis.redis.opstreelabs.in/v1beta2
kind: RedisReplication
metadata:
name: {{ include "redis.replicationName" . }}
namespace: {{ include "redis.namespace" . }}
labels:
{{- include "redis.labels" . | nindent 4 }}
{{- include "redis.replicationSelectorLabels" . | nindent 4 }}
spec:
clusterSize: {{ .Values.redisReplication.clusterSize }}
podSecurityContext:
{{- with .Values.redisReplication.podSecurityContext }}
{{- toYaml . | nindent 10 }}
{{ end }}
kubernetesConfig:
image: "{{ .Values.redisReplication.image.repository }}:{{ .Values.redisReplication.image.tag }}"
imagePullPolicy: {{ .Values.redisReplication.image.pullPolicy }}
resources:
{{- with .Values.redisReplication.resources }}
{{- toYaml . | nindent 10 }}
{{ end }}
{{ if .Values.existingSecret.enabled }}
redisSecret:
name: {{ .Values.existingSecret.name }}
key: {{ .Values.existingSecret.key }}
{{ end }}
storage:
volumeClaimTemplate:
{{- with .Values.redisReplication.volumeClaimTemplate }}
{{- toYaml . | nindent 10 }}
{{ end }}
redisExporter:
enabled: {{ .Values.redisReplication.redisExporter.enabled }}
image: "{{ .Values.redisReplication.redisExporter.image.repository }}:{{ .Values.redisReplication.redisExporter.image.tag }}"

View File

@@ -0,0 +1,41 @@
{{- if .Values.redisSentinel.enabled }}
---
apiVersion: redis.redis.opstreelabs.in/v1beta2
kind: RedisSentinel
metadata:
name: {{ include "redis.sentinelName" . }}
namespace: {{ include "redis.namespace" . }}
labels:
{{- include "redis.labels" . | nindent 4 }}
{{- include "redis.sentinelSelectorLabels" . | nindent 4 }}
spec:
clusterSize: {{ .Values.redisSentinel.clusterSize }}
podSecurityContext:
{{- with .Values.redisSentinel.podSecurityContext }}
{{- toYaml . | nindent 10 }}
{{ end }}
redisSentinelConfig:
redisReplicationName: {{ include "redis.replicationName" . }}
{{ if .Values.existingSecret.enabled }}
redisReplicationPassword:
secretKeyRef:
name: {{ .Values.existingSecret.name }}
key: {{ .Values.existingSecret.key }}
{{ end }}
kubernetesConfig:
image: "{{ .Values.redisSentinel.image.repository }}:{{ .Values.redisSentinel.image.tag }}"
imagePullPolicy: {{ .Values.redisSentinel.image.pullPolicy }}
resources:
{{- with .Values.redisSentinel.resources }}
{{- toYaml . | nindent 10 }}
{{ end }}
{{ if .Values.existingSecret.enabled }}
redisSecret:
name: {{ .Values.existingSecret.name }}
key: {{ .Values.existingSecret.key }}
{{ end }}
{{- end }}