48 lines
1.3 KiB
YAML
48 lines
1.3 KiB
YAML
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: redis-sentinel
|
|
namespace: redis
|
|
labels:
|
|
app: redis-sentinel
|
|
spec:
|
|
replicas: 3
|
|
selector:
|
|
matchLabels:
|
|
app: redis-sentinel
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: redis-sentinel
|
|
spec:
|
|
# Init container to copy the sentinel.conf from the ConfigMap to a writable emptyDir volume.
|
|
initContainers:
|
|
- name: copy-sentinel-config
|
|
image: busybox
|
|
command: ['sh', '-c', 'cp /config/sentinel.conf /writable/']
|
|
volumeMounts:
|
|
- name: sentinel-config-readonly
|
|
mountPath: /config
|
|
- name: sentinel-config
|
|
mountPath: /writable
|
|
containers:
|
|
- name: redis-sentinel
|
|
image: redis:7.4-alpine
|
|
ports:
|
|
- containerPort: 26379
|
|
name: sentinel
|
|
command:
|
|
- "redis-sentinel"
|
|
- "/etc/redis/sentinel.conf"
|
|
volumeMounts:
|
|
- name: sentinel-config
|
|
mountPath: /etc/redis # this volume is now writable
|
|
volumes:
|
|
# Mount the ConfigMap as a read-only volume for the init container
|
|
- name: sentinel-config-readonly
|
|
configMap:
|
|
name: redis-sentinel-config
|
|
# EmptyDir volume to hold the writable config file
|
|
- name: sentinel-config
|
|
emptyDir: {}
|