summaryrefslogtreecommitdiff
path: root/astroshop-platform/argocd-helmchart/templates/redis
diff options
context:
space:
mode:
Diffstat (limited to 'astroshop-platform/argocd-helmchart/templates/redis')
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/deployment.yaml223
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/health-configmap.yaml37
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/metrics.yaml35
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/networkpolicy.yaml35
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/pdb.yaml28
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/service.yaml27
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/serviceaccount.yaml16
-rw-r--r--astroshop-platform/argocd-helmchart/templates/redis/servicemonitor.yaml49
8 files changed, 450 insertions, 0 deletions
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/deployment.yaml b/astroshop-platform/argocd-helmchart/templates/redis/deployment.yaml
new file mode 100644
index 0000000..e7c540c
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/deployment.yaml
@@ -0,0 +1,223 @@
+{{- $redisHa := index .Values "redis-ha" -}}
+{{- if and .Values.redis.enabled (not $redisHa.enabled) -}}
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.redis.deploymentAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ name: {{ include "argo-cd.redis.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentLabels) .Values.redis.deploymentLabels) }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ replicas: 1
+ revisionHistoryLimit: {{ .Values.global.revisionHistoryLimit }}
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: {{ include "argo-cd.name" . }}-{{ .Values.redis.name }}
+ template:
+ metadata:
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 8 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.redis.podLabels) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.redis.podAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ spec:
+ {{- with .Values.redis.runtimeClassName | default .Values.global.runtimeClassName }}
+ runtimeClassName: {{ . }}
+ {{- end }}
+ {{- with .Values.redis.imagePullSecrets | default .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.hostAliases }}
+ hostAliases:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redis.securityContext }}
+ securityContext:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redis.priorityClassName | default .Values.global.priorityClassName }}
+ priorityClassName: {{ . }}
+ {{- end }}
+ {{- if .Values.redis.terminationGracePeriodSeconds }}
+ terminationGracePeriodSeconds: {{ .Values.redis.terminationGracePeriodSeconds }}
+ {{- end }}
+ serviceAccountName: {{ include "argo-cd.redis.serviceAccountName" . }}
+ automountServiceAccountToken: {{ .Values.redis.automountServiceAccountToken }}
+ containers:
+ - name: {{ .Values.redis.name }}
+ image: {{ .Values.redis.image.repository }}:{{ .Values.redis.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.redis.image.imagePullPolicy }}
+ args:
+ {{- with .Values.redis.extraArgs }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ - --save
+ - ""
+ - --appendonly
+ - "no"
+ - --requirepass $(REDIS_PASSWORD)
+ env:
+ - name: REDIS_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: argocd-redis
+ key: auth
+ {{- with (concat .Values.global.env .Values.redis.env) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redis.envFrom }}
+ envFrom:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- if .Values.redis.livenessProbe.enabled }}
+ livenessProbe:
+ initialDelaySeconds: {{ .Values.redis.livenessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.redis.livenessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.redis.livenessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.redis.livenessProbe.successThreshold }}
+ failureThreshold: {{ .Values.redis.livenessProbe.failureThreshold }}
+ exec:
+ command:
+ - sh
+ - -c
+ - /health/redis_liveness.sh
+ {{- end }}
+ {{- if .Values.redis.readinessProbe.enabled }}
+ readinessProbe:
+ initialDelaySeconds: {{ .Values.redis.readinessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.redis.readinessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.redis.readinessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.redis.readinessProbe.successThreshold }}
+ failureThreshold: {{ .Values.redis.readinessProbe.failureThreshold }}
+ exec:
+ command:
+ - sh
+ - -c
+ - /health/redis_readiness.sh
+ {{- end }}
+ ports:
+ - name: redis
+ containerPort: {{ .Values.redis.containerPorts.redis }}
+ protocol: TCP
+ resources:
+ {{- toYaml .Values.redis.resources | nindent 10 }}
+ {{- with .Values.redis.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ volumeMounts:
+ - mountPath: /health
+ name: health
+ {{- with .Values.redis.volumeMounts }}
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ {{- if .Values.redis.exporter.enabled }}
+ - name: metrics
+ image: {{ .Values.redis.exporter.image.repository }}:{{ .Values.redis.exporter.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.redis.exporter.image.imagePullPolicy }}
+ env:
+ - name: REDIS_ADDR
+ value: {{ printf "redis://localhost:%v" .Values.redis.containerPorts.redis }}
+ - name: REDIS_EXPORTER_WEB_LISTEN_ADDRESS
+ value: {{ printf "0.0.0.0:%v" .Values.redis.containerPorts.metrics }}
+ - name: REDIS_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: argocd-redis
+ key: auth
+ {{- with (concat .Values.global.env .Values.redis.exporter.env) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ ports:
+ - name: metrics
+ containerPort: {{ .Values.redis.containerPorts.metrics }}
+ protocol: TCP
+ {{- if .Values.redis.exporter.livenessProbe.enabled }}
+ livenessProbe:
+ httpGet:
+ path: /metrics
+ port: {{ .Values.redis.containerPorts.metrics }}
+ initialDelaySeconds: {{ .Values.redis.exporter.livenessProbe.initialDelaySeconds }}
+ timeoutSeconds: {{ .Values.redis.exporter.livenessProbe.timeoutSeconds }}
+ periodSeconds: {{ .Values.redis.exporter.livenessProbe.periodSeconds }}
+ successThreshold: {{ .Values.redis.exporter.livenessProbe.successThreshold }}
+ failureThreshold: {{ .Values.redis.exporter.livenessProbe.failureThreshold }}
+ {{- end }}
+ {{- if .Values.redis.exporter.readinessProbe.enabled }}
+ readinessProbe:
+ httpGet:
+ path: /metrics
+ port: {{ .Values.redis.containerPorts.metrics }}
+ initialDelaySeconds: {{ .Values.redis.exporter.readinessProbe.initialDelaySeconds }}
+ timeoutSeconds: {{ .Values.redis.exporter.readinessProbe.timeoutSeconds }}
+ periodSeconds: {{ .Values.redis.exporter.readinessProbe.periodSeconds }}
+ successThreshold: {{ .Values.redis.exporter.readinessProbe.successThreshold }}
+ failureThreshold: {{ .Values.redis.exporter.readinessProbe.failureThreshold }}
+ {{- end }}
+ resources:
+ {{- toYaml .Values.redis.exporter.resources | nindent 10 }}
+ {{- with .Values.redis.exporter.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ {{- end }}
+ {{- with .Values.redis.extraContainers }}
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with .Values.redis.initContainers }}
+ initContainers:
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with .Values.redis.nodeSelector | default .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redis.tolerations | default .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.redis) }}
+ affinity:
+ {{- trim . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redis.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- range $constraint := . }}
+ - {{ toYaml $constraint | nindent 8 | trim }}
+ {{- if not $constraint.labelSelector }}
+ labelSelector:
+ matchLabels:
+ app.kubernetes.io/name: {{ include "argo-cd.name" $ }}-{{ $.Values.redis.name }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ volumes:
+ - name: health
+ configMap:
+ name: {{ include "argo-cd.redis.fullname" . }}-health-configmap
+ defaultMode: 493
+ {{- with .Values.redis.volumes }}
+ {{- toYaml . | nindent 8}}
+ {{- end }}
+ {{- with .Values.redis.dnsConfig }}
+ dnsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ dnsPolicy: {{ .Values.redis.dnsPolicy }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/health-configmap.yaml b/astroshop-platform/argocd-helmchart/templates/redis/health-configmap.yaml
new file mode 100644
index 0000000..7443625
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/health-configmap.yaml
@@ -0,0 +1,37 @@
+{{- $redisHa := index .Values "redis-ha" -}}
+{{- if and .Values.redis.enabled (not $redisHa.enabled) -}}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ include "argo-cd.redis.fullname" . }}-health-configmap
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+data:
+ redis_liveness.sh: |
+ response=$(
+ redis-cli \
+ -a "${REDIS_PASSWORD}" --no-auth-warning \
+ -h localhost \
+ -p {{ .Values.redis.containerPorts.redis }} \
+ ping
+ )
+ if [ "$response" != "PONG" ] && [ "${response:0:7}" != "LOADING" ] ; then
+ echo "$response"
+ exit 1
+ fi
+ echo "response=$response"
+ redis_readiness.sh: |
+ response=$(
+ redis-cli \
+ -a "${REDIS_PASSWORD}" --no-auth-warning \
+ -h localhost \
+ -p {{ .Values.redis.containerPorts.redis }} \
+ ping
+ )
+ if [ "$response" != "PONG" ] ; then
+ echo "$response"
+ exit 1
+ fi
+ echo "response=$response"
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/metrics.yaml b/astroshop-platform/argocd-helmchart/templates/redis/metrics.yaml
new file mode 100644
index 0000000..040f5eb
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/metrics.yaml
@@ -0,0 +1,35 @@
+{{- $redisHa := (index .Values "redis-ha") -}}
+{{- if and .Values.redis.enabled (not $redisHa.enabled) .Values.redis.metrics.enabled -}}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "argo-cd.redis.fullname" . }}-metrics
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+ {{- with .Values.redis.metrics.service.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- if or .Values.redis.metrics.service.annotations .Values.global.addPrometheusAnnotations }}
+ annotations:
+ {{- if .Values.global.addPrometheusAnnotations }}
+ prometheus.io/port: {{ .Values.redis.metrics.service.servicePort | quote }}
+ prometheus.io/scrape: "true"
+ {{- end }}
+ {{- range $key, $value := .Values.redis.metrics.service.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ type: {{ .Values.redis.metrics.service.type }}
+ {{- if and .Values.redis.metrics.service.clusterIP (eq .Values.redis.metrics.service.type "ClusterIP") }}
+ clusterIP: {{ .Values.redis.metrics.service.clusterIP }}
+ {{- end }}
+ ports:
+ - name: {{ .Values.redis.metrics.service.portName }}
+ protocol: TCP
+ port: {{ .Values.redis.metrics.service.servicePort }}
+ targetPort: metrics
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/networkpolicy.yaml b/astroshop-platform/argocd-helmchart/templates/redis/networkpolicy.yaml
new file mode 100644
index 0000000..ccf0699
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/networkpolicy.yaml
@@ -0,0 +1,35 @@
+{{- $redisHa := (index .Values "redis-ha") -}}
+{{- if and (or .Values.redis.networkPolicy.create .Values.global.networkPolicy.create) .Values.redis.enabled (not $redisHa.enabled) }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+ name: {{ template "argo-cd.redis.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+spec:
+ ingress:
+ - from:
+ - podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 10 }}
+ - podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.repoServer.name) | nindent 10 }}
+ - podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 10 }}
+ ports:
+ - port: redis
+ protocol: TCP
+ - from:
+ - namespaceSelector: {}
+ ports:
+ - port: metrics
+ protocol: TCP
+ podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.redis.name) | nindent 6 }}
+ policyTypes:
+ - Ingress
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/pdb.yaml b/astroshop-platform/argocd-helmchart/templates/redis/pdb.yaml
new file mode 100644
index 0000000..c614144
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/pdb.yaml
@@ -0,0 +1,28 @@
+{{- $redisHa := index .Values "redis-ha" -}}
+{{- if and .Values.redis.enabled (not $redisHa.enabled) .Values.redis.pdb.enabled }}
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: {{ include "argo-cd.redis.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+ {{- with .Values.redis.pdb.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.redis.pdb.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ {{- with .Values.redis.pdb.maxUnavailable }}
+ maxUnavailable: {{ . }}
+ {{- else }}
+ minAvailable: {{ .Values.redis.pdb.minAvailable | default 0 }}
+ {{- end }}
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: {{ include "argo-cd.name" . }}-{{ .Values.redis.name }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/service.yaml b/astroshop-platform/argocd-helmchart/templates/redis/service.yaml
new file mode 100644
index 0000000..a60cf77
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/service.yaml
@@ -0,0 +1,27 @@
+{{- $redisHa := (index .Values "redis-ha") -}}
+{{- if and .Values.redis.enabled (not $redisHa.enabled) -}}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ template "argo-cd.redis.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+ {{- with .Values.redis.service.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.redis.service.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ {{- include "argo-cd.dualStack" . | indent 2 }}
+ ports:
+ - name: redis
+ port: {{ .Values.redis.servicePort }}
+ targetPort: redis
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.redis.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/serviceaccount.yaml b/astroshop-platform/argocd-helmchart/templates/redis/serviceaccount.yaml
new file mode 100644
index 0000000..bc942e2
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/serviceaccount.yaml
@@ -0,0 +1,16 @@
+{{- if and .Values.redis.enabled .Values.redis.serviceAccount.create }}
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: {{ .Values.redis.serviceAccount.automountServiceAccountToken }}
+metadata:
+ name: {{ include "argo-cd.redis.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ {{- with .Values.redis.serviceAccount.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/redis/servicemonitor.yaml b/astroshop-platform/argocd-helmchart/templates/redis/servicemonitor.yaml
new file mode 100644
index 0000000..4710d28
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/redis/servicemonitor.yaml
@@ -0,0 +1,49 @@
+{{- $redisHa := (index .Values "redis-ha") -}}
+{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.redis.enabled (not $redisHa.enabled) .Values.redis.metrics.enabled .Values.redis.metrics.serviceMonitor.enabled -}}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "argo-cd.redis.fullname" . }}
+ namespace: {{ default (include "argo-cd.namespace" .) .Values.redis.metrics.serviceMonitor.namespace | quote }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 4 }}
+ {{- with .Values.redis.metrics.serviceMonitor.selector }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.redis.metrics.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.redis.metrics.serviceMonitor.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ endpoints:
+ - port: {{ .Values.redis.metrics.service.portName }}
+ {{- with .Values.redis.metrics.serviceMonitor.interval }}
+ interval: {{ . }}
+ {{- end }}
+ path: /metrics
+ {{- with .Values.redis.metrics.serviceMonitor.relabelings }}
+ relabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.redis.metrics.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ honorLabels: {{ .Values.redis.metrics.serviceMonitor.honorLabels }}
+ {{- with .Values.redis.metrics.serviceMonitor.scheme }}
+ scheme: {{ . }}
+ {{- end }}
+ {{- with .Values.redis.metrics.serviceMonitor.tlsConfig }}
+ tlsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - {{ include "argo-cd.namespace" . }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.redis.name "name" .Values.redis.name) | nindent 6 }}
+{{- end }}