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
 | 
					[^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).
 | 
					[^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
 | 
					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
 | 
					# To regenerate base network policies
 | 
				
			||||||
 | 
					
 | 
				
			||||||
It's quite odd there is no better way to generate these.
 | 
					It's quite odd there is no better way to generate these.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -143,7 +143,7 @@ metadata:
 | 
				
			|||||||
  name: redis
 | 
					  name: redis
 | 
				
			||||||
  annotations:
 | 
					  annotations:
 | 
				
			||||||
    kubernetes.io/description: |
 | 
					    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
 | 
					      deployed in highly available fashion utilizing application level
 | 
				
			||||||
      replication needing persistent volume for storing the snapshots.
 | 
					      replication needing persistent volume for storing the snapshots.
 | 
				
			||||||
      This storage class uses XFS, has no block level redundancy and
 | 
					      This storage class uses XFS, has no block level redundancy and
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user