initial commit

This commit is contained in:
allard
2025-11-23 18:58:51 +01:00
commit 376a944abc
1553 changed files with 314731 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: odroid-redis
title: Redis (odroid)
spec:
type: service
lifecycle: production
owner: platform-team
partOf:
- ../catalog-info.yaml

View File

@@ -0,0 +1,21 @@
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: redis-alldcs-tls
namespace: redis
spec:
entryPoints:
- websecure
routes:
- match: Host(`redis-odroid.alldcs.nl`)
kind: Rule
services:
- name: redis-insight
port: 5540
tls:
certResolver: letsencrypt

View File

@@ -0,0 +1,39 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-insight
namespace: redis
labels:
app: redis-insight
spec:
replicas: 1
selector:
matchLabels:
app: redis-insight
template:
metadata:
labels:
app: redis-insight
spec:
containers:
- name: redis-insight
image: redis/redisinsight
ports:
- containerPort: 5540
env:
---
apiVersion: v1
kind: Service
metadata:
name: redis-insight
namespace: redis
labels:
name: redis-insight
spec:
type: ClusterIP
ports:
- port: 5540
name: http
selector:
app: redis-insight

210
odroid/redis/redis.yaml Executable file
View File

@@ -0,0 +1,210 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: redis-configuration
namespace: redis
labels:
app: redis
data:
master.conf: |
maxmemory 400mb
maxmemory-policy allkeys-lru
maxclients 20000
timeout 300
appendonly no
dbfilename dump.rdb
dir /data
slave.conf: |
replicaof redis-0.redis.default.svc.cluster.local 6379
maxmemory 400mb
maxmemory-policy allkeys-lru
maxclients 20000
timeout 300
dir /data
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: redis
namespace: redis
spec:
serviceName: "redis"
replicas: 3
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
initContainers:
- name: init-redis
image: redis:latest
command:
- bash
- "-c"
- |
set -ex
# Generate redis server-id from pod ordinal index.
[[ `hostname` =~ -([0-9]+)$ ]] || exit 1
ordinal=${BASH_REMATCH[1]}
# Copy appropriate redis config files from config-map to respective directories.
if [[ $ordinal -eq 0 ]]; then
cp /mnt/master.conf /etc/redis-config.conf
else
cp /mnt/slave.conf /etc/redis-config.conf
fi
volumeMounts:
- name: redis-pvc
mountPath: /etc
subPath: redis-claim
- name: config-map
mountPath: /mnt/
containers:
- name: redis
image: redis:latest
ports:
- containerPort: 6379
name: redis
command:
- redis-server
- "/etc/redis-config.conf"
volumeMounts:
- name: redis-pvc
mountPath: /data
subPath: redis-data
- name: redis-pvc
mountPath: /etc
subPath: redis-claim
volumes:
- name: config-map
configMap:
name: redis-configuration
volumeClaimTemplates:
- metadata:
name: redis-pvc
spec:
storageClassName: ""
accessModes: [ "ReadWriteMany" ]
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: redis
labels:
app: redis
spec:
ports:
- port: 6379
targetPort: redis
clusterIP: None
selector:
app: redis
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: redis-pv-0
spec:
storageClassName: ""
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
mountOptions:
- hard
- nfsvers=4.1
nfs:
server: 192.168.2.110
path: /mnt/nfs_share/redis-0
readOnly: false
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: redis-pv-1
spec:
storageClassName: ""
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
mountOptions:
- hard
- nfsvers=4.1
nfs:
server: 192.168.2.110
path: /mnt/nfs_share/redis-1
readOnly: false
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: redis-pv-2
spec:
storageClassName: ""
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
mountOptions:
- hard
- nfsvers=4.1
nfs:
server: 192.168.2.110
path: /mnt/nfs_share/redis-2
readOnly: false
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redis-pvc-redis-0
namespace: redis
spec:
storageClassName: ""
volumeName: redis-pv-0
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redis-pvc-redis-1
namespace: redis
spec:
storageClassName: ""
volumeName: redis-pv-1
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redis-pvc-redis-2
namespace: redis
spec:
storageClassName: ""
volumeName: redis-pv-2
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 1Gi