fixup! 🚀 redis

This commit is contained in:
auricom
2024-01-25 02:00:31 +01:00
parent 5551bf3d65
commit f2f8c45338
10 changed files with 153 additions and 33 deletions

View File

@@ -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

View 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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -19,3 +19,7 @@ spec:
interval: 30m interval: 30m
retryInterval: 1m retryInterval: 1m
timeout: 15m timeout: 15m
postBuild:
substitute:
APP: *app
VOLSYNC_CAPACITY: 2Gi

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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