_redis.tpl 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. {{/* Returns a redis pod with init container for fixing permissions
  2. and a pre-upgrade job to backup the database */}}
  3. {{/* Call this template:
  4. {{ include "ix.v1.common.app.redis" (dict "name" "redis" "secretName" "redis-creds" "resources" .Values.resources) }}
  5. name (optional): Name of the redis pod/container (default: redis)
  6. secretName (required): Name of the secret containing the redis credentials
  7. resources (required): Resources for the redis container
  8. */}}
  9. {{- define "ix.v1.common.app.redis" -}}
  10. {{- $name := .name | default "redis" -}}
  11. {{- $secretName := (required "Redis - Secret Name is required" .secretName) -}}
  12. {{- $resources := (required "Redis - Resources are required" .resources) }}
  13. {{ $name }}:
  14. enabled: true
  15. type: Deployment
  16. podSpec:
  17. securityContext:
  18. fsGroup: 1001
  19. containers:
  20. {{ $name }}:
  21. enabled: true
  22. primary: true
  23. imageSelector: redisImage
  24. securityContext:
  25. runAsUser: 1001
  26. runAsGroup: 0
  27. runAsNonRoot: false
  28. readOnlyRootFilesystem: false
  29. resources:
  30. limits:
  31. cpu: {{ $resources.limits.cpu }}
  32. memory: {{ $resources.limits.memory }}
  33. envFrom:
  34. - secretRef:
  35. name: {{ $secretName }}
  36. probes:
  37. liveness:
  38. enabled: true
  39. type: exec
  40. command:
  41. - /bin/sh
  42. - -c
  43. - redis-cli -a "$REDIS_PASSWORD" -p ${REDIS_PORT_NUMBER:-6379} ping | grep -q PONG
  44. readiness:
  45. enabled: true
  46. type: exec
  47. command:
  48. - /bin/sh
  49. - -c
  50. - redis-cli -a "$REDIS_PASSWORD" -p ${REDIS_PORT_NUMBER:-6379} ping | grep -q PONG
  51. startup:
  52. enabled: true
  53. type: exec
  54. command:
  55. - /bin/sh
  56. - -c
  57. - redis-cli -a "$REDIS_PASSWORD" -p ${REDIS_PORT_NUMBER:-6379} ping | grep -q PONG
  58. {{- end -}}
  59. {{/* Returns a redis-wait container for waiting for redis to be ready */}}
  60. {{/* Call this template:
  61. {{ include "ix.v1.common.app.redisWait" (dict "name" "redis-wait" "secretName" "redis-creds") }}
  62. name (optional): Name of the redis-wait container (default: redis-wait)
  63. secretName (required): Name of the secret containing the redis credentials
  64. */}}
  65. {{- define "ix.v1.common.app.redisWait" -}}
  66. {{- $name := .name | default "redis-wait" -}}
  67. {{- $secretName := (required "Redis-Wait - Secret Name is required" .secretName) }}
  68. {{ $name }}:
  69. enabled: true
  70. type: init
  71. imageSelector: redisImage
  72. envFrom:
  73. - secretRef:
  74. name: {{ $secretName }}
  75. resources:
  76. limits:
  77. cpu: 500m
  78. memory: 256Mi
  79. command: bash
  80. args:
  81. - -c
  82. - |
  83. echo "Waiting for redis to be ready"
  84. until redis-cli -h "$REDIS_HOST" -a "$REDIS_PASSWORD" -p ${REDIS_PORT_NUMBER:-6379} ping | grep -q PONG; do
  85. echo "Waiting for redis to be ready. Sleeping 2 seconds..."
  86. sleep 2
  87. done
  88. echo "Redis is ready!"
  89. {{- end -}}