diff --git a/charts/invoiceninja/Chart.yaml b/charts/invoiceninja/Chart.yaml index afbba79..60c37f2 100644 --- a/charts/invoiceninja/Chart.yaml +++ b/charts/invoiceninja/Chart.yaml @@ -13,11 +13,11 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.2.0 +version: 0.3.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. -appVersion: 5.1.32 +appVersion: 5.1.35 keywords: - invoiceninja home: https://github.com/lwj5/invoiceninja-chart diff --git a/charts/invoiceninja/README.md b/charts/invoiceninja/README.md index 875b0ae..33cd060 100644 --- a/charts/invoiceninja/README.md +++ b/charts/invoiceninja/README.md @@ -163,9 +163,12 @@ The following table shows the configuration options for the Invoiceninja helm ch | `redis.enabled` | If external redis is used, set it to `false` | `true` | | `redis.password` | Redis password | `nil` | | `redis.usePassword` | Use redis password | `false` | +| `redis.sentinel.enabled` | Enable sentinel containers | `true` | +| `redis.sentinel.usePassword` | Use password for sentinel containers | `false` | | `externalRedis.host` | Host of the external redis | `nil` | | `externalRedis.port` | Port of the external redis | `6379` | | `externalRedis.password` | Password for the external redis | `nil` | +| `externalRedis.sentinel` | Using sentinels | `false` | | `externalRedis.databases.default` | Database to use by default | `0` | | `externalRedis.databases.cache` | Database to use by cache | `1` | diff --git a/charts/invoiceninja/templates/_helpers.tpl b/charts/invoiceninja/templates/_helpers.tpl index 4b1c6a6..66812d1 100644 --- a/charts/invoiceninja/templates/_helpers.tpl +++ b/charts/invoiceninja/templates/_helpers.tpl @@ -140,7 +140,11 @@ Return the Redis Hostname */}} {{- define "invoiceninja.redisHost" -}} {{- if .Values.redis.enabled }} + {{- if .Values.redis.sentinel.enabled }} + {{- printf "%s-%s" (include "invoiceninja.redis.fullname" .) "headless" | trunc 63 | trimSuffix "-" -}} + {{- else }} {{- printf "%s-%s" (include "invoiceninja.redis.fullname" .) "master" | trunc 63 | trimSuffix "-" -}} + {{- end -}} {{- else -}} {{- printf "%s" .Values.externalRedis.host -}} {{- end -}} @@ -151,7 +155,11 @@ Return the Redis Port */}} {{- define "invoiceninja.redisPort" -}} {{- if .Values.redis.enabled }} + {{- if .Values.redis.sentinel.enabled }} + {{- printf "26379" -}} + {{- else }} {{- printf "6379" -}} + {{- end -}} {{- else -}} {{- printf "%d" (.Values.externalRedis.port | int ) -}} {{- end -}} @@ -189,3 +197,36 @@ Return the Redis Secret Name {{- printf "%s" (include "invoiceninja.redis.fullname" .) -}} {{- end -}} {{- end -}} + +{{/* +Return the Broadcast Connection Name +*/}} +{{- define "invoiceninja.redisBroadcastConnection" -}} +{{- if or (and .Values.redis.enabled .Values.redis.sentinel.enabled) (and .Values.externalRedis.host .Values.externalRedis.sentinel) }} + {{- printf "sentinel-default" -}} +{{- else -}} + {{- printf "default" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the Cache Connection Name +*/}} +{{- define "invoiceninja.redisCacheConnection" -}} +{{- if or (and .Values.redis.enabled .Values.redis.sentinel.enabled) (and .Values.externalRedis.host .Values.externalRedis.sentinel) }} + {{- printf "sentinel-cache" -}} +{{- else -}} + {{- printf "cache" -}} +{{- end -}} +{{- end -}} + +{{/* +Return the Broadcast Driver Name +*/}} +{{- define "invoiceninja.redisQueueConnection" -}} +{{- if or (and .Values.redis.enabled .Values.redis.sentinel.enabled) (and .Values.externalRedis.host .Values.externalRedis.sentinel) }} + {{- printf "sentinel-default" -}} +{{- else -}} + {{- printf "default" -}} +{{- end -}} +{{- end -}} diff --git a/charts/invoiceninja/templates/configmap.yaml b/charts/invoiceninja/templates/configmap.yaml index 08a8f49..879cec7 100644 --- a/charts/invoiceninja/templates/configmap.yaml +++ b/charts/invoiceninja/templates/configmap.yaml @@ -22,27 +22,29 @@ data: DB_PORT1: {{ include "invoiceninja.databasePort" . | quote }} DB_USERNAME1: {{ include "invoiceninja.databaseUser" . | quote }} DB_DATABASE1: {{ include "invoiceninja.databaseName" . | quote }} - {{- if not (empty .Values.logChannel) }} + {{- if .Values.logChannel }} LOG_CHANNEL: {{ .Values.logChannel | quote }} + {{- else }} + LOG_CHANNEL: stderr {{- end }} - {{- if not (empty .Values.broadcastDriver) }} + {{- if .Values.broadcastDriver }} BROADCAST_DRIVER: {{ .Values.broadcastDriver | quote }} - {{- else if or .Values.redis.enabled (not (empty .Values.externalRedis.host)) }} + {{- else if or .Values.redis.enabled .Values.externalRedis.host }} BROADCAST_DRIVER: redis {{- end }} - {{- if not (empty .Values.cacheDriver) }} + {{- if .Values.cacheDriver }} CACHE_DRIVER: {{ .Values.cacheDriver | quote }} - {{- else if or .Values.redis.enabled (not (empty .Values.externalRedis.host)) }} + {{- else if or .Values.redis.enabled .Values.externalRedis.host }} CACHE_DRIVER: redis {{- end }} - {{- if not (empty .Values.sessionDriver) }} + {{- if .Values.sessionDriver }} SESSION_DRIVER: {{ .Values.sessionDriver | quote }} - {{- else if or .Values.redis.enabled (not (empty .Values.externalRedis.host)) }} + {{- else if or .Values.redis.enabled .Values.externalRedis.host }} SESSION_DRIVER: redis {{- end }} - {{- if not (empty .Values.queueConnection) }} + {{- if .Values.queueConnection }} QUEUE_CONNECTION: {{ .Values.queueConnection | quote }} - {{- else if or .Values.redis.enabled (not (empty .Values.externalRedis.host)) }} + {{- else if or .Values.redis.enabled .Values.externalRedis.host }} QUEUE_CONNECTION: redis {{- end }} PHANTOMJS_PDF_GENERATION: {{ not .Values.snappdf | quote}} @@ -50,3 +52,6 @@ data: REDIS_PORT: {{ include "invoiceninja.redisPort" . | quote }} REDIS_DB: {{ include "invoiceninja.redisDatabase" . | quote }} REDIS_CACHE_DB: {{ include "invoiceninja.redisCacheDatabase" . | quote }} + REDIS_BROADCAST_CONNECTION: {{ include "invoiceninja.redisBroadcastConnection" . | quote }} + REDIS_CACHE_CONNECTION: {{ include "invoiceninja.redisCacheConnection" . | quote }} + REDIS_QUEUE_CONNECTION: {{ include "invoiceninja.redisQueueConnection" . | quote }} diff --git a/charts/invoiceninja/values.yaml b/charts/invoiceninja/values.yaml index c0d6baa..68224f8 100644 --- a/charts/invoiceninja/values.yaml +++ b/charts/invoiceninja/values.yaml @@ -18,7 +18,7 @@ image: registry: docker.io repository: invoiceninja/invoiceninja - tag: 5.1.32 + tag: 5.1.35 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images ## @@ -336,18 +336,19 @@ autoscaling: redis: enabled: true usePassword: false - cluster: - enabled: false + sentinel: + enabled: true + usePassword: false ## External Redis Configuration ## ## All of these values are only used when redis.enabled is set to false ## externalRedis: - ## Redis host + ## Redis/Sentinel host ## host: "" - ## Redis port number + ## Redis/Sentinel port number ## port: 6379 ## Redis password @@ -358,6 +359,8 @@ externalRedis: ## NOTE: When it's set, the `externalRedis.password` parameter is ignored ## # existingSecret: + ## Whether Redis Sentinel are used + sentinel: false ## Redis databases ## databases: