mirror of
https://github.com/auricom/home-cluster.git
synced 2025-09-17 18:24:14 +02:00
fixup! 🚀 redis
This commit is contained in:
@@ -5,7 +5,7 @@ metadata:
|
|||||||
name: postgres16
|
name: postgres16
|
||||||
spec:
|
spec:
|
||||||
instances: 3
|
instances: 3
|
||||||
imageName: ghcr.io/bo0tzz/cnpgvecto.rs:16.1
|
imageName: ghcr.io/bo0tzz/cnpgvecto.rs:16.1-v0.1.11
|
||||||
primaryUpdateStrategy: unsupervised
|
primaryUpdateStrategy: unsupervised
|
||||||
storage:
|
storage:
|
||||||
size: 50Gi
|
size: 50Gi
|
||||||
@@ -19,6 +19,7 @@ spec:
|
|||||||
limits:
|
limits:
|
||||||
memory: 4Gi
|
memory: 4Gi
|
||||||
postgresql:
|
postgresql:
|
||||||
|
shared_preload_libraries: ["vectors.so"]
|
||||||
parameters:
|
parameters:
|
||||||
max_connections: "600"
|
max_connections: "600"
|
||||||
max_slot_wal_keep_size: 10GB
|
max_slot_wal_keep_size: 10GB
|
||||||
|
37
kubernetes/apps/database/redis/app/configmap.yaml
Normal file
37
kubernetes/apps/database/redis/app/configmap.yaml
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.26.1-standalone-strict/configmap-v1.json
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: redis-healthcheck
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: redis
|
||||||
|
data:
|
||||||
|
ping_readiness.sh: |-
|
||||||
|
#!/bin/sh
|
||||||
|
export REDISCLI_AUTH="$REDIS_PASSWORD"
|
||||||
|
response=$(
|
||||||
|
timeout -s 3 $1 \
|
||||||
|
redis-cli \
|
||||||
|
-h localhost \
|
||||||
|
-p $REDIS_PORT \
|
||||||
|
ping
|
||||||
|
)
|
||||||
|
if [ "$response" != "PONG" ]; then
|
||||||
|
echo "$response"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
ping_liveness.sh: |-
|
||||||
|
#!/bin/sh
|
||||||
|
export REDISCLI_AUTH="$REDIS_PASSWORD"
|
||||||
|
response=$(
|
||||||
|
timeout -s 3 $1 \
|
||||||
|
redis-cli \
|
||||||
|
-h localhost \
|
||||||
|
-p $REDIS_PORT \
|
||||||
|
ping
|
||||||
|
)
|
||||||
|
if [ "$response" != "PONG" ] && [ "$response" != "LOADING Redis is loading the dataset in memory" ]; then
|
||||||
|
echo "$response"
|
||||||
|
exit 1
|
||||||
|
fi
|
19
kubernetes/apps/database/redis/app/externalsecret.yaml
Normal file
19
kubernetes/apps/database/redis/app/externalsecret.yaml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://kubernetes-schemas.devbu.io/external-secrets.io/externalsecret_v1beta1.json
|
||||||
|
apiVersion: external-secrets.io/v1beta1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: redis
|
||||||
|
spec:
|
||||||
|
secretStoreRef:
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
name: onepassword-connect
|
||||||
|
target:
|
||||||
|
name: redis-secret
|
||||||
|
template:
|
||||||
|
engineVersion: v2
|
||||||
|
data:
|
||||||
|
REDIS_PASSWORD: "{{ .REDIS_PASSWORD }}"
|
||||||
|
dataFrom:
|
||||||
|
- extract:
|
||||||
|
key: redis
|
@@ -1,49 +1,99 @@
|
|||||||
---
|
---
|
||||||
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/helm.toolkit.fluxcd.io/helmrelease_v2beta2.json
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2beta2.json
|
||||||
apiVersion: helm.toolkit.fluxcd.io/v2beta2
|
apiVersion: helm.toolkit.fluxcd.io/v2beta2
|
||||||
kind: HelmRelease
|
kind: HelmRelease
|
||||||
metadata:
|
metadata:
|
||||||
name: redis
|
name: redis
|
||||||
spec:
|
spec:
|
||||||
interval: 30m
|
interval: 15m
|
||||||
timeout: 15m
|
|
||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: redis
|
chart: app-template
|
||||||
version: 18.6.3
|
version: 2.5.0
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: bitnami
|
name: bjw-s
|
||||||
namespace: flux-system
|
namespace: flux-system
|
||||||
|
interval: 15m
|
||||||
install:
|
install:
|
||||||
|
createNamespace: true
|
||||||
remediation:
|
remediation:
|
||||||
retries: 3
|
retries: 5
|
||||||
upgrade:
|
upgrade:
|
||||||
cleanupOnFail: true
|
|
||||||
remediation:
|
remediation:
|
||||||
retries: 3
|
retries: 5
|
||||||
uninstall:
|
|
||||||
keepHistory: false
|
|
||||||
values:
|
values:
|
||||||
auth:
|
controllers:
|
||||||
enabled: false
|
main:
|
||||||
sentinel: false
|
type: statefulset
|
||||||
master:
|
containers:
|
||||||
persistence:
|
main:
|
||||||
enabled: false
|
image:
|
||||||
replica:
|
repository: redis
|
||||||
persistence:
|
tag: 7.2.4-alpine
|
||||||
enabled: false
|
command:
|
||||||
sentinel:
|
- sh
|
||||||
enabled: true
|
args:
|
||||||
masterSet: redis-master
|
- -c
|
||||||
getMasterTimeout: 10
|
- >-
|
||||||
startupProbe:
|
redis-server --requirepass $REDIS_PASSWORD
|
||||||
failureThreshold: 2
|
probes:
|
||||||
persistence:
|
liveness:
|
||||||
enabled: false
|
enabled: true
|
||||||
metrics:
|
custom: true
|
||||||
enabled: true
|
spec:
|
||||||
serviceMonitor:
|
exec:
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- -c
|
||||||
|
- /health/ping_liveness.sh 5
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
timeoutSeconds: 6
|
||||||
|
periodSeconds: 5
|
||||||
|
successThreshold: 1
|
||||||
|
failureThreshold: 5
|
||||||
|
readiness:
|
||||||
|
enabled: true
|
||||||
|
custom: true
|
||||||
|
spec:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- -c
|
||||||
|
- /health/ping_readiness.sh 1
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
timeoutSeconds: 2
|
||||||
|
periodSeconds: 5
|
||||||
|
successThreshold: 1
|
||||||
|
failureThreshold: 5
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 34m
|
||||||
|
memory: 204Mi
|
||||||
|
limits:
|
||||||
|
memory: 241Mi
|
||||||
|
env:
|
||||||
|
REDIS_PORT: "6379"
|
||||||
|
REDIS_PASSWORD:
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: redis-secret
|
||||||
|
key: REDIS_PASSWORD
|
||||||
|
service:
|
||||||
|
main:
|
||||||
|
ports:
|
||||||
|
http:
|
||||||
|
port: 6379
|
||||||
|
persistence:
|
||||||
|
data:
|
||||||
enabled: true
|
enabled: true
|
||||||
interval: 1m
|
existingClaim: redis
|
||||||
|
globalMounts:
|
||||||
|
- path: /data
|
||||||
|
healthcheck:
|
||||||
|
enabled: true
|
||||||
|
type: configMap
|
||||||
|
name: redis-healthcheck
|
||||||
|
defaultMode: 0755
|
||||||
|
globalMounts:
|
||||||
|
- path: /health
|
||||||
|
@@ -3,4 +3,7 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
|
- ./configmap.yaml
|
||||||
|
- ./externalsecret.yaml
|
||||||
- ./helmrelease.yaml
|
- ./helmrelease.yaml
|
||||||
|
- ../../../../templates/volsync
|
||||||
|
@@ -19,3 +19,7 @@ spec:
|
|||||||
interval: 30m
|
interval: 30m
|
||||||
retryInterval: 1m
|
retryInterval: 1m
|
||||||
timeout: 15m
|
timeout: 15m
|
||||||
|
postBuild:
|
||||||
|
substitute:
|
||||||
|
APP: *app
|
||||||
|
VOLSYNC_CAPACITY: 2Gi
|
||||||
|
@@ -21,6 +21,7 @@ spec:
|
|||||||
DB_PASSWORD: &dbPass "{{ .POSTGRES_PASS }}"
|
DB_PASSWORD: &dbPass "{{ .POSTGRES_PASS }}"
|
||||||
DB_PORT: "5432"
|
DB_PORT: "5432"
|
||||||
JWT_SECRET: "{{ .IMMICH_JWT_SECRET }}"
|
JWT_SECRET: "{{ .IMMICH_JWT_SECRET }}"
|
||||||
|
REDIS_PASSWORD: "{{ .REDIS_PASSWORD }}"
|
||||||
TYPESENSE_API_KEY: "{{ .IMMICH_TYPESENSE_API_KEY }}"
|
TYPESENSE_API_KEY: "{{ .IMMICH_TYPESENSE_API_KEY }}"
|
||||||
# Postgres Init
|
# Postgres Init
|
||||||
INIT_POSTGRES_DBNAME: *dbName
|
INIT_POSTGRES_DBNAME: *dbName
|
||||||
@@ -33,3 +34,5 @@ spec:
|
|||||||
key: cloudnative-pg
|
key: cloudnative-pg
|
||||||
- extract:
|
- extract:
|
||||||
key: immich
|
key: immich
|
||||||
|
- extract:
|
||||||
|
key: redis
|
||||||
|
@@ -19,6 +19,7 @@ spec:
|
|||||||
dependsOn:
|
dependsOn:
|
||||||
- name: immich-server
|
- name: immich-server
|
||||||
- name: redis
|
- name: redis
|
||||||
|
namespace: database
|
||||||
values:
|
values:
|
||||||
controllers:
|
controllers:
|
||||||
main:
|
main:
|
||||||
|
@@ -30,6 +30,7 @@ spec:
|
|||||||
dependsOn:
|
dependsOn:
|
||||||
- name: immich-server
|
- name: immich-server
|
||||||
- name: redis
|
- name: redis
|
||||||
|
namespace: database
|
||||||
values:
|
values:
|
||||||
defaultPodOptions:
|
defaultPodOptions:
|
||||||
enableServiceLinks: false
|
enableServiceLinks: false
|
||||||
|
@@ -29,6 +29,7 @@ spec:
|
|||||||
keepHistory: false
|
keepHistory: false
|
||||||
dependsOn:
|
dependsOn:
|
||||||
- name: redis
|
- name: redis
|
||||||
|
namespace: database
|
||||||
values:
|
values:
|
||||||
defaultPodOptions:
|
defaultPodOptions:
|
||||||
enableServiceLinks: false
|
enableServiceLinks: false
|
||||||
|
Reference in New Issue
Block a user