mirror of
https://github.com/auricom/home-cluster.git
synced 2025-09-17 18:24:14 +02:00
⚡️ immich v1.1 / redis-lb
This commit is contained in:
88
kubernetes/apps/default/redis/lb/config/haproxy.cfg
Normal file
88
kubernetes/apps/default/redis/lb/config/haproxy.cfg
Normal file
@@ -0,0 +1,88 @@
|
||||
global
|
||||
daemon
|
||||
maxconn 256
|
||||
|
||||
defaults
|
||||
mode tcp
|
||||
timeout connect 4s
|
||||
timeout client 30s
|
||||
timeout server 30s
|
||||
retry-on all-retryable-errors
|
||||
|
||||
resolvers cluster_ns
|
||||
parse-resolv-conf
|
||||
|
||||
hold valid 10s
|
||||
hold other 30s
|
||||
hold refused 30s
|
||||
hold nx 30s
|
||||
hold timeout 30s
|
||||
hold obsolete 30s
|
||||
|
||||
resolve_retries 3
|
||||
timeout retry 1s
|
||||
timeout resolve 1s
|
||||
|
||||
frontend http
|
||||
bind :8080
|
||||
http-request use-service prometheus-exporter if { path /metrics }
|
||||
default_backend stats
|
||||
|
||||
backend stats
|
||||
mode http
|
||||
stats enable
|
||||
stats uri /
|
||||
stats refresh 5s
|
||||
stats show-legends
|
||||
stats admin if TRUE
|
||||
|
||||
resolvers k8s
|
||||
parse-resolv-conf
|
||||
hold other 10s
|
||||
hold refused 10s
|
||||
hold nx 10s
|
||||
hold timeout 10s
|
||||
hold valid 10s
|
||||
hold obsolete 10s
|
||||
|
||||
frontend redis-read
|
||||
bind *:6380
|
||||
default_backend redis-online
|
||||
|
||||
frontend redis-write
|
||||
bind *:6379
|
||||
default_backend redis-primary
|
||||
|
||||
frontend redis-sentinel
|
||||
bind *:26379
|
||||
default_backend redis-sentinel
|
||||
|
||||
backend redis-primary
|
||||
balance first
|
||||
option tcp-check
|
||||
tcp-check connect port 6379
|
||||
tcp-check send info\ replication\r\n
|
||||
tcp-check expect string role:master
|
||||
server redis-0 redis-node-0.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
||||
server redis-1 redis-node-1.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
||||
server redis-2 redis-node-2.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
||||
|
||||
backend redis-online
|
||||
balance roundrobin
|
||||
option tcp-check
|
||||
tcp-check connect port 6379
|
||||
tcp-check send PING\r\n
|
||||
tcp-check expect string +PONG
|
||||
server redis-0 redis-node-0.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
||||
server redis-1 redis-node-1.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
||||
server redis-2 redis-node-2.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
||||
|
||||
backend redis-sentinel
|
||||
balance roundrobin
|
||||
option tcp-check
|
||||
tcp-check connect port 26379
|
||||
tcp-check send PING\r\n
|
||||
tcp-check expect string +PONG
|
||||
server redis-0 redis-node-0.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
||||
server redis-1 redis-node-1.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
||||
server redis-2 redis-node-2.redis-headless.default.svc.cluster.local check inter 5s resolvers cluster_ns
|
86
kubernetes/apps/default/redis/lb/helmrelease.yaml
Normal file
86
kubernetes/apps/default/redis/lb/helmrelease.yaml
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
# yaml-language-server: $schema=https://kubernetes-schemas.devbu.io/helmrelease_v2beta1.json
|
||||
apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
||||
kind: HelmRelease
|
||||
metadata:
|
||||
name: redis-lb
|
||||
namespace: default
|
||||
spec:
|
||||
interval: 15m
|
||||
chart:
|
||||
spec:
|
||||
chart: app-template
|
||||
version: 1.2.1
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: bjw-s
|
||||
namespace: flux-system
|
||||
maxHistory: 3
|
||||
install:
|
||||
createNamespace: true
|
||||
remediation:
|
||||
retries: 3
|
||||
upgrade:
|
||||
cleanupOnFail: true
|
||||
remediation:
|
||||
retries: 3
|
||||
uninstall:
|
||||
keepHistory: false
|
||||
values:
|
||||
controller:
|
||||
replicas: 3
|
||||
strategy: RollingUpdate
|
||||
image:
|
||||
repository: public.ecr.aws/docker/library/haproxy
|
||||
tag: 2.7.1-alpine
|
||||
service:
|
||||
main:
|
||||
type: LoadBalancer
|
||||
loadBalacerIP: "${CLUSTER_LB_REDIS}"
|
||||
externalTrafficPolicy: Local
|
||||
ports:
|
||||
http:
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
redis-write:
|
||||
port: 6379
|
||||
targetPort: 6379
|
||||
redis-read:
|
||||
port: 6380
|
||||
targetPort: 6380
|
||||
redis-sentinel:
|
||||
port: 26379
|
||||
targetPort: 26379
|
||||
serviceMonitor:
|
||||
main:
|
||||
enabled: true
|
||||
endpoints:
|
||||
- port: http
|
||||
scheme: http
|
||||
path: /metrics
|
||||
interval: 1m
|
||||
scrapeTimeout: 10s
|
||||
ingress:
|
||||
main:
|
||||
enabled: true
|
||||
ingressClassName: nginx
|
||||
annotations:
|
||||
hajimari.io/icon: simple-icons:redis
|
||||
hosts:
|
||||
- host: redis-lb.${SECRET_CLUSTER_DOMAIN}
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
podSecurityContext:
|
||||
runAsUser: 99
|
||||
runAsGroup: 99
|
||||
fsGroup: 99
|
||||
fsGroupChangePolicy: "OnRootMismatch"
|
||||
persistence:
|
||||
config:
|
||||
enabled: true
|
||||
type: configMap
|
||||
name: redis-lb-configmap # overriden by kustomizeconfig
|
||||
mountPath: /usr/local/etc/haproxy/haproxy.cfg
|
||||
subPath: haproxy.cfg
|
||||
readOnly: true
|
13
kubernetes/apps/default/redis/lb/kustomization.yaml
Normal file
13
kubernetes/apps/default/redis/lb/kustomization.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: default
|
||||
resources:
|
||||
- helmrelease.yaml
|
||||
configMapGenerator:
|
||||
- name: redis-lb-configmap
|
||||
files:
|
||||
- haproxy.cfg=./config/haproxy.cfg
|
||||
configurations:
|
||||
- ./patches/kustomizeconfig.yaml
|
@@ -0,0 +1,7 @@
|
||||
---
|
||||
nameReference:
|
||||
- kind: ConfigMap
|
||||
version: v1
|
||||
fieldSpecs:
|
||||
- path: spec/values/persistence/config/name
|
||||
kind: HelmRelease
|
Reference in New Issue
Block a user