open-match icon indicating copy to clipboard operation
open-match copied to clipboard

Helm Chart - allow to use user-provided secret for Redis auth if not using Bitnami Redis chart

Open cmartell-at-m42 opened this issue 1 year ago • 0 comments

Is your feature request related to a problem? Please describe. I'd like to be able to use our own secret for Redis authentication when using BYO Redis with the OpenMatch Helm Chart. If I set my values.yaml to the following:

open-match-core:
  redis:
    enabled: false # Disable the bitnami redis chart.
    hostname: master.my-redis.use1.cache.amazonaws.com
    port: 6379
    user: default
    
redis:
  auth:
    enabled: true
  secretMountPath: /app/secrets # This will mount a secret named `redis-password` from the namespace. The OM chart will automatically add `redis-password` to this path. 

Helm will fail to template or install the helm chart with the following error:

Error: INSTALLATION FAILED: template: open-match/templates/synchronizer.yaml:71:12: executing "open-match/templates/synchronizer.yaml" at <include "openmatch.volumes.withredis" .>: error calling include: template: open-match/templates/_helpers.tpl:115:19: executing "openmatch.volumes.withredis" at <include "call-nested" (list . "redis" "common.names.fullname")>: error calling include: template: open-match/templates/_helpers.tpl:239:4: executing "call-nested" at <include $template (dict "Chart" (dict "Name" (last $subchart)) "Values" $values "Release" $dot.Release "Capabilities" $dot.Capabilities)>: error calling include: template: no template "common.names.fullname" associated with template "gotpl"

As it tries to call-nested common.names.fullname from the redis sub-chart, this is present in this line: https://github.com/googleforgames/open-match/blob/dbda6c8dc16967d59af61e7ca4d4bd0e28bf330d/install/helm/open-match/templates/_helpers.tpl#L115

Describe the solution you'd like Ideally I'd be able to provide the name of my own secret, or at least have it default to something that doesn't necessarily requires the redis subchart to be deployed. It should be possible to pass a Values.redis.secretName, and only if that's not provided, attempt to retrieve the name from the subchart.

cmartell-at-m42 avatar Feb 15 '24 06:02 cmartell-at-m42