Change Valkey to be a StatefulSet whilst renaming - #1368
Merged
Conversation
dyff of changes in rendered templates of CI manifestsFull contents of manifests and dyffs are available in https://github.com/element-hq/ess-helm/actions/runs/33621279728/artifacts/9843030611 all-enabled-values.yaml@@ ConfigMap/ess-ci/release-name-hookshot - data.config-override.yaml @@
bridge:
domain: "ess.localhost"
url: "http://release-name-synapse.ess-ci.svc.cluster.local.:8008"
port: 9993
[one line unchanged)]
passFile: /secrets/release-name-generated/HOOKSHOT_RSA_PASSKEY
cache:
- redisUri: "redis://release-name-redis.ess-ci.svc.cluster.local.:6379/1"
+ redisUri: "redis://release-name-valkey.ess-ci.svc.cluster.local.:6379/1"
logging:
level: info
[22 lines unchanged)]
widgets:
publicUrl: https://synapse.ess.localhost/_matrix/hookshot/widgetapi/v1/static
@@ ConfigMap/ess-ci/release-name-matrix-rtc-sfu - data.config-overrides.yaml @@
port: 7880
prometheus:
port: 6789
[17 lines unchanged)]
key_file: /conf/keys.yaml
redis:
- address: "release-name-redis.ess-ci.svc.cluster.local.:6379"
+ address: "release-name-valkey.ess-ci.svc.cluster.local.:6379"
db: 3
room:
auto_create: false
[two lines unchanged)]
api_key: matrix-rtc
urls:
- http://release-name-matrix-rtc-authorisation-service.ess-ci.svc.cluster.local.:8080/sfu_webhook
@@ ConfigMap/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_configmap.yaml
- apiVersion: v1
- kind: ConfigMap
- metadata:
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- name: release-name-redis
- namespace: ess-ci
- data:
- redis.conf: |
- # Do not require a password
- protected-mode no
- port 6379
-
- tcp-backlog 511
- tcp-keepalive 300
-
- # Never close the connection
- timeout 0
-
- # We run the redis in a container so disable both of these
- daemonize no
- supervised no
-
- loglevel notice
- logfile ''
-
- databases 16
- always-show-logo no
- stop-writes-on-bgsave-error yes
-
- # We never save to the disk
- save ''
-
- replica-serve-stale-data yes
- replica-read-only yes
- repl-diskless-sync no
- repl-diskless-sync-delay 5
- repl-diskless-load disabled
- repl-disable-tcp-nodelay no
- replica-priority 100
- acllog-max-len 128
-
- lazyfree-lazy-eviction no
- lazyfree-lazy-expire no
- lazyfree-lazy-server-del no
- replica-lazy-flush no
-
- lazyfree-lazy-user-del no
-
- lazyfree-lazy-user-flush no
- oom-score-adj no
- oom-score-adj-values 0 200 800
-
- disable-thp yes
-
- appendonly no
- appendfilename 'appendonly.aof'
- appendfsync everysec
-
- no-appendfsync-on-rewrite no
-
- auto-aof-rewrite-percentage 100
- auto-aof-rewrite-min-size 64mb
- aof-load-truncated yes
- aof-use-rdb-preamble yes
- lua-time-limit 5000
- slowlog-log-slower-than 10000
- slowlog-max-len 128
- latency-monitor-threshold 0
- notify-keyspace-events ""
- hash-max-ziplist-entries 512
- hash-max-ziplist-value 64
- list-max-ziplist-size -2
- list-compress-depth 0
- set-max-intset-entries 512
- zset-max-ziplist-entries 128
- zset-max-ziplist-value 64
- hll-sparse-max-bytes 3000
- stream-node-max-bytes 4096
- stream-node-max-entries 100
- activerehashing yes
- client-output-buffer-limit normal 0 0 0
- client-output-buffer-limit replica 256mb 64mb 60
- client-output-buffer-limit pubsub 32mb 8mb 60
-
- # Hz is the freuqency at which background tasks are performed, we keep this low to save CPU
- hz 1
-
- # The hz value is increased to scale with the number of clients connected.
- dynamic-hz yes
-
- aof-rewrite-incremental-fsync yes
- rdb-save-incremental-fsync yes
- jemalloc-bg-thread yes
-
- maxmemory 40mb
- maxmemory-policy allkeys-lru
@@ ConfigMap/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_configmap.yaml
+ apiVersion: v1
+ kind: ConfigMap
+ metadata:
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ name: release-name-valkey
+ namespace: ess-ci
+ data:
+ valkey.conf: |
+ # Do not require a password
+ protected-mode no
+ port 6379
+
+ tcp-backlog 511
+ tcp-keepalive 300
+
+ # Never close the connection
+ timeout 0
+
+ # We run the Valkey in a container so disable both of these
+ daemonize no
+ supervised no
+
+ loglevel notice
+ logfile ''
+
+ databases 16
+ always-show-logo no
+ stop-writes-on-bgsave-error yes
+
+ # We never save to the disk
+ save ''
+
+ replica-serve-stale-data yes
+ replica-read-only yes
+ repl-diskless-sync no
+ repl-diskless-sync-delay 5
+ repl-diskless-load disabled
+ repl-disable-tcp-nodelay no
+ replica-priority 100
+ acllog-max-len 128
+
+ lazyfree-lazy-eviction no
+ lazyfree-lazy-expire no
+ lazyfree-lazy-server-del no
+ replica-lazy-flush no
+
+ lazyfree-lazy-user-del no
+
+ lazyfree-lazy-user-flush no
+ oom-score-adj no
+ oom-score-adj-values 0 200 800
+
+ disable-thp yes
+
+ appendonly no
+ appendfilename 'appendonly.aof'
+ appendfsync everysec
+
+ no-appendfsync-on-rewrite no
+
+ auto-aof-rewrite-percentage 100
+ auto-aof-rewrite-min-size 64mb
+ aof-load-truncated yes
+ aof-use-rdb-preamble yes
+ lua-time-limit 5000
+ slowlog-log-slower-than 10000
+ slowlog-max-len 128
+ latency-monitor-threshold 0
+ notify-keyspace-events ""
+ hash-max-ziplist-entries 512
+ hash-max-ziplist-value 64
+ list-max-ziplist-size -2
+ list-compress-depth 0
+ set-max-intset-entries 512
+ zset-max-ziplist-entries 128
+ zset-max-ziplist-value 64
+ hll-sparse-max-bytes 3000
+ stream-node-max-bytes 4096
+ stream-node-max-entries 100
+ activerehashing yes
+ client-output-buffer-limit normal 0 0 0
+ client-output-buffer-limit replica 256mb 64mb 60
+ client-output-buffer-limit pubsub 32mb 8mb 60
+
+ # Hz is the freuqency at which background tasks are performed, we keep this low to save CPU
+ hz 1
+
+ # The hz value is increased to scale with the number of clients connected.
+ dynamic-hz yes
+
+ aof-rewrite-incremental-fsync yes
+ rdb-save-incremental-fsync yes
+ jemalloc-bg-thread yes
+
+ maxmemory 40mb
+ maxmemory-policy allkeys-lru
@@ Deployment/ess-ci/release-name-matrix-rtc-authorisation-service - spec.template.spec.containers.matrix-rtc-authorisation-service.env.LIVEKIT_REDIS_URL.value @@
- redis://release-name-redis.ess-ci.svc.cluster.local.:6379/2
+ redis://release-name-valkey.ess-ci.svc.cluster.local.:6379/2
@@ Deployment/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_deployment.yaml
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- k8s.element.io/redis-config-hash: "3034b3cfe78419348e36bb348fad98b46a736334"
- name: release-name-redis
- namespace: ess-ci
- spec:
- replicas: 1
- selector:
- matchLabels:
- app.kubernetes.io/instance: release-name-redis
- strategy:
- type: Recreate
- template:
- metadata:
- labels:
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- k8s.element.io/redis-config-hash: "3034b3cfe78419348e36bb348fad98b46a736334"
- spec:
- automountServiceAccountToken: false
- serviceAccountName: release-name-redis
- securityContext:
- fsGroup: 10002
- runAsGroup: 10002
- runAsNonRoot: true
- runAsUser: 10002
- seccompProfile:
- type: RuntimeDefault
- supplementalGroups: []
- restartPolicy: Always
- topologySpreadConstraints:
- - labelSelector:
- matchLabels:
- app.kubernetes.io/instance: release-name-redis
- matchLabelKeys:
- - pod-template-hash
- maxSkew: 1
- topologyKey: kubernetes.io/hostname
- whenUnsatisfiable: ScheduleAnyway
- containers:
- - name: redis
- args:
- - "/config/redis.conf"
- image: "docker.io/valkey/valkey:9.1-alpine"
- imagePullPolicy: Always
- securityContext:
- allowPrivilegeEscalation: false
- capabilities:
- drop:
- - ALL
- privileged: false
- readOnlyRootFilesystem: true
- ports:
- - containerPort: 6379
- name: redis
- protocol: TCP
- startupProbe:
- failureThreshold: 5
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- tcpSocket:
- port: redis
- livenessProbe:
- failureThreshold: 3
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- tcpSocket:
- port: redis
- readinessProbe:
- failureThreshold: 3
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- exec:
- command:
- - redis-cli
- - ping
- resources:
- limits:
- memory: 50Mi
- requests:
- cpu: 50m
- memory: 50Mi
- volumeMounts:
- - mountPath: /config/redis.conf
- name: config
- readOnly: true
- subPath: redis.conf
- - name: redis-exporter
- image: "ghcr.io/oliver006/redis_exporter:v1.90.0"
- imagePullPolicy: Always
- securityContext:
- allowPrivilegeEscalation: false
- capabilities:
- drop:
- - ALL
- privileged: false
- readOnlyRootFilesystem: true
- ports:
- - name: metrics
- containerPort: 9121
- startupProbe:
- failureThreshold: 20
- periodSeconds: 2
- successThreshold: 1
- timeoutSeconds: 1
- httpGet:
- path: /metrics
- port: metrics
- livenessProbe:
- failureThreshold: 3
- periodSeconds: 6
- successThreshold: 1
- timeoutSeconds: 2
- httpGet:
- path: /metrics
- port: metrics
- readinessProbe:
- failureThreshold: 3
- periodSeconds: 2
- successThreshold: 2
- timeoutSeconds: 2
- httpGet:
- path: /metrics
- port: metrics
- resources:
- limits:
- memory: 50Mi
- requests:
- cpu: 10m
- memory: 10Mi
- volumes:
- - configMap:
- name: "release-name-redis"
- defaultMode: 420
- name: config
@@ Service/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_service.yaml
- apiVersion: v1
- kind: Service
- metadata:
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- name: release-name-redis
- namespace: ess-ci
- spec:
- type: ClusterIP
- ipFamilyPolicy: PreferDualStack
- ports:
- - port: 6379
- targetPort: redis
- name: redis
- - port: 9121
- targetPort: metrics
- name: metrics
- selector:
- app.kubernetes.io/instance: "release-name-redis"
@@ Service/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_service.yaml
+ apiVersion: v1
+ kind: Service
+ metadata:
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ name: release-name-valkey
+ namespace: ess-ci
+ spec:
+ type: ClusterIP
+ clusterIP: None
+ ipFamilyPolicy: PreferDualStack
+ ports:
+ - port: 6379
+ targetPort: valkey
+ name: valkey
+ - port: 9121
+ targetPort: metrics
+ name: metrics
+ selector:
+ app.kubernetes.io/instance: "release-name-valkey"
@@ ServiceAccount/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_service_account.yaml
- apiVersion: v1
- kind: ServiceAccount
- metadata:
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- name: release-name-redis
- namespace: ess-ci
- automountServiceAccountToken: false
@@ ServiceAccount/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_service_account.yaml
+ apiVersion: v1
+ kind: ServiceAccount
+ metadata:
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ name: release-name-valkey
+ namespace: ess-ci
+ automountServiceAccountToken: false
@@ ServiceMonitor/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_service_monitor.yaml
- apiVersion: monitoring.coreos.com/v1
- kind: ServiceMonitor
- metadata:
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- name: release-name-redis
- namespace: ess-ci
- spec:
- endpoints:
- - interval: 30s
- port: metrics
- relabelings:
- - targetLabel: instance
- sourceLabels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
- action: replace
- selector:
- matchLabels:
- app.kubernetes.io/instance: release-name-redis
@@ ServiceMonitor/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_service_monitor.yaml
+ apiVersion: monitoring.coreos.com/v1
+ kind: ServiceMonitor
+ metadata:
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ name: release-name-valkey
+ namespace: ess-ci
+ spec:
+ endpoints:
+ - interval: 30s
+ port: metrics
+ relabelings:
+ - targetLabel: instance
+ sourceLabels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
+ action: replace
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: release-name-valkey
@@ StatefulSet/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_statefulset.yaml
+ apiVersion: apps/v1
+ kind: StatefulSet
+ metadata:
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ k8s.element.io/valkey-config-hash: "041231d26819a14475f14ac6d0d412db9b31533f"
+ name: release-name-valkey
+ namespace: ess-ci
+ spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: release-name-valkey
+ serviceName: release-name-valkey
+ updateStrategy:
+ type: RollingUpdate
+ # Without this CrashLoopBackoffs due to config failures block pod recreation
+ podManagementPolicy: Parallel
+ template:
+ metadata:
+ labels:
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ k8s.element.io/valkey-config-hash: "041231d26819a14475f14ac6d0d412db9b31533f"
+ spec:
+ automountServiceAccountToken: false
+ serviceAccountName: release-name-valkey
+ securityContext:
+ fsGroup: 10002
+ runAsGroup: 10002
+ runAsNonRoot: true
+ runAsUser: 10002
+ seccompProfile:
+ type: RuntimeDefault
+ supplementalGroups: []
+ restartPolicy: Always
+ topologySpreadConstraints:
+ - labelSelector:
+ matchLabels:
+ app.kubernetes.io/instance: release-name-valkey
+ matchLabelKeys: []
+ maxSkew: 1
+ topologyKey: kubernetes.io/hostname
+ whenUnsatisfiable: ScheduleAnyway
+ containers:
+ - name: valkey
+ args:
+ - "/config/valkey.conf"
+ image: "docker.io/valkey/valkey:9.1-alpine"
+ imagePullPolicy: Always
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ ports:
+ - containerPort: 6379
+ name: valkey
+ protocol: TCP
+ startupProbe:
+ failureThreshold: 5
+ periodSeconds: 10
+ successThreshold: 1
+ timeoutSeconds: 1
+ tcpSocket:
+ port: valkey
+ livenessProbe:
+ failureThreshold: 3
+ periodSeconds: 10
+ successThreshold: 1
+ timeoutSeconds: 1
+ tcpSocket:
+ port: valkey
+ readinessProbe:
+ failureThreshold: 3
+ periodSeconds: 10
+ successThreshold: 1
+ timeoutSeconds: 1
+ exec:
+ command:
+ - valkey-cli
+ - ping
+ resources:
+ limits:
+ memory: 50Mi
+ requests:
+ cpu: 50m
+ memory: 50Mi
+ volumeMounts:
+ - mountPath: /config/valkey.conf
+ name: config
+ readOnly: true
+ subPath: valkey.conf
+ - name: valkey-exporter
+ image: "ghcr.io/oliver006/redis_exporter:v1.90.0"
+ imagePullPolicy: Always
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ ports:
+ - name: metrics
+ containerPort: 9121
+ startupProbe:
+ failureThreshold: 20
+ periodSeconds: 2
+ successThreshold: 1
+ timeoutSeconds: 1
+ httpGet:
+ path: /metrics
+ port: metrics
+ livenessProbe:
+ failureThreshold: 3
+ periodSeconds: 6
+ successThreshold: 1
+ timeoutSeconds: 2
+ httpGet:
+ path: /metrics
+ port: metrics
+ readinessProbe:
+ failureThreshold: 3
+ periodSeconds: 2
+ successThreshold: 2
+ timeoutSeconds: 2
+ httpGet:
+ path: /metrics
+ port: metrics
+ resources:
+ limits:
+ memory: 50Mi
+ requests:
+ cpu: 10m
+ memory: 10Mi
+ volumes:
+ - configMap:
+ name: "release-name-valkey"
+ defaultMode: 420
+ name: config
example-default-enabled-components-checkov-values.yaml@@ ConfigMap/ess-ci/release-name-matrix-rtc-sfu - data.config-overrides.yaml @@
port: 7880
prometheus:
port: 6789
[17 lines unchanged)]
key_file: /conf/keys.yaml
redis:
- address: "release-name-redis.ess-ci.svc.cluster.local.:6379"
+ address: "release-name-valkey.ess-ci.svc.cluster.local.:6379"
db: 3
room:
auto_create: false
[two lines unchanged)]
api_key: matrix-rtc
urls:
- http://release-name-matrix-rtc-authorisation-service.ess-ci.svc.cluster.local.:8080/sfu_webhook
@@ ConfigMap/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_configmap.yaml
- apiVersion: v1
- kind: ConfigMap
- metadata:
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- name: release-name-redis
- namespace: ess-ci
- data:
- redis.conf: |
- # Do not require a password
- protected-mode no
- port 6379
-
- tcp-backlog 511
- tcp-keepalive 300
-
- # Never close the connection
- timeout 0
-
- # We run the redis in a container so disable both of these
- daemonize no
- supervised no
-
- loglevel notice
- logfile ''
-
- databases 16
- always-show-logo no
- stop-writes-on-bgsave-error yes
-
- # We never save to the disk
- save ''
-
- replica-serve-stale-data yes
- replica-read-only yes
- repl-diskless-sync no
- repl-diskless-sync-delay 5
- repl-diskless-load disabled
- repl-disable-tcp-nodelay no
- replica-priority 100
- acllog-max-len 128
-
- lazyfree-lazy-eviction no
- lazyfree-lazy-expire no
- lazyfree-lazy-server-del no
- replica-lazy-flush no
-
- lazyfree-lazy-user-del no
-
- lazyfree-lazy-user-flush no
- oom-score-adj no
- oom-score-adj-values 0 200 800
-
- disable-thp yes
-
- appendonly no
- appendfilename 'appendonly.aof'
- appendfsync everysec
-
- no-appendfsync-on-rewrite no
-
- auto-aof-rewrite-percentage 100
- auto-aof-rewrite-min-size 64mb
- aof-load-truncated yes
- aof-use-rdb-preamble yes
- lua-time-limit 5000
- slowlog-log-slower-than 10000
- slowlog-max-len 128
- latency-monitor-threshold 0
- notify-keyspace-events ""
- hash-max-ziplist-entries 512
- hash-max-ziplist-value 64
- list-max-ziplist-size -2
- list-compress-depth 0
- set-max-intset-entries 512
- zset-max-ziplist-entries 128
- zset-max-ziplist-value 64
- hll-sparse-max-bytes 3000
- stream-node-max-bytes 4096
- stream-node-max-entries 100
- activerehashing yes
- client-output-buffer-limit normal 0 0 0
- client-output-buffer-limit replica 256mb 64mb 60
- client-output-buffer-limit pubsub 32mb 8mb 60
-
- # Hz is the freuqency at which background tasks are performed, we keep this low to save CPU
- hz 1
-
- # The hz value is increased to scale with the number of clients connected.
- dynamic-hz yes
-
- aof-rewrite-incremental-fsync yes
- rdb-save-incremental-fsync yes
- jemalloc-bg-thread yes
-
- maxmemory 40mb
- maxmemory-policy allkeys-lru
@@ ConfigMap/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_configmap.yaml
+ apiVersion: v1
+ kind: ConfigMap
+ metadata:
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ name: release-name-valkey
+ namespace: ess-ci
+ data:
+ valkey.conf: |
+ # Do not require a password
+ protected-mode no
+ port 6379
+
+ tcp-backlog 511
+ tcp-keepalive 300
+
+ # Never close the connection
+ timeout 0
+
+ # We run the Valkey in a container so disable both of these
+ daemonize no
+ supervised no
+
+ loglevel notice
+ logfile ''
+
+ databases 16
+ always-show-logo no
+ stop-writes-on-bgsave-error yes
+
+ # We never save to the disk
+ save ''
+
+ replica-serve-stale-data yes
+ replica-read-only yes
+ repl-diskless-sync no
+ repl-diskless-sync-delay 5
+ repl-diskless-load disabled
+ repl-disable-tcp-nodelay no
+ replica-priority 100
+ acllog-max-len 128
+
+ lazyfree-lazy-eviction no
+ lazyfree-lazy-expire no
+ lazyfree-lazy-server-del no
+ replica-lazy-flush no
+
+ lazyfree-lazy-user-del no
+
+ lazyfree-lazy-user-flush no
+ oom-score-adj no
+ oom-score-adj-values 0 200 800
+
+ disable-thp yes
+
+ appendonly no
+ appendfilename 'appendonly.aof'
+ appendfsync everysec
+
+ no-appendfsync-on-rewrite no
+
+ auto-aof-rewrite-percentage 100
+ auto-aof-rewrite-min-size 64mb
+ aof-load-truncated yes
+ aof-use-rdb-preamble yes
+ lua-time-limit 5000
+ slowlog-log-slower-than 10000
+ slowlog-max-len 128
+ latency-monitor-threshold 0
+ notify-keyspace-events ""
+ hash-max-ziplist-entries 512
+ hash-max-ziplist-value 64
+ list-max-ziplist-size -2
+ list-compress-depth 0
+ set-max-intset-entries 512
+ zset-max-ziplist-entries 128
+ zset-max-ziplist-value 64
+ hll-sparse-max-bytes 3000
+ stream-node-max-bytes 4096
+ stream-node-max-entries 100
+ activerehashing yes
+ client-output-buffer-limit normal 0 0 0
+ client-output-buffer-limit replica 256mb 64mb 60
+ client-output-buffer-limit pubsub 32mb 8mb 60
+
+ # Hz is the freuqency at which background tasks are performed, we keep this low to save CPU
+ hz 1
+
+ # The hz value is increased to scale with the number of clients connected.
+ dynamic-hz yes
+
+ aof-rewrite-incremental-fsync yes
+ rdb-save-incremental-fsync yes
+ jemalloc-bg-thread yes
+
+ maxmemory 40mb
+ maxmemory-policy allkeys-lru
@@ Deployment/ess-ci/release-name-matrix-rtc-authorisation-service - spec.template.spec.containers.matrix-rtc-authorisation-service.env.LIVEKIT_REDIS_URL.value @@
- redis://release-name-redis.ess-ci.svc.cluster.local.:6379/2
+ redis://release-name-valkey.ess-ci.svc.cluster.local.:6379/2
@@ Deployment/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_deployment.yaml
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- annotations:
- checkov.io/skip1: CKV_K8S_11=We deliberately don't set CPU limits. Pod is BestEffort not Guaranteed
- checkov.io/skip2: CKV_K8S_43=No digests
- checkov.io/skip3: CKV2_K8S_6=No network policy yet
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- k8s.element.io/redis-config-hash: "3034b3cfe78419348e36bb348fad98b46a736334"
- name: release-name-redis
- namespace: ess-ci
- spec:
- replicas: 1
- selector:
- matchLabels:
- app.kubernetes.io/instance: release-name-redis
- strategy:
- type: Recreate
- template:
- metadata:
- labels:
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- k8s.element.io/redis-config-hash: "3034b3cfe78419348e36bb348fad98b46a736334"
- annotations:
- checkov.io/skip1: CKV_K8S_11=We deliberately don't set CPU limits. Pod is BestEffort not Guaranteed
- checkov.io/skip2: CKV_K8S_43=No digests
- checkov.io/skip3: CKV2_K8S_6=No network policy yet
- spec:
- automountServiceAccountToken: false
- serviceAccountName: release-name-redis
- securityContext:
- fsGroup: 10002
- runAsGroup: 10002
- runAsNonRoot: true
- runAsUser: 10002
- seccompProfile:
- type: RuntimeDefault
- supplementalGroups: []
- restartPolicy: Always
- topologySpreadConstraints:
- - labelSelector:
- matchLabels:
- app.kubernetes.io/instance: release-name-redis
- matchLabelKeys:
- - pod-template-hash
- maxSkew: 1
- topologyKey: kubernetes.io/hostname
- whenUnsatisfiable: ScheduleAnyway
- containers:
- - name: redis
- args:
- - "/config/redis.conf"
- image: "docker.io/valkey/valkey:9.1-alpine"
- imagePullPolicy: Always
- securityContext:
- allowPrivilegeEscalation: false
- capabilities:
- drop:
- - ALL
- privileged: false
- readOnlyRootFilesystem: true
- ports:
- - containerPort: 6379
- name: redis
- protocol: TCP
- startupProbe:
- failureThreshold: 5
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- tcpSocket:
- port: redis
- livenessProbe:
- failureThreshold: 3
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- tcpSocket:
- port: redis
- readinessProbe:
- failureThreshold: 3
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- exec:
- command:
- - redis-cli
- - ping
- resources:
- limits:
- memory: 50Mi
- requests:
- cpu: 50m
- memory: 50Mi
- volumeMounts:
- - mountPath: /config/redis.conf
- name: config
- readOnly: true
- subPath: redis.conf
- - name: redis-exporter
- image: "ghcr.io/oliver006/redis_exporter:v1.90.0"
- imagePullPolicy: Always
- securityContext:
- allowPrivilegeEscalation: false
- capabilities:
- drop:
- - ALL
- privileged: false
- readOnlyRootFilesystem: true
- ports:
- - name: metrics
- containerPort: 9121
- startupProbe:
- failureThreshold: 20
- periodSeconds: 2
- successThreshold: 1
- timeoutSeconds: 1
- httpGet:
- path: /metrics
- port: metrics
- livenessProbe:
- failureThreshold: 3
- periodSeconds: 6
- successThreshold: 1
- timeoutSeconds: 2
- httpGet:
- path: /metrics
- port: metrics
- readinessProbe:
- failureThreshold: 3
- periodSeconds: 2
- successThreshold: 2
- timeoutSeconds: 2
- httpGet:
- path: /metrics
- port: metrics
- resources:
- limits:
- memory: 50Mi
- requests:
- cpu: 10m
- memory: 10Mi
- volumes:
- - configMap:
- name: "release-name-redis"
- defaultMode: 420
- name: config
@@ Service/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_service.yaml
- apiVersion: v1
- kind: Service
- metadata:
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- name: release-name-redis
- namespace: ess-ci
- spec:
- type: ClusterIP
- ipFamilyPolicy: PreferDualStack
- ports:
- - port: 6379
- targetPort: redis
- name: redis
- - port: 9121
- targetPort: metrics
- name: metrics
- selector:
- app.kubernetes.io/instance: "release-name-redis"
@@ Service/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_service.yaml
+ apiVersion: v1
+ kind: Service
+ metadata:
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ name: release-name-valkey
+ namespace: ess-ci
+ spec:
+ type: ClusterIP
+ clusterIP: None
+ ipFamilyPolicy: PreferDualStack
+ ports:
+ - port: 6379
+ targetPort: valkey
+ name: valkey
+ - port: 9121
+ targetPort: metrics
+ name: metrics
+ selector:
+ app.kubernetes.io/instance: "release-name-valkey"
@@ ServiceAccount/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_service_account.yaml
- apiVersion: v1
- kind: ServiceAccount
- metadata:
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- name: release-name-redis
- namespace: ess-ci
- automountServiceAccountToken: false
@@ ServiceAccount/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_service_account.yaml
+ apiVersion: v1
+ kind: ServiceAccount
+ metadata:
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ name: release-name-valkey
+ namespace: ess-ci
+ automountServiceAccountToken: false
@@ ServiceMonitor/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_service_monitor.yaml
- apiVersion: monitoring.coreos.com/v1
- kind: ServiceMonitor
- metadata:
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- name: release-name-redis
- namespace: ess-ci
- spec:
- endpoints:
- - interval: 30s
- port: metrics
- relabelings:
- - targetLabel: instance
- sourceLabels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
- action: replace
- selector:
- matchLabels:
- app.kubernetes.io/instance: release-name-redis
@@ ServiceMonitor/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_service_monitor.yaml
+ apiVersion: monitoring.coreos.com/v1
+ kind: ServiceMonitor
+ metadata:
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ name: release-name-valkey
+ namespace: ess-ci
+ spec:
+ endpoints:
+ - interval: 30s
+ port: metrics
+ relabelings:
+ - targetLabel: instance
+ sourceLabels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
+ action: replace
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: release-name-valkey
@@ StatefulSet/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_statefulset.yaml
+ apiVersion: apps/v1
+ kind: StatefulSet
+ metadata:
+ annotations:
+ checkov.io/skip1: CKV_K8S_11=We deliberately don't set CPU limits. Pod is BestEffort not Guaranteed
+ checkov.io/skip2: CKV_K8S_43=No digests
+ checkov.io/skip3: CKV2_K8S_6=No network policy yet
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ k8s.element.io/valkey-config-hash: "041231d26819a14475f14ac6d0d412db9b31533f"
+ name: release-name-valkey
+ namespace: ess-ci
+ spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: release-name-valkey
+ serviceName: release-name-valkey
+ updateStrategy:
+ type: RollingUpdate
+ # Without this CrashLoopBackoffs due to config failures block pod recreation
+ podManagementPolicy: Parallel
+ template:
+ metadata:
+ labels:
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ k8s.element.io/valkey-config-hash: "041231d26819a14475f14ac6d0d412db9b31533f"
+ annotations:
+ checkov.io/skip1: CKV_K8S_11=We deliberately don't set CPU limits. Pod is BestEffort not Guaranteed
+ checkov.io/skip2: CKV_K8S_43=No digests
+ checkov.io/skip3: CKV2_K8S_6=No network policy yet
+ spec:
+ automountServiceAccountToken: false
+ serviceAccountName: release-name-valkey
+ securityContext:
+ fsGroup: 10002
+ runAsGroup: 10002
+ runAsNonRoot: true
+ runAsUser: 10002
+ seccompProfile:
+ type: RuntimeDefault
+ supplementalGroups: []
+ restartPolicy: Always
+ topologySpreadConstraints:
+ - labelSelector:
+ matchLabels:
+ app.kubernetes.io/instance: release-name-valkey
+ matchLabelKeys: []
+ maxSkew: 1
+ topologyKey: kubernetes.io/hostname
+ whenUnsatisfiable: ScheduleAnyway
+ containers:
+ - name: valkey
+ args:
+ - "/config/valkey.conf"
+ image: "docker.io/valkey/valkey:9.1-alpine"
+ imagePullPolicy: Always
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ ports:
+ - containerPort: 6379
+ name: valkey
+ protocol: TCP
+ startupProbe:
+ failureThreshold: 5
+ periodSeconds: 10
+ successThreshold: 1
+ timeoutSeconds: 1
+ tcpSocket:
+ port: valkey
+ livenessProbe:
+ failureThreshold: 3
+ periodSeconds: 10
+ successThreshold: 1
+ timeoutSeconds: 1
+ tcpSocket:
+ port: valkey
+ readinessProbe:
+ failureThreshold: 3
+ periodSeconds: 10
+ successThreshold: 1
+ timeoutSeconds: 1
+ exec:
+ command:
+ - valkey-cli
+ - ping
+ resources:
+ limits:
+ memory: 50Mi
+ requests:
+ cpu: 50m
+ memory: 50Mi
+ volumeMounts:
+ - mountPath: /config/valkey.conf
+ name: config
+ readOnly: true
+ subPath: valkey.conf
+ - name: valkey-exporter
+ image: "ghcr.io/oliver006/redis_exporter:v1.90.0"
+ imagePullPolicy: Always
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ ports:
+ - name: metrics
+ containerPort: 9121
+ startupProbe:
+ failureThreshold: 20
+ periodSeconds: 2
+ successThreshold: 1
+ timeoutSeconds: 1
+ httpGet:
+ path: /metrics
+ port: metrics
+ livenessProbe:
+ failureThreshold: 3
+ periodSeconds: 6
+ successThreshold: 1
+ timeoutSeconds: 2
+ httpGet:
+ path: /metrics
+ port: metrics
+ readinessProbe:
+ failureThreshold: 3
+ periodSeconds: 2
+ successThreshold: 2
+ timeoutSeconds: 2
+ httpGet:
+ path: /metrics
+ port: metrics
+ resources:
+ limits:
+ memory: 50Mi
+ requests:
+ cpu: 10m
+ memory: 10Mi
+ volumes:
+ - configMap:
+ name: "release-name-valkey"
+ defaultMode: 420
+ name: config
example-default-enabled-components-values.yaml@@ ConfigMap/ess-ci/release-name-matrix-rtc-sfu - data.config-overrides.yaml @@
port: 7880
prometheus:
port: 6789
[17 lines unchanged)]
key_file: /conf/keys.yaml
redis:
- address: "release-name-redis.ess-ci.svc.cluster.local.:6379"
+ address: "release-name-valkey.ess-ci.svc.cluster.local.:6379"
db: 3
room:
auto_create: false
[two lines unchanged)]
api_key: matrix-rtc
urls:
- http://release-name-matrix-rtc-authorisation-service.ess-ci.svc.cluster.local.:8080/sfu_webhook
@@ ConfigMap/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_configmap.yaml
- apiVersion: v1
- kind: ConfigMap
- metadata:
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- name: release-name-redis
- namespace: ess-ci
- data:
- redis.conf: |
- # Do not require a password
- protected-mode no
- port 6379
-
- tcp-backlog 511
- tcp-keepalive 300
-
- # Never close the connection
- timeout 0
-
- # We run the redis in a container so disable both of these
- daemonize no
- supervised no
-
- loglevel notice
- logfile ''
-
- databases 16
- always-show-logo no
- stop-writes-on-bgsave-error yes
-
- # We never save to the disk
- save ''
-
- replica-serve-stale-data yes
- replica-read-only yes
- repl-diskless-sync no
- repl-diskless-sync-delay 5
- repl-diskless-load disabled
- repl-disable-tcp-nodelay no
- replica-priority 100
- acllog-max-len 128
-
- lazyfree-lazy-eviction no
- lazyfree-lazy-expire no
- lazyfree-lazy-server-del no
- replica-lazy-flush no
-
- lazyfree-lazy-user-del no
-
- lazyfree-lazy-user-flush no
- oom-score-adj no
- oom-score-adj-values 0 200 800
-
- disable-thp yes
-
- appendonly no
- appendfilename 'appendonly.aof'
- appendfsync everysec
-
- no-appendfsync-on-rewrite no
-
- auto-aof-rewrite-percentage 100
- auto-aof-rewrite-min-size 64mb
- aof-load-truncated yes
- aof-use-rdb-preamble yes
- lua-time-limit 5000
- slowlog-log-slower-than 10000
- slowlog-max-len 128
- latency-monitor-threshold 0
- notify-keyspace-events ""
- hash-max-ziplist-entries 512
- hash-max-ziplist-value 64
- list-max-ziplist-size -2
- list-compress-depth 0
- set-max-intset-entries 512
- zset-max-ziplist-entries 128
- zset-max-ziplist-value 64
- hll-sparse-max-bytes 3000
- stream-node-max-bytes 4096
- stream-node-max-entries 100
- activerehashing yes
- client-output-buffer-limit normal 0 0 0
- client-output-buffer-limit replica 256mb 64mb 60
- client-output-buffer-limit pubsub 32mb 8mb 60
-
- # Hz is the freuqency at which background tasks are performed, we keep this low to save CPU
- hz 1
-
- # The hz value is increased to scale with the number of clients connected.
- dynamic-hz yes
-
- aof-rewrite-incremental-fsync yes
- rdb-save-incremental-fsync yes
- jemalloc-bg-thread yes
-
- maxmemory 40mb
- maxmemory-policy allkeys-lru
@@ ConfigMap/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_configmap.yaml
+ apiVersion: v1
+ kind: ConfigMap
+ metadata:
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ name: release-name-valkey
+ namespace: ess-ci
+ data:
+ valkey.conf: |
+ # Do not require a password
+ protected-mode no
+ port 6379
+
+ tcp-backlog 511
+ tcp-keepalive 300
+
+ # Never close the connection
+ timeout 0
+
+ # We run the Valkey in a container so disable both of these
+ daemonize no
+ supervised no
+
+ loglevel notice
+ logfile ''
+
+ databases 16
+ always-show-logo no
+ stop-writes-on-bgsave-error yes
+
+ # We never save to the disk
+ save ''
+
+ replica-serve-stale-data yes
+ replica-read-only yes
+ repl-diskless-sync no
+ repl-diskless-sync-delay 5
+ repl-diskless-load disabled
+ repl-disable-tcp-nodelay no
+ replica-priority 100
+ acllog-max-len 128
+
+ lazyfree-lazy-eviction no
+ lazyfree-lazy-expire no
+ lazyfree-lazy-server-del no
+ replica-lazy-flush no
+
+ lazyfree-lazy-user-del no
+
+ lazyfree-lazy-user-flush no
+ oom-score-adj no
+ oom-score-adj-values 0 200 800
+
+ disable-thp yes
+
+ appendonly no
+ appendfilename 'appendonly.aof'
+ appendfsync everysec
+
+ no-appendfsync-on-rewrite no
+
+ auto-aof-rewrite-percentage 100
+ auto-aof-rewrite-min-size 64mb
+ aof-load-truncated yes
+ aof-use-rdb-preamble yes
+ lua-time-limit 5000
+ slowlog-log-slower-than 10000
+ slowlog-max-len 128
+ latency-monitor-threshold 0
+ notify-keyspace-events ""
+ hash-max-ziplist-entries 512
+ hash-max-ziplist-value 64
+ list-max-ziplist-size -2
+ list-compress-depth 0
+ set-max-intset-entries 512
+ zset-max-ziplist-entries 128
+ zset-max-ziplist-value 64
+ hll-sparse-max-bytes 3000
+ stream-node-max-bytes 4096
+ stream-node-max-entries 100
+ activerehashing yes
+ client-output-buffer-limit normal 0 0 0
+ client-output-buffer-limit replica 256mb 64mb 60
+ client-output-buffer-limit pubsub 32mb 8mb 60
+
+ # Hz is the freuqency at which background tasks are performed, we keep this low to save CPU
+ hz 1
+
+ # The hz value is increased to scale with the number of clients connected.
+ dynamic-hz yes
+
+ aof-rewrite-incremental-fsync yes
+ rdb-save-incremental-fsync yes
+ jemalloc-bg-thread yes
+
+ maxmemory 40mb
+ maxmemory-policy allkeys-lru
@@ Deployment/ess-ci/release-name-matrix-rtc-authorisation-service - spec.template.spec.containers.matrix-rtc-authorisation-service.env.LIVEKIT_REDIS_URL.value @@
- redis://release-name-redis.ess-ci.svc.cluster.local.:6379/2
+ redis://release-name-valkey.ess-ci.svc.cluster.local.:6379/2
@@ Deployment/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_deployment.yaml
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- k8s.element.io/redis-config-hash: "3034b3cfe78419348e36bb348fad98b46a736334"
- name: release-name-redis
- namespace: ess-ci
- spec:
- replicas: 1
- selector:
- matchLabels:
- app.kubernetes.io/instance: release-name-redis
- strategy:
- type: Recreate
- template:
- metadata:
- labels:
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- k8s.element.io/redis-config-hash: "3034b3cfe78419348e36bb348fad98b46a736334"
- spec:
- automountServiceAccountToken: false
- serviceAccountName: release-name-redis
- securityContext:
- fsGroup: 10002
- runAsGroup: 10002
- runAsNonRoot: true
- runAsUser: 10002
- seccompProfile:
- type: RuntimeDefault
- supplementalGroups: []
- restartPolicy: Always
- topologySpreadConstraints:
- - labelSelector:
- matchLabels:
- app.kubernetes.io/instance: release-name-redis
- matchLabelKeys:
- - pod-template-hash
- maxSkew: 1
- topologyKey: kubernetes.io/hostname
- whenUnsatisfiable: ScheduleAnyway
- containers:
- - name: redis
- args:
- - "/config/redis.conf"
- image: "docker.io/valkey/valkey:9.1-alpine"
- imagePullPolicy: Always
- securityContext:
- allowPrivilegeEscalation: false
- capabilities:
- drop:
- - ALL
- privileged: false
- readOnlyRootFilesystem: true
- ports:
- - containerPort: 6379
- name: redis
- protocol: TCP
- startupProbe:
- failureThreshold: 5
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- tcpSocket:
- port: redis
- livenessProbe:
- failureThreshold: 3
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- tcpSocket:
- port: redis
- readinessProbe:
- failureThreshold: 3
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- exec:
- command:
- - redis-cli
- - ping
- resources:
- limits:
- memory: 50Mi
- requests:
- cpu: 50m
- memory: 50Mi
- volumeMounts:
- - mountPath: /config/redis.conf
- name: config
- readOnly: true
- subPath: redis.conf
- - name: redis-exporter
- image: "ghcr.io/oliver006/redis_exporter:v1.90.0"
- imagePullPolicy: Always
- securityContext:
- allowPrivilegeEscalation: false
- capabilities:
- drop:
- - ALL
- privileged: false
- readOnlyRootFilesystem: true
- ports:
- - name: metrics
- containerPort: 9121
- startupProbe:
- failureThreshold: 20
- periodSeconds: 2
- successThreshold: 1
- timeoutSeconds: 1
- httpGet:
- path: /metrics
- port: metrics
- livenessProbe:
- failureThreshold: 3
- periodSeconds: 6
- successThreshold: 1
- timeoutSeconds: 2
- httpGet:
- path: /metrics
- port: metrics
- readinessProbe:
- failureThreshold: 3
- periodSeconds: 2
- successThreshold: 2
- timeoutSeconds: 2
- httpGet:
- path: /metrics
- port: metrics
- resources:
- limits:
- memory: 50Mi
- requests:
- cpu: 10m
- memory: 10Mi
- volumes:
- - configMap:
- name: "release-name-redis"
- defaultMode: 420
- name: config
@@ Service/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_service.yaml
- apiVersion: v1
- kind: Service
- metadata:
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- name: release-name-redis
- namespace: ess-ci
- spec:
- type: ClusterIP
- ipFamilyPolicy: PreferDualStack
- ports:
- - port: 6379
- targetPort: redis
- name: redis
- - port: 9121
- targetPort: metrics
- name: metrics
- selector:
- app.kubernetes.io/instance: "release-name-redis"
@@ Service/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_service.yaml
+ apiVersion: v1
+ kind: Service
+ metadata:
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ name: release-name-valkey
+ namespace: ess-ci
+ spec:
+ type: ClusterIP
+ clusterIP: None
+ ipFamilyPolicy: PreferDualStack
+ ports:
+ - port: 6379
+ targetPort: valkey
+ name: valkey
+ - port: 9121
+ targetPort: metrics
+ name: metrics
+ selector:
+ app.kubernetes.io/instance: "release-name-valkey"
@@ ServiceAccount/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_service_account.yaml
- apiVersion: v1
- kind: ServiceAccount
- metadata:
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- name: release-name-redis
- namespace: ess-ci
- automountServiceAccountToken: false
@@ ServiceAccount/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_service_account.yaml
+ apiVersion: v1
+ kind: ServiceAccount
+ metadata:
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ name: release-name-valkey
+ namespace: ess-ci
+ automountServiceAccountToken: false
@@ ServiceMonitor/ess-ci/release-name-redis @@
- ---
- # Source: matrix-stack/templates/redis/redis_service_monitor.yaml
- apiVersion: monitoring.coreos.com/v1
- kind: ServiceMonitor
- metadata:
- labels:
- helm.sh/chart: "matrix-stack-26.9.1-dev"
- app.kubernetes.io/managed-by: Helm
- app.kubernetes.io/part-of: matrix-stack
- app.kubernetes.io/component: matrix-pubsub-small-cache
- app.kubernetes.io/name: redis
- app.kubernetes.io/instance: release-name-redis
- app.kubernetes.io/version: "9.1-alpine"
- name: release-name-redis
- namespace: ess-ci
- spec:
- endpoints:
- - interval: 30s
- port: metrics
- relabelings:
- - targetLabel: instance
- sourceLabels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
- action: replace
- selector:
- matchLabels:
- app.kubernetes.io/instance: release-name-redis
@@ ServiceMonitor/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_service_monitor.yaml
+ apiVersion: monitoring.coreos.com/v1
+ kind: ServiceMonitor
+ metadata:
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ name: release-name-valkey
+ namespace: ess-ci
+ spec:
+ endpoints:
+ - interval: 30s
+ port: metrics
+ relabelings:
+ - targetLabel: instance
+ sourceLabels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance]
+ action: replace
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: release-name-valkey
@@ StatefulSet/ess-ci/release-name-valkey @@
+ ---
+ # Source: matrix-stack/templates/valkey/valkey_statefulset.yaml
+ apiVersion: apps/v1
+ kind: StatefulSet
+ metadata:
+ labels:
+ helm.sh/chart: "matrix-stack-26.9.1-dev"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ k8s.element.io/valkey-config-hash: "041231d26819a14475f14ac6d0d412db9b31533f"
+ name: release-name-valkey
+ namespace: ess-ci
+ spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: release-name-valkey
+ serviceName: release-name-valkey
+ updateStrategy:
+ type: RollingUpdate
+ # Without this CrashLoopBackoffs due to config failures block pod recreation
+ podManagementPolicy: Parallel
+ template:
+ metadata:
+ labels:
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: matrix-stack
+ app.kubernetes.io/component: matrix-pubsub-small-cache
+ app.kubernetes.io/name: valkey
+ app.kubernetes.io/instance: release-name-valkey
+ app.kubernetes.io/version: "9.1-alpine"
+ k8s.element.io/valkey-config-hash: "041231d26819a14475f14ac6d0d412db9b31533f"
+ spec:
+ automountServiceAccountToken: false
+ serviceAccountName: release-name-valkey
+ securityContext:
+ fsGroup: 10002
+ runAsGroup: 10002
+ runAsNonRoot: true
+ runAsUser: 10002
+ seccompProfile:
+ type: RuntimeDefault
+ supplementalGroups: []
+ restartPolicy: Always
+ topologySpreadConstraints:
+ - labelSelector:
+ matchLabels:
+ app.kubernetes.io/instance: release-name-valkey
+ matchLabelKeys: []
+ maxSkew: 1
+ topologyKey: kubernetes.io/hostname
+ whenUnsatisfiable: ScheduleAnyway
+ containers:
+ - name: valkey
+ args:
+ - "/config/valkey.conf"
+ image: "docker.io/valkey/valkey:9.1-alpine"
+ imagePullPolicy: Always
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ ports:
+ - containerPort: 6379
+ name: valkey
+ protocol: TCP
+ startupProbe:
+ failureThreshold: 5
+ periodSeconds: 10
+ successThreshold: 1
+ timeoutSeconds: 1
+ tcpSocket:
+ port: valkey
+ livenessProbe:
+ failureThreshold: 3
+ periodSeconds: 10
+ successThreshold: 1
+ timeoutSeconds: 1
+ tcpSocket:
+ port: valkey
+ readinessProbe:
+ failureThreshold: 3
+ periodSeconds: 10
+ successThreshold: 1
+ timeoutSeconds: 1
+ exec:
+ command:
+ - valkey-cli
+ - ping
+ resources:
+ limits:
+ memory: 50Mi
+ requests:
+ cpu: 50m
+ memory: 50Mi
+ volumeMounts:
+ - mountPath: /config/valkey.conf
+ name: config
+ readOnly: true
+ subPath: valkey.conf
+ - name: valkey-exporter
+ image: "ghcr.io/oliver006/redis_exporter:v1.90.0"
+ imagePullPolicy: Always
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ ports:
+ - name: metrics
+ containerPort: 9121
+ startupProbe:
+ failureThreshold: 20
+ periodSeconds: 2
+ successThreshold: 1
+ timeoutSeconds: 1
+ httpGet:
+ path: /metrics
+ port: metrics
+ livenessProbe:
+ failureThreshold: 3
+ periodSeconds: 6
+ successThreshold: 1
+ timeoutSeconds: 2
+ httpGet:
+ path: /metrics
+ port: metrics
+ readinessProbe:
+ failureThreshold: 3
+ periodSeconds: 2
+ ...*[Comment body truncated]* |
benbz
force-pushed
the
bbz/redis-as-statefulset
branch
from
June 2, 2026 12:45
d7becb2 to
3d21bec
Compare
benbz
force-pushed
the
bbz/redis-as-statefulset
branch
from
September 2, 2026 10:00
3d21bec to
e145078
Compare
benbz
force-pushed
the
bbz/redis-as-statefulset
branch
from
September 2, 2026 10:13
e145078 to
a3f8a9f
Compare
benbz
marked this pull request as ready for review
September 2, 2026 10:14
benbz
force-pushed
the
bbz/redis-as-statefulset
branch
from
September 2, 2026 10:18
a3f8a9f to
f1dfdbc
Compare
benbz
force-pushed
the
bbz/redis-as-statefulset
branch
from
September 2, 2026 10:47
f1dfdbc to
4a256b8
Compare
gaelgatelement
approved these changes
Sep 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
(Draft as theServicebecoming headless requires recreation and so has the same problem as #870 - we need to be able to recreate resources)Rename the manifests in cluster from
-redis->-valkeyand at the same time convert the workload to aStatefulSetand theServiceto a headless one. This allows us to workaround field-immutability issues.Undoes the hacks done in #1557 as they're no longer needed, however the changelog remains as it is still true.