--- # Source: outside-deploy/charts/redis-db/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount automountServiceAccountToken: true metadata: name: helm-redis namespace: "gxyd" labels: app.kubernetes.io/name: redis-db helm.sh/chart: redis-db-15.4.1 app.kubernetes.io/release: gxyd app.kubernetes.io/managed-by: redis-db --- # Source: outside-deploy/charts/redis-db/templates/secret.yaml apiVersion: v1 kind: Secret metadata: name: helm-redis namespace: "gxyd" labels: app.kubernetes.io/name: redis-db helm.sh/chart: redis-db-15.4.1 app.kubernetes.io/release: gxyd app.kubernetes.io/managed-by: redis-db type: Opaque data: redis-password: "TWNhY2hlQDQ1MjI=" --- # Source: outside-deploy/charts/redis-db/templates/configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: helm-redis-configuration namespace: "gxyd" labels: app.kubernetes.io/name: redis-db helm.sh/chart: redis-db-15.4.1 app.kubernetes.io/release: gxyd app.kubernetes.io/managed-by: redis-db data: redis.conf: |- # User-supplied common configuration: # Enable AOF https://redis.io/topics/persistence#append-only-file appendonly yes # Disable RDB persistence, AOF persistence already enabled. save 900 1 save 300 10 save 60 10000 rdbcompression yes dbfilename redis.rdb auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 2048mb # End of common configuration master.conf: |- dir /data # User-supplied master configuration: # End of master configuration replica.conf: |- dir /data slave-read-only yes # User-supplied replica configuration: rename-command FLUSHDB "" rename-command FLUSHALL "" # End of replica configuration --- # Source: outside-deploy/charts/redis-db/templates/health-configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: helm-redis-health namespace: "gxyd" labels: app.kubernetes.io/name: redis-db helm.sh/chart: redis-db-15.4.1 app.kubernetes.io/release: gxyd app.kubernetes.io/managed-by: redis-db data: ping_readiness_local.sh: |- #!/bin/bash [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" [[ -n "$REDIS_PASSWORD" ]] && 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_local.sh: |- #!/bin/bash [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" [[ -n "$REDIS_PASSWORD" ]] && 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 ping_readiness_master.sh: |- #!/bin/bash [[ -f $REDIS_MASTER_PASSWORD_FILE ]] && export REDIS_MASTER_PASSWORD="$(< "${REDIS_MASTER_PASSWORD_FILE}")" [[ -n "$REDIS_MASTER_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_MASTER_PASSWORD" response=$( timeout -s 3 $1 \ redis-cli \ -h $REDIS_MASTER_HOST \ -p $REDIS_MASTER_PORT_NUMBER \ ping ) if [ "$response" != "PONG" ]; then echo "$response" exit 1 fi ping_liveness_master.sh: |- #!/bin/bash [[ -f $REDIS_MASTER_PASSWORD_FILE ]] && export REDIS_MASTER_PASSWORD="$(< "${REDIS_MASTER_PASSWORD_FILE}")" [[ -n "$REDIS_MASTER_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_MASTER_PASSWORD" response=$( timeout -s 3 $1 \ redis-cli \ -h $REDIS_MASTER_HOST \ -p $REDIS_MASTER_PORT_NUMBER \ ping ) if [ "$response" != "PONG" ] && [ "$response" != "LOADING Redis is loading the dataset in memory" ]; then echo "$response" exit 1 fi ping_readiness_local_and_master.sh: |- script_dir="$(dirname "$0")" exit_status=0 "$script_dir/ping_readiness_local.sh" $1 || exit_status=$? "$script_dir/ping_readiness_master.sh" $1 || exit_status=$? exit $exit_status ping_liveness_local_and_master.sh: |- script_dir="$(dirname "$0")" exit_status=0 "$script_dir/ping_liveness_local.sh" $1 || exit_status=$? "$script_dir/ping_liveness_master.sh" $1 || exit_status=$? exit $exit_status --- # Source: outside-deploy/charts/redis-db/templates/scripts-configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: helm-redis-scripts namespace: "gxyd" labels: app.kubernetes.io/name: redis-db helm.sh/chart: redis-db-15.4.1 app.kubernetes.io/release: gxyd app.kubernetes.io/managed-by: redis-db data: start-master.sh: | #!/bin/bash [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" if [[ ! -f /opt/bitnami/redis/etc/master.conf ]];then cp /opt/bitnami/redis/mounted-etc/master.conf /opt/bitnami/redis/etc/master.conf fi if [[ ! -f /opt/bitnami/redis/etc/redis.conf ]];then cp /opt/bitnami/redis/mounted-etc/redis.conf /opt/bitnami/redis/etc/redis.conf fi ARGS=("--port" "${REDIS_PORT}") ARGS+=("--requirepass" "${REDIS_PASSWORD}") ARGS+=("--masterauth" "${REDIS_PASSWORD}") ARGS+=("--include" "/opt/bitnami/redis/etc/redis.conf") ARGS+=("--include" "/opt/bitnami/redis/etc/master.conf") exec redis-server "${ARGS[@]}" start-replica.sh: | #!/bin/bash get_port() { hostname="$1" type="$2" port_var=$(echo "${hostname^^}_SERVICE_PORT_$type" | sed "s/-/_/g") port=${!port_var} if [ -z "$port" ]; then case $type in "SENTINEL") echo 26379 ;; "REDIS") echo 6379 ;; esac else echo $port fi } get_full_hostname() { hostname="$1" echo "${hostname}.${HEADLESS_SERVICE}" } REDISPORT=$(get_port "$HOSTNAME" "REDIS") [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" [[ -f $REDIS_MASTER_PASSWORD_FILE ]] && export REDIS_MASTER_PASSWORD="$(< "${REDIS_MASTER_PASSWORD_FILE}")" if [[ ! -f /opt/bitnami/redis/etc/replica.conf ]];then cp /opt/bitnami/redis/mounted-etc/replica.conf /opt/bitnami/redis/etc/replica.conf fi if [[ ! -f /opt/bitnami/redis/etc/redis.conf ]];then cp /opt/bitnami/redis/mounted-etc/redis.conf /opt/bitnami/redis/etc/redis.conf fi echo "" >> /opt/bitnami/redis/etc/replica.conf echo "replica-announce-port $REDISPORT" >> /opt/bitnami/redis/etc/replica.conf echo "replica-announce-ip $(get_full_hostname "$HOSTNAME")" >> /opt/bitnami/redis/etc/replica.conf ARGS=("--port" "${REDIS_PORT}") ARGS+=("--slaveof" "${REDIS_MASTER_HOST}" "${REDIS_MASTER_PORT_NUMBER}") ARGS+=("--requirepass" "${REDIS_PASSWORD}") ARGS+=("--masterauth" "${REDIS_MASTER_PASSWORD}") ARGS+=("--include" "/opt/bitnami/redis/etc/redis.conf") ARGS+=("--include" "/opt/bitnami/redis/etc/replica.conf") exec redis-server "${ARGS[@]}" --- # Source: outside-deploy/charts/redis-db/templates/headless-svc.yaml apiVersion: v1 kind: Service metadata: name: helm-redis-headless namespace: "gxyd" labels: app.kubernetes.io/name: redis-db helm.sh/chart: redis-db-15.4.1 app.kubernetes.io/release: gxyd app.kubernetes.io/managed-by: redis-db spec: type: ClusterIP clusterIP: None ports: - name: tcp-redis port: 6379 targetPort: redis selector: app.kubernetes.io/name: redis-db app.kubernetes.io/release: gxyd --- # Source: outside-deploy/charts/redis-db/templates/master/service.yaml apiVersion: v1 kind: Service metadata: name: helm-redis-master namespace: "gxyd" labels: app.kubernetes.io/name: redis-db helm.sh/chart: redis-db-15.4.1 app.kubernetes.io/release: gxyd app.kubernetes.io/managed-by: redis-db cmii.type: middleware cmii.app: redis app.kubernetes.io/component: master spec: type: ClusterIP ports: - name: tcp-redis port: 6379 targetPort: redis nodePort: null selector: app.kubernetes.io/name: redis-db app.kubernetes.io/release: gxyd cmii.type: middleware cmii.app: redis app.kubernetes.io/component: master --- # Source: outside-deploy/charts/redis-db/templates/replicas/service.yaml apiVersion: v1 kind: Service metadata: name: helm-redis-replicas namespace: "gxyd" labels: app.kubernetes.io/name: redis-db helm.sh/chart: redis-db-15.4.1 app.kubernetes.io/release: gxyd app.kubernetes.io/managed-by: redis-db app.kubernetes.io/component: replica spec: type: ClusterIP ports: - name: tcp-redis port: 6379 targetPort: redis nodePort: null selector: app.kubernetes.io/name: redis-db app.kubernetes.io/release: gxyd app.kubernetes.io/component: replica --- # Source: outside-deploy/charts/redis-db/templates/master/statefulset.yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: helm-redis-master namespace: "gxyd" labels: app.kubernetes.io/name: redis-db helm.sh/chart: redis-db-15.4.1 app.kubernetes.io/release: gxyd app.kubernetes.io/managed-by: redis-db cmii.type: middleware cmii.app: redis app.kubernetes.io/component: master spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: redis-db app.kubernetes.io/release: gxyd cmii.type: middleware cmii.app: redis app.kubernetes.io/component: master serviceName: helm-redis-headless updateStrategy: rollingUpdate: {} type: RollingUpdate template: metadata: labels: app.kubernetes.io/name: redis-db helm.sh/chart: redis-db-15.4.1 app.kubernetes.io/release: gxyd app.kubernetes.io/managed-by: redis-db cmii.type: middleware cmii.app: redis app.kubernetes.io/component: master annotations: checksum/configmap: 79b8ea552ba7862db2ea2a4b2ca8b9fdc886e743d0de366030441588f7c7c77c checksum/health: 1825b268d251f25147ce04acf7adfd7522c6fec8c5785d9cbcb5d36bcc4fa2b5 checksum/scripts: 4a249421d13b1cabc55dea6d4c371d553d2d2d6c637704a915c73a1f5b539f5b checksum/secret: 60e01a5907e70ef2721449c56c19e7a861eb34a462f696c2d8d62e304569a8c1 spec: affinity: {} securityContext: fsGroup: 5001 serviceAccountName: helm-redis terminationGracePeriodSeconds: 30 containers: - name: redis image: "10.165.81.68:8033/cmii/redis:6.2.6-debian-10-r0" imagePullPolicy: "Always" securityContext: runAsUser: 5001 command: - /bin/bash args: - -c - /opt/bitnami/scripts/start-scripts/start-master.sh env: - name: BITNAMI_DEBUG value: "false" - name: REDIS_REPLICATION_MODE value: master - name: ALLOW_EMPTY_PASSWORD value: "no" - name: REDIS_PASSWORD valueFrom: secretKeyRef: name: helm-redis key: redis-password - name: REDIS_TLS_ENABLED value: "no" - name: REDIS_PORT value: "6379" ports: - name: redis containerPort: 6379 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 timeoutSeconds: 2 successThreshold: 1 failureThreshold: 5 exec: command: - sh - -c - /health/ping_readiness_local.sh 1 resources: limits: cpu: "2" memory: 8Gi requests: cpu: "1" memory: 4Gi volumeMounts: - name: start-scripts mountPath: /opt/bitnami/scripts/start-scripts - name: health mountPath: /health - name: redis-data mountPath: /data subPath: - name: config mountPath: /opt/bitnami/redis/mounted-etc - name: redis-tmp-conf mountPath: /opt/bitnami/redis/etc/ - name: tmp mountPath: /tmp initContainers: - name: volume-permissions image: docker.io/bitnami/bitnami-shell:10-debian-10-r212 imagePullPolicy: "Always" command: - /bin/bash - -ec - | chown -R 5001:5001 /data securityContext: runAsUser: 0 resources: limits: {} requests: {} volumeMounts: - name: redis-data mountPath: /data subPath: volumes: - name: start-scripts configMap: name: helm-redis-scripts defaultMode: 0755 - name: health configMap: name: helm-redis-health defaultMode: 0755 - name: config configMap: name: helm-redis-configuration - name: redis-tmp-conf emptyDir: {} - name: tmp emptyDir: {} volumeClaimTemplates: - metadata: name: redis-data labels: app.kubernetes.io/name: redis-db app.kubernetes.io/release: gxyd app.kubernetes.io/component: master spec: accessModes: - "ReadWriteOnce" resources: requests: storage: "20Gi" storageClassName: nfs-prod-distribute --- # Source: outside-deploy/charts/redis-db/templates/replicas/statefulset.yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: helm-redis-replicas namespace: "gxyd" labels: app.kubernetes.io/name: redis-db helm.sh/chart: redis-db-15.4.1 app.kubernetes.io/release: gxyd app.kubernetes.io/managed-by: redis-db app.kubernetes.io/component: replica spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: redis-db app.kubernetes.io/release: gxyd app.kubernetes.io/component: replica serviceName: helm-redis-headless updateStrategy: rollingUpdate: {} type: RollingUpdate template: metadata: labels: app.kubernetes.io/name: redis-db helm.sh/chart: redis-db-15.4.1 app.kubernetes.io/release: gxyd app.kubernetes.io/managed-by: redis-db app.kubernetes.io/component: replica annotations: checksum/configmap: 79b8ea552ba7862db2ea2a4b2ca8b9fdc886e743d0de366030441588f7c7c77c checksum/health: 1825b268d251f25147ce04acf7adfd7522c6fec8c5785d9cbcb5d36bcc4fa2b5 checksum/scripts: 4a249421d13b1cabc55dea6d4c371d553d2d2d6c637704a915c73a1f5b539f5b checksum/secret: 60e01a5907e70ef2721449c56c19e7a861eb34a462f696c2d8d62e304569a8c1 spec: securityContext: fsGroup: 5001 serviceAccountName: helm-redis terminationGracePeriodSeconds: 30 containers: - name: redis image: "10.165.81.68:8033/cmii/redis:6.2.6-debian-10-r0" imagePullPolicy: "Always" securityContext: runAsUser: 5001 command: - /bin/bash args: - -c - /opt/bitnami/scripts/start-scripts/start-replica.sh env: - name: BITNAMI_DEBUG value: "false" - name: REDIS_REPLICATION_MODE value: slave - name: REDIS_MASTER_HOST value: helm-redis-master-0.helm-redis-headless.gxyd.svc.cluster.local - name: REDIS_MASTER_PORT_NUMBER value: "6379" - name: ALLOW_EMPTY_PASSWORD value: "no" - name: REDIS_PASSWORD valueFrom: secretKeyRef: name: helm-redis key: redis-password - name: REDIS_MASTER_PASSWORD valueFrom: secretKeyRef: name: helm-redis key: redis-password - name: REDIS_TLS_ENABLED value: "no" - name: REDIS_PORT value: "6379" ports: - name: redis containerPort: 6379 livenessProbe: initialDelaySeconds: 20 periodSeconds: 5 timeoutSeconds: 6 successThreshold: 1 failureThreshold: 5 exec: command: - sh - -c - /health/ping_liveness_local_and_master.sh 5 readinessProbe: initialDelaySeconds: 20 periodSeconds: 5 timeoutSeconds: 2 successThreshold: 1 failureThreshold: 5 exec: command: - sh - -c - /health/ping_readiness_local_and_master.sh 1 resources: limits: cpu: "2" memory: 8Gi requests: cpu: "1" memory: 4Gi volumeMounts: - name: start-scripts mountPath: /opt/bitnami/scripts/start-scripts - name: health mountPath: /health - name: redis-data mountPath: /data subPath: - name: config mountPath: /opt/bitnami/redis/mounted-etc - name: redis-tmp-conf mountPath: /opt/bitnami/redis/etc volumes: - name: start-scripts configMap: name: helm-redis-scripts defaultMode: 0755 - name: health configMap: name: helm-redis-health defaultMode: 0755 - name: config configMap: name: helm-redis-configuration - name: redis-tmp-conf emptyDir: {} - name: redis-data emptyDir: {}