forked from k-space/kube
		
	keydb (and redis) is dead
This commit is contained in:
		@@ -44,7 +44,7 @@ Static routes for 193.40.103.36/30 have been added in pve nodes to make them com
 | 
			
		||||
 | 
			
		||||
[^mariadb]: As of 2024-07-30 used by auth, authelia, bitwarden, etherpad, freescout, git, grafana, nextcloud, wiki, woodpecker
 | 
			
		||||
 | 
			
		||||
[^redisdead]: Redis has been replaced as redis-operatori couldn't handle itself: didn't reconcile after reboots, master URI was empty, and clients complained about missing masters. ArgoCD still hosts its own Redis.
 | 
			
		||||
[^redisdead]: Redis has been replaced as redis-operatori couldn't handle itself: didn't reconcile after reboots, master URI was empty, and clients complained about missing masters. Dragonfly replaces KeyDB.
 | 
			
		||||
 | 
			
		||||
[^mongoproblems]: Mongo problems: Incompatible with rawfile csi (wiredtiger.wt corrupts), complicated resizing (PVCs from statefulset PVC template).
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -54,3 +54,5 @@ kubectl label -n argocd secret oidc-client-argocd-owner-secrets app.kubernetes.i
 | 
			
		||||
 | 
			
		||||
kubectl -n argocd rollout restart deployment/k6-argocd-redis deployment/k6-argocd-repo-server deployment/k6-argocd-server deployment/k6-argocd-notifications-controller statefulset/k6-argocd-application-controller
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
WARN: ArgoCD doesn't host its own redis, Dragonfly must be able to independently cold-start.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,20 +0,0 @@
 | 
			
		||||
---
 | 
			
		||||
apiVersion: argoproj.io/v1alpha1
 | 
			
		||||
kind: Application
 | 
			
		||||
metadata:
 | 
			
		||||
  name: redis-clusters
 | 
			
		||||
  namespace: argocd
 | 
			
		||||
spec:
 | 
			
		||||
  project: k-space.ee
 | 
			
		||||
  source:
 | 
			
		||||
    repoURL: 'git@git.k-space.ee:k-space/kube.git'
 | 
			
		||||
    path: redis-clusters
 | 
			
		||||
    targetRevision: HEAD
 | 
			
		||||
  destination:
 | 
			
		||||
    server: 'https://kubernetes.default.svc'
 | 
			
		||||
    namespace: redis-clusters
 | 
			
		||||
  syncPolicy:
 | 
			
		||||
    automated:
 | 
			
		||||
      prune: true
 | 
			
		||||
    syncOptions:
 | 
			
		||||
    - CreateNamespace=true
 | 
			
		||||
@@ -1,10 +0,0 @@
 | 
			
		||||
# Redis clusters
 | 
			
		||||
 | 
			
		||||
This is namespace for Redis clusters managed by Codemowers' sample
 | 
			
		||||
[redis-operator](https://github.com/codemowers/operatorlib/tree/main/samples/redis-operator)
 | 
			
		||||
which is deployed via [ArgoCD](https://argocd.k-space.ee/applications/argocd/redis-operator)
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
kubectl create namespace redis-clusters
 | 
			
		||||
kubectl apply -n redis-clusters -f application.yaml
 | 
			
		||||
```
 | 
			
		||||
@@ -1,18 +0,0 @@
 | 
			
		||||
---
 | 
			
		||||
apiVersion: codemowers.cloud/v1beta1
 | 
			
		||||
kind: RedisClass
 | 
			
		||||
metadata:
 | 
			
		||||
  name: cache
 | 
			
		||||
  annotations:
 | 
			
		||||
    kubernetes.io/description: "Caching Redis instance"
 | 
			
		||||
spec:
 | 
			
		||||
  reclaimPolicy: Delete
 | 
			
		||||
  replicas: 1
 | 
			
		||||
  podSpec:
 | 
			
		||||
    containers:
 | 
			
		||||
      - name: redis
 | 
			
		||||
        image: mirror.gcr.io/library/redis:7.0.11@sha256:1008c73f08e9f913868e2fa2e843212b62ea5bf3c66435d87bc7a6207bc0f1b4
 | 
			
		||||
        imagePullPolicy: IfNotPresent
 | 
			
		||||
        args:
 | 
			
		||||
          - --maxmemory-policy
 | 
			
		||||
          - volatile-lfu
 | 
			
		||||
@@ -1,22 +0,0 @@
 | 
			
		||||
---
 | 
			
		||||
apiVersion: codemowers.cloud/v1beta1
 | 
			
		||||
kind: RedisClass
 | 
			
		||||
metadata:
 | 
			
		||||
  name: ephemeral
 | 
			
		||||
  annotations:
 | 
			
		||||
    kubernetes.io/description: "Ephemeral Redis cluster"
 | 
			
		||||
spec:
 | 
			
		||||
  reclaimPolicy: Delete
 | 
			
		||||
  replicas: 3
 | 
			
		||||
  podSpec:
 | 
			
		||||
    containers:
 | 
			
		||||
      - name: redis
 | 
			
		||||
        image: mirror.gcr.io/library/redis:7.0.11@sha256:1008c73f08e9f913868e2fa2e843212b62ea5bf3c66435d87bc7a6207bc0f1b4
 | 
			
		||||
        imagePullPolicy: IfNotPresent
 | 
			
		||||
    nodeSelector:
 | 
			
		||||
      dedicated: storage
 | 
			
		||||
    tolerations:
 | 
			
		||||
      - effect: NoSchedule
 | 
			
		||||
        key: dedicated
 | 
			
		||||
        operator: Equal
 | 
			
		||||
        value: storage
 | 
			
		||||
@@ -1,25 +0,0 @@
 | 
			
		||||
---
 | 
			
		||||
apiVersion: codemowers.cloud/v1beta1
 | 
			
		||||
kind: RedisClass
 | 
			
		||||
metadata:
 | 
			
		||||
  name: persistent
 | 
			
		||||
  annotations:
 | 
			
		||||
    kubernetes.io/description: "Persistent Redis instance"
 | 
			
		||||
spec:
 | 
			
		||||
  reclaimPolicy: Retain
 | 
			
		||||
  replicas: 3
 | 
			
		||||
  storageClass: redis
 | 
			
		||||
  podSpec:
 | 
			
		||||
    containers:
 | 
			
		||||
      - name: redis
 | 
			
		||||
        image: mirror.gcr.io/library/redis:7.0.11@sha256:1008c73f08e9f913868e2fa2e843212b62ea5bf3c66435d87bc7a6207bc0f1b4
 | 
			
		||||
        imagePullPolicy: IfNotPresent
 | 
			
		||||
        args:
 | 
			
		||||
          - --activedefrag yes
 | 
			
		||||
    nodeSelector:
 | 
			
		||||
      dedicated: storage
 | 
			
		||||
    tolerations:
 | 
			
		||||
      - effect: NoSchedule
 | 
			
		||||
        key: dedicated
 | 
			
		||||
        operator: Equal
 | 
			
		||||
        value: storage
 | 
			
		||||
@@ -1,21 +0,0 @@
 | 
			
		||||
---
 | 
			
		||||
apiVersion: storage.k8s.io/v1
 | 
			
		||||
kind: StorageClass
 | 
			
		||||
metadata:
 | 
			
		||||
  name: redis
 | 
			
		||||
  annotations:
 | 
			
		||||
    kubernetes.io/description: |
 | 
			
		||||
      Storage class for Redis, KeyDB, DragonflyDB and similar applications
 | 
			
		||||
      deployed in highly available fashion utilizing application level
 | 
			
		||||
      replication needing persistent volume for storing the snapshots.
 | 
			
		||||
      This storage class uses XFS, has no block level redundancy and
 | 
			
		||||
      has block device level caching disabled.
 | 
			
		||||
provisioner: csi.proxmox.sinextra.dev
 | 
			
		||||
reclaimPolicy: Retain
 | 
			
		||||
volumeBindingMode: WaitForFirstConsumer
 | 
			
		||||
allowVolumeExpansion: true
 | 
			
		||||
parameters:
 | 
			
		||||
  csi.storage.k8s.io/fstype: xfs
 | 
			
		||||
  storage: ks-pvs
 | 
			
		||||
  cache: none
 | 
			
		||||
  ssd: "true"
 | 
			
		||||
@@ -1,12 +1,3 @@
 | 
			
		||||
# KeyDB
 | 
			
		||||
 | 
			
		||||
KeyDB can be instantiated by symlinking the generated keydb.yml,
 | 
			
		||||
in future this could be handled by an operator.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
helm template keydb enapter/keydb --set persistentVolume.enabled=false > keydb.yml
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
# To regenerate base network policies
 | 
			
		||||
 | 
			
		||||
It's quite odd there is no better way to generate these.
 | 
			
		||||
 
 | 
			
		||||
@@ -143,7 +143,7 @@ metadata:
 | 
			
		||||
  name: redis
 | 
			
		||||
  annotations:
 | 
			
		||||
    kubernetes.io/description: |
 | 
			
		||||
      Storage class for Redis, KeyDB, DragonflyDB and similar applications
 | 
			
		||||
      Storage class for DragonflyDB and similar applications
 | 
			
		||||
      deployed in highly available fashion utilizing application level
 | 
			
		||||
      replication needing persistent volume for storing the snapshots.
 | 
			
		||||
      This storage class uses XFS, has no block level redundancy and
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user