|
| 1 | +{{/* |
| 2 | +Expand the name of the chart. |
| 3 | +*/}} |
| 4 | +{{- define "openops.name" -}} |
| 5 | +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} |
| 6 | +{{- end }} |
| 7 | + |
| 8 | +{{/* |
| 9 | +Create a default fully qualified app name. |
| 10 | +*/}} |
| 11 | +{{- define "openops.fullname" -}} |
| 12 | +{{- if .Values.fullnameOverride }} |
| 13 | +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} |
| 14 | +{{- else }} |
| 15 | +{{- $name := default .Chart.Name .Values.nameOverride }} |
| 16 | +{{- if contains $name .Release.Name }} |
| 17 | +{{- .Release.Name | trunc 63 | trimSuffix "-" }} |
| 18 | +{{- else }} |
| 19 | +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} |
| 20 | +{{- end }} |
| 21 | +{{- end }} |
| 22 | +{{- end }} |
| 23 | + |
| 24 | +{{/* |
| 25 | +Create chart name and version as used by the chart label. |
| 26 | +*/}} |
| 27 | +{{- define "openops.chart" -}} |
| 28 | +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} |
| 29 | +{{- end }} |
| 30 | + |
| 31 | +{{/* |
| 32 | +Common labels |
| 33 | +*/}} |
| 34 | +{{- define "openops.labels" -}} |
| 35 | +helm.sh/chart: {{ include "openops.chart" . }} |
| 36 | +{{ include "openops.selectorLabels" . }} |
| 37 | +{{- if .Chart.AppVersion }} |
| 38 | +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} |
| 39 | +{{- end }} |
| 40 | +app.kubernetes.io/managed-by: {{ .Release.Service }} |
| 41 | +{{- end }} |
| 42 | + |
| 43 | +{{/* |
| 44 | +Selector labels |
| 45 | +*/}} |
| 46 | +{{- define "openops.selectorLabels" -}} |
| 47 | +app.kubernetes.io/name: {{ include "openops.name" . }} |
| 48 | +app.kubernetes.io/instance: {{ .Release.Name }} |
| 49 | +{{- end }} |
| 50 | + |
| 51 | +{{/* |
| 52 | +Redis connection parameters |
| 53 | +*/}} |
| 54 | +{{- define "openops.redisHost" -}} |
| 55 | +{{- .Values.redis.name -}} |
| 56 | +{{- end }} |
| 57 | + |
| 58 | +{{- define "openops.redisPort" -}} |
| 59 | +{{- .Values.redis.service.port | toString -}} |
| 60 | +{{- end }} |
| 61 | + |
| 62 | +{{- define "openops.redisUrl" -}} |
| 63 | +{{- printf "redis://%s:%s/0" (include "openops.redisHost" .) (include "openops.redisPort" .) -}} |
| 64 | +{{- end }} |
| 65 | + |
| 66 | +{{/* |
| 67 | +PostgreSQL connection parameters |
| 68 | +*/}} |
| 69 | +{{- define "openops.postgresHost" -}} |
| 70 | +{{- .Values.postgres.name -}} |
| 71 | +{{- end }} |
| 72 | + |
| 73 | +{{- define "openops.postgresPort" -}} |
| 74 | +{{- default (.Values.postgres.service.port | toString) -}} |
| 75 | +{{- end }} |
| 76 | + |
| 77 | +{{/* |
| 78 | +Service URLs |
| 79 | +*/}} |
| 80 | +{{- define "openops.appServiceUrl" -}} |
| 81 | +{{- printf "http://%s" .Values.app.name -}} |
| 82 | +{{- end }} |
| 83 | + |
| 84 | +{{- define "openops.engineServiceUrl" -}} |
| 85 | +{{- printf "http://%s:3005" .Values.engine.name -}} |
| 86 | +{{- end }} |
| 87 | + |
| 88 | +{{- define "openops.tablesServiceUrl" -}} |
| 89 | +{{- printf "http://%s" .Values.tables.name -}} |
| 90 | +{{- end }} |
| 91 | + |
| 92 | +{{- define "openops.analyticsServiceUrl" -}} |
| 93 | +{{- printf "http://%s:8088" .Values.analytics.name -}} |
| 94 | +{{- end }} |
| 95 | + |
| 96 | +{{/* |
| 97 | +Secret name used to store sensitive environment variables. |
| 98 | +*/}} |
| 99 | +{{- define "openops.secretName" -}} |
| 100 | +{{- printf "%s-env" (include "openops.fullname" .) -}} |
| 101 | +{{- end }} |
| 102 | + |
| 103 | +{{/* |
| 104 | +Determine if an environment variable name should be treated as a secret. |
| 105 | +*/}} |
| 106 | +{{- define "openops.isSecretKey" -}} |
| 107 | +{{- $key := upper . -}} |
| 108 | +{{- if or (contains "PASSWORD" $key) (contains "SECRET" $key) (contains "KEY" $key) -}} |
| 109 | +true |
| 110 | +{{- else -}} |
| 111 | +false |
| 112 | +{{- end -}} |
| 113 | +{{- end }} |
| 114 | + |
| 115 | +{{/* |
| 116 | +Render a single environment variable, sourcing secrets from the shared secret when needed. |
| 117 | +Expected dict: { "root": $, "key": "ENV", "value": "value" } |
| 118 | +*/}} |
| 119 | +{{- define "openops.envVar" -}} |
| 120 | +{{- $root := .root -}} |
| 121 | +{{- $key := .key -}} |
| 122 | +{{- $value := .value -}} |
| 123 | +{{- if eq (include "openops.isSecretKey" $key) "true" -}} |
| 124 | +- name: {{ $key }} |
| 125 | + valueFrom: |
| 126 | + secretKeyRef: |
| 127 | + name: {{ include "openops.secretName" $root }} |
| 128 | + key: {{ $key }} |
| 129 | +{{- else -}} |
| 130 | +- name: {{ $key }} |
| 131 | + value: {{ tpl (tpl $value $root) $root | quote }} |
| 132 | +{{- end -}} |
| 133 | +{{- end }} |
| 134 | + |
| 135 | +{{/* |
| 136 | +Render environment variables from a map using openops.envVar. |
| 137 | +Expected dict: { "root": $, "env": dict } |
| 138 | +*/}} |
| 139 | +{{- define "openops.renderEnv" -}} |
| 140 | +{{- $root := .root -}} |
| 141 | +{{- $env := .env -}} |
| 142 | +{{- if $env }} |
| 143 | +{{- range $k, $v := $env }} |
| 144 | +{{ include "openops.envVar" (dict "root" $root "key" $k "value" $v) }} |
| 145 | +{{- end }} |
| 146 | +{{- end }} |
| 147 | +{{- end }} |
0 commit comments