forked from k-space/kube
		
	Remove symlink method of adding Redis/KeyDB instances
This commit is contained in:
		
							
								
								
									
										244
									
								
								shared/keydb.yml
									
									
									
									
									
								
							
							
						
						
									
										244
									
								
								shared/keydb.yml
									
									
									
									
									
								
							| @@ -1,244 +0,0 @@ | |||||||
| --- |  | ||||||
| apiVersion: policy/v1 |  | ||||||
| kind: PodDisruptionBudget |  | ||||||
| metadata: |  | ||||||
|   name: redis |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: redis |  | ||||||
| spec: |  | ||||||
|   maxUnavailable: 1 |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app.kubernetes.io/name: redis |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: redis-utils |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: redis |  | ||||||
| type: Opaque |  | ||||||
| stringData: |  | ||||||
|   server.sh: | |  | ||||||
|     #!/bin/bash |  | ||||||
|     set -euxo pipefail |  | ||||||
|     host="$(hostname)" |  | ||||||
|     port="6379" |  | ||||||
|     replicas=() |  | ||||||
|     for node in {0..2}; do |  | ||||||
|       if [ "${host}" != "redis-${node}" ]; then |  | ||||||
|           replicas+=("--replicaof redis-${node}.redis-headless ${port}") |  | ||||||
|       fi |  | ||||||
|     done |  | ||||||
|     exec keydb-server /etc/keydb/redis.conf \ |  | ||||||
|         --active-replica "yes" \ |  | ||||||
|         --multi-master "yes" \ |  | ||||||
|         --appendonly "no" \ |  | ||||||
|         --bind "0.0.0.0" \ |  | ||||||
|         --port "${port}" \ |  | ||||||
|         --protected-mode "no" \ |  | ||||||
|         --server-threads "2" \ |  | ||||||
|         --masterauth "${REDIS_PASSWORD}" \ |  | ||||||
|         --requirepass "${REDIS_PASSWORD}" \ |  | ||||||
|         "${replicas[@]}" |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: ConfigMap |  | ||||||
| metadata: |  | ||||||
|   name: redis-health |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: redis |  | ||||||
| data: |  | ||||||
|   ping_readiness_local.sh: |- |  | ||||||
|     #!/bin/bash |  | ||||||
|     set -e |  | ||||||
|     [[ -n "${REDIS_PASSWORD}" ]] && export REDISCLI_AUTH="${REDIS_PASSWORD}" |  | ||||||
|     response="$( |  | ||||||
|       timeout -s 3 "${1}" \ |  | ||||||
|       keydb-cli \ |  | ||||||
|         -h localhost \ |  | ||||||
|         -p 6379 \ |  | ||||||
|         ping |  | ||||||
|     )" |  | ||||||
|     if [ "${response}" != "PONG" ]; then |  | ||||||
|       echo "${response}" |  | ||||||
|       exit 1 |  | ||||||
|     fi |  | ||||||
|   ping_liveness_local.sh: |- |  | ||||||
|     #!/bin/bash |  | ||||||
|     set -e |  | ||||||
|     [[ -n "${REDIS_PASSWORD}" ]] && export REDISCLI_AUTH="${REDIS_PASSWORD}" |  | ||||||
|     response="$( |  | ||||||
|       timeout -s 3 "${1}" \ |  | ||||||
|       keydb-cli \ |  | ||||||
|         -h localhost \ |  | ||||||
|         -p 6379 \ |  | ||||||
|         ping |  | ||||||
|     )" |  | ||||||
|     if [ "${response}" != "PONG" ] && [[ ! "${response}" =~ ^.*LOADING.*$ ]]; then |  | ||||||
|       echo "${response}" |  | ||||||
|       exit 1 |  | ||||||
|     fi |  | ||||||
|   cleanup_tempfiles.sh: |- |  | ||||||
|     #!/bin/bash |  | ||||||
|     set -e |  | ||||||
|     find /data/ -type f \( -name "temp-*.aof" -o -name "temp-*.rdb" \) -mmin +60 -delete |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: redis-headless |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: redis |  | ||||||
| spec: |  | ||||||
|   type: ClusterIP |  | ||||||
|   clusterIP: None |  | ||||||
|   ports: |  | ||||||
|   - name: "server" |  | ||||||
|     port: 6379 |  | ||||||
|     protocol: TCP |  | ||||||
|     targetPort: redis |  | ||||||
|   selector: |  | ||||||
|     app.kubernetes.io/name: redis |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: redis |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: redis |  | ||||||
|   annotations: |  | ||||||
|     {} |  | ||||||
| spec: |  | ||||||
|   type: ClusterIP |  | ||||||
|   ports: |  | ||||||
|   - name: "server" |  | ||||||
|     port: 6379 |  | ||||||
|     protocol: TCP |  | ||||||
|     targetPort: redis |  | ||||||
|   - name: "redis-exporter" |  | ||||||
|     port: 9121 |  | ||||||
|     protocol: TCP |  | ||||||
|     targetPort: redis-exporter |  | ||||||
|   selector: |  | ||||||
|     app.kubernetes.io/name: redis |  | ||||||
|   sessionAffinity: ClientIP |  | ||||||
| --- |  | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: StatefulSet |  | ||||||
| metadata: |  | ||||||
|   name: redis |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: redis |  | ||||||
| spec: |  | ||||||
|   replicas: 3 |  | ||||||
|   serviceName: redis-headless |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app.kubernetes.io/name: redis |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       annotations: |  | ||||||
|         prometheus.io/port: "8083" |  | ||||||
|         prometheus.io/scrape: "true" |  | ||||||
|       labels: |  | ||||||
|         app.kubernetes.io/name: redis |  | ||||||
|     spec: |  | ||||||
|       affinity: |  | ||||||
|         podAntiAffinity: |  | ||||||
|           preferredDuringSchedulingIgnoredDuringExecution: |  | ||||||
|           - podAffinityTerm: |  | ||||||
|               labelSelector: |  | ||||||
|                 matchExpressions: |  | ||||||
|                 - key: app.kubernetes.io/name |  | ||||||
|                   operator: In |  | ||||||
|                   values: |  | ||||||
|                   - 'redis' |  | ||||||
|               topologyKey: kubernetes.io/hostname |  | ||||||
|             weight: 100 |  | ||||||
|       containers: |  | ||||||
|       - name: redis |  | ||||||
|         image: eqalpha/keydb:x86_64_v6.3.1 |  | ||||||
|         imagePullPolicy: Always |  | ||||||
|         command: |  | ||||||
|         - /utils/server.sh |  | ||||||
|         ports: |  | ||||||
|         - name: redis |  | ||||||
|           containerPort: 6379 |  | ||||||
|           protocol: TCP |  | ||||||
|         livenessProbe: |  | ||||||
|           initialDelaySeconds: 20 |  | ||||||
|           periodSeconds: 5 |  | ||||||
|           # One second longer than command timeout should prevent generation of zombie processes. |  | ||||||
|           timeoutSeconds: 6 |  | ||||||
|           successThreshold: 1 |  | ||||||
|           failureThreshold: 5 |  | ||||||
|           exec: |  | ||||||
|             command: |  | ||||||
|               - sh |  | ||||||
|               - -c |  | ||||||
|               - /health/ping_liveness_local.sh 5 |  | ||||||
|         readinessProbe: |  | ||||||
|           initialDelaySeconds: 20 |  | ||||||
|           periodSeconds: 5 |  | ||||||
|           # One second longer than command timeout should prevent generation of zombie processes. |  | ||||||
|           timeoutSeconds: 2 |  | ||||||
|           successThreshold: 1 |  | ||||||
|           failureThreshold: 5 |  | ||||||
|           exec: |  | ||||||
|             command: |  | ||||||
|               - sh |  | ||||||
|               - -c |  | ||||||
|               - /health/ping_readiness_local.sh 1 |  | ||||||
|         startupProbe: |  | ||||||
|           periodSeconds: 5 |  | ||||||
|           # One second longer than command timeout should prevent generation of zombie processes. |  | ||||||
|           timeoutSeconds: 2 |  | ||||||
|           failureThreshold: 24 |  | ||||||
|           exec: |  | ||||||
|             command: |  | ||||||
|               - sh |  | ||||||
|               - -c |  | ||||||
|               - /health/ping_readiness_local.sh 1 |  | ||||||
|         resources: |  | ||||||
|           {} |  | ||||||
|         securityContext: |  | ||||||
|           {} |  | ||||||
|         volumeMounts: |  | ||||||
|         - name: health |  | ||||||
|           mountPath: /health |  | ||||||
|         - name: redis-data |  | ||||||
|           mountPath: /data |  | ||||||
|         - name: utils |  | ||||||
|           mountPath: /utils |  | ||||||
|           readOnly: true |  | ||||||
|         envFrom: |  | ||||||
|             - secretRef: |  | ||||||
|                 name: redis-secrets |  | ||||||
|  |  | ||||||
|       - name: redis-exporter |  | ||||||
|         image: quay.io/oliver006/redis_exporter |  | ||||||
|         ports: |  | ||||||
|         - name: metrics |  | ||||||
|           containerPort: 9121 |  | ||||||
|         envFrom: |  | ||||||
|             - secretRef: |  | ||||||
|                 name: redis-secrets |  | ||||||
|       imagePullSecrets: |  | ||||||
|         [] |  | ||||||
|       securityContext: |  | ||||||
|         {} |  | ||||||
|       volumes: |  | ||||||
|       - name: health |  | ||||||
|         configMap: |  | ||||||
|           name: redis-health |  | ||||||
|           defaultMode: 0755 |  | ||||||
|       - name: utils |  | ||||||
|         secret: |  | ||||||
|           secretName: redis-utils |  | ||||||
|           defaultMode: 0755 |  | ||||||
|           items: |  | ||||||
|           - key: server.sh |  | ||||||
|             path: server.sh |  | ||||||
|       - name: redis-data |  | ||||||
|         emptyDir: {} |  | ||||||
| @@ -1,44 +0,0 @@ | |||||||
| apiVersion: apps/v1 |  | ||||||
| kind: StatefulSet |  | ||||||
| metadata: |  | ||||||
|   name: redis |  | ||||||
| spec: |  | ||||||
|   serviceName: redis |  | ||||||
|   replicas: 1 |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app: redis |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app: redis |  | ||||||
|     spec: |  | ||||||
|       containers: |  | ||||||
|       - name: redis |  | ||||||
|         image: redis:alpine |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 6379 |  | ||||||
|           name: client |  | ||||||
|         securityContext: |  | ||||||
|           readOnlyRootFilesystem: true |  | ||||||
|           runAsNonRoot: true |  | ||||||
|           runAsUser: 999 |  | ||||||
|         command: ["redis-server", "--save"] |  | ||||||
|         env: |  | ||||||
|         - name: POD_IP |  | ||||||
|           valueFrom: |  | ||||||
|             fieldRef: |  | ||||||
|               fieldPath: status.podIP |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: redis |  | ||||||
| spec: |  | ||||||
|   type: ClusterIP |  | ||||||
|   ports: |  | ||||||
|   - port: 6379 |  | ||||||
|     targetPort: 6379 |  | ||||||
|     name: client |  | ||||||
|   selector: |  | ||||||
|     app: redis |  | ||||||
| @@ -1,49 +0,0 @@ | |||||||
| apiVersion: apps/v1 |  | ||||||
| kind: StatefulSet |  | ||||||
| metadata: |  | ||||||
|   name: redis |  | ||||||
| spec: |  | ||||||
|   serviceName: redis |  | ||||||
|   replicas: 1 |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app: redis |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app: redis |  | ||||||
|     spec: |  | ||||||
|       containers: |  | ||||||
|       - name: redis |  | ||||||
|         image: redis:alpine |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 6379 |  | ||||||
|           name: client |  | ||||||
|         securityContext: |  | ||||||
|           readOnlyRootFilesystem: true |  | ||||||
|           runAsNonRoot: true |  | ||||||
|           runAsUser: 999 |  | ||||||
|         command: ["redis-server", "--save", "", "--requirepass", "$(REDIS_PASSWORD)"] |  | ||||||
|         env: |  | ||||||
|         - name: REDIS_PASSWORD |  | ||||||
|           valueFrom: |  | ||||||
|             secretKeyRef: |  | ||||||
|               name: redis-secrets |  | ||||||
|               key: REDIS_PASSWORD |  | ||||||
|         - name: POD_IP |  | ||||||
|           valueFrom: |  | ||||||
|             fieldRef: |  | ||||||
|               fieldPath: status.podIP |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: redis |  | ||||||
| spec: |  | ||||||
|   type: ClusterIP |  | ||||||
|   ports: |  | ||||||
|   - port: 6379 |  | ||||||
|     targetPort: 6379 |  | ||||||
|     name: client |  | ||||||
|   selector: |  | ||||||
|     app: redis |  | ||||||
							
								
								
									
										1
									
								
								wildduck/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								wildduck/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +1 @@ | |||||||
| redis.yml |  | ||||||
| secret.yml | secret.yml | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user