apiVersion: v1 automountServiceAccountToken: false kind: ServiceAccount metadata: labels: app.kubernetes.io/instance: redis app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: redis app.kubernetes.io/version: 8.2.2 helm.sh/chart: redis-23.0.10 name: redis-master namespace: redis --- apiVersion: v1 data: master.conf: |- dir /data # User-supplied master configuration: # End of master configuration redis.conf: |- # User-supplied common configuration: # End of common configuration replica.conf: |- dir /data # User-supplied replica configuration: # End of replica configuration users.acl: "" kind: ConfigMap metadata: labels: app.kubernetes.io/instance: redis app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: redis app.kubernetes.io/version: 8.2.2 helm.sh/chart: redis-23.0.10 name: redis-configuration namespace: redis --- apiVersion: v1 data: 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 15 $1 \ redis-cli \ -h localhost \ -p $REDIS_PORT \ ping ) if [ "$?" -eq "124" ]; then echo "Timed out" exit 1 fi responseFirstWord=$(echo $response | head -n1 | awk '{print $1;}') if [ "$response" != "PONG" ] && [ "$responseFirstWord" != "LOADING" ] && [ "$responseFirstWord" != "MASTERDOWN" ]; then echo "$response" exit 1 fi 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 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 15 $1 \ redis-cli \ -h $REDIS_MASTER_HOST \ -p $REDIS_MASTER_PORT_NUMBER \ ping ) if [ "$?" -eq "124" ]; then echo "Timed out" exit 1 fi responseFirstWord=$(echo $response | head -n1 | awk '{print $1;}') if [ "$response" != "PONG" ] && [ "$responseFirstWord" != "LOADING" ]; then echo "$response" exit 1 fi 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 15 $1 \ redis-cli \ -h localhost \ -p $REDIS_PORT \ ping ) if [ "$?" -eq "124" ]; then echo "Timed out" exit 1 fi if [ "$response" != "PONG" ]; 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_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 15 $1 \ redis-cli \ -h $REDIS_MASTER_HOST \ -p $REDIS_MASTER_PORT_NUMBER \ ping ) if [ "$?" -eq "124" ]; then echo "Timed out" exit 1 fi if [ "$response" != "PONG" ]; then echo "$response" exit 1 fi kind: ConfigMap metadata: labels: app.kubernetes.io/instance: redis app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: redis app.kubernetes.io/version: 8.2.2 helm.sh/chart: redis-23.0.10 name: redis-health namespace: redis --- apiVersion: v1 data: start-master.sh: | #!/bin/bash [[ -f $REDIS_PASSWORD_FILE ]] && export REDIS_PASSWORD="$(< "${REDIS_PASSWORD_FILE}")" if [[ -f /opt/bitnami/redis/mounted-etc/master.conf ]];then cp /opt/bitnami/redis/mounted-etc/master.conf /opt/bitnami/redis/etc/master.conf fi if [[ -f /opt/bitnami/redis/mounted-etc/redis.conf ]];then cp /opt/bitnami/redis/mounted-etc/redis.conf /opt/bitnami/redis/etc/redis.conf fi if [[ -f /opt/bitnami/redis/mounted-etc/users.acl ]];then cp /opt/bitnami/redis/mounted-etc/users.acl /opt/bitnami/redis/etc/users.acl 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[@]}" kind: ConfigMap metadata: labels: app.kubernetes.io/instance: redis app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: redis app.kubernetes.io/version: 8.2.2 helm.sh/chart: redis-23.0.10 name: redis-scripts namespace: redis --- apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/instance: redis app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: redis app.kubernetes.io/version: 8.2.2 helm.sh/chart: redis-23.0.10 name: redis-headless namespace: redis spec: clusterIP: None ports: - name: tcp-redis port: 6379 targetPort: redis selector: app.kubernetes.io/instance: redis app.kubernetes.io/name: redis type: ClusterIP --- apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/component: master app.kubernetes.io/instance: redis app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: redis app.kubernetes.io/version: 8.2.2 helm.sh/chart: redis-23.0.10 name: redis-master namespace: redis spec: internalTrafficPolicy: Cluster ports: - name: tcp-redis nodePort: null port: 6379 targetPort: redis selector: app.kubernetes.io/component: master app.kubernetes.io/instance: redis app.kubernetes.io/name: redis sessionAffinity: None type: ClusterIP --- apiVersion: apps/v1 kind: StatefulSet metadata: labels: app.kubernetes.io/component: master app.kubernetes.io/instance: redis app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: redis app.kubernetes.io/version: 8.2.2 helm.sh/chart: redis-23.0.10 name: redis-master namespace: redis spec: replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app.kubernetes.io/component: master app.kubernetes.io/instance: redis app.kubernetes.io/name: redis serviceName: redis-headless template: metadata: annotations: checksum/configmap: f656a28e365a9b667aaaa23f1f794d8a7e54a78409326c0464f1f64fab771aa4 checksum/health: aff24913d801436ea469d8d374b2ddb3ec4c43ee7ab24663d5f8ff1a1b6991a9 checksum/scripts: 0717e77fd3bb941f602860e9be4f2ed87b481cddeadf37be463f8512ecde0c3e checksum/secret: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a labels: app.kubernetes.io/component: master app.kubernetes.io/instance: redis app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: redis app.kubernetes.io/version: 8.2.2 helm.sh/chart: redis-23.0.10 spec: affinity: nodeAffinity: null podAffinity: null podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: labelSelector: matchLabels: app.kubernetes.io/component: master app.kubernetes.io/instance: redis app.kubernetes.io/name: redis topologyKey: kubernetes.io/hostname weight: 1 automountServiceAccountToken: false containers: - args: - -ec - /opt/bitnami/scripts/start-scripts/start-master.sh command: - /bin/bash env: - name: BITNAMI_DEBUG value: "false" - name: REDIS_REPLICATION_MODE value: master - name: ALLOW_EMPTY_PASSWORD value: "no" - name: REDIS_PASSWORD valueFrom: secretKeyRef: key: redis-password name: redis - name: REDIS_TLS_ENABLED value: "no" - name: REDIS_PORT value: "6379" image: registry-1.docker.io/bitnami/redis:latest imagePullPolicy: IfNotPresent livenessProbe: exec: command: - /bin/bash - -ec - /health/ping_liveness_local.sh 5 failureThreshold: 5 initialDelaySeconds: 20 periodSeconds: 5 successThreshold: 1 timeoutSeconds: 6 name: redis ports: - containerPort: 6379 name: redis readinessProbe: exec: command: - /bin/bash - -ec - /health/ping_readiness_local.sh 1 failureThreshold: 5 initialDelaySeconds: 20 periodSeconds: 5 successThreshold: 1 timeoutSeconds: 2 resources: limits: cpu: 150m ephemeral-storage: 2Gi memory: 192Mi requests: cpu: 100m ephemeral-storage: 50Mi memory: 128Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true runAsGroup: 1001 runAsNonRoot: true runAsUser: 1001 seLinuxOptions: {} seccompProfile: type: RuntimeDefault volumeMounts: - mountPath: /opt/bitnami/scripts/start-scripts name: start-scripts - mountPath: /health name: health - mountPath: /data name: redis-data - mountPath: /opt/bitnami/redis/mounted-etc name: config - mountPath: /opt/bitnami/redis/etc/ name: empty-dir subPath: app-conf-dir - mountPath: /tmp name: empty-dir subPath: tmp-dir enableServiceLinks: true securityContext: fsGroup: 1001 fsGroupChangePolicy: Always supplementalGroups: [] sysctls: [] serviceAccountName: redis-master terminationGracePeriodSeconds: 30 volumes: - configMap: defaultMode: 493 name: redis-scripts name: start-scripts - configMap: defaultMode: 493 name: redis-health name: health - configMap: name: redis-configuration name: config - emptyDir: {} name: empty-dir updateStrategy: type: RollingUpdate volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: app.kubernetes.io/component: master app.kubernetes.io/instance: redis app.kubernetes.io/name: redis name: redis-data spec: accessModes: - ReadWriteOnce resources: requests: storage: 8Gi storageClassName: openebs-3-replicas --- apiVersion: policy/v1 kind: PodDisruptionBudget metadata: labels: app.kubernetes.io/component: master app.kubernetes.io/instance: redis app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: redis app.kubernetes.io/version: 8.2.2 helm.sh/chart: redis-23.0.10 name: redis-master namespace: redis spec: maxUnavailable: 1 selector: matchLabels: app.kubernetes.io/component: master app.kubernetes.io/instance: redis app.kubernetes.io/name: redis --- apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: labels: app.kubernetes.io/instance: redis app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: redis app.kubernetes.io/version: 8.2.2 helm.sh/chart: redis-23.0.10 name: redis namespace: redis spec: egress: - {} ingress: - ports: - port: 6379 podSelector: matchLabels: app.kubernetes.io/instance: redis app.kubernetes.io/name: redis policyTypes: - Ingress - Egress