@@ -46,8 +46,9 @@ export -f create_ingress_certs
4646
4747AUTOGENERATE_INGRESS=" ${AUTOGENERATE_INGRESS:- false} "
4848AUTOGENERATE_STORAGECLASS=" ${AUTOGENERATE_STORAGECLASS:- false} "
49+ AUTOGENERATE_SMTP=" ${AUTOGENERATE_SMTP:- false} "
4950
50- if [ " $AUTOGENERATE_INGRESS " != " true" ] && [ " $AUTOGENERATE_STORAGECLASS " != " true" ]; then
51+ if [ " $AUTOGENERATE_INGRESS " != " true" ] && [ " $AUTOGENERATE_STORAGECLASS " != " true" ] && [ " $AUTOGENERATE_SMTP " != " true " ] ; then
5152 log_debug " No autogeneration of YAML enabled"
5253 export AUTOGENERATE_SOURCED=" NotNeeded"
5354fi
@@ -69,7 +70,6 @@ if [ -z "$AUTOGENERATE_SOURCED" ]; then
6970 exit 1
7071 fi
7172
72-
7373 # validate required inputs
7474 BASE_DOMAIN=" ${BASE_DOMAIN} "
7575 if [ -z " $BASE_DOMAIN " ]; then
@@ -107,8 +107,66 @@ if [ -z "$AUTOGENERATE_SOURCED" ]; then
107107 fi
108108
109109 if [ " $AUTOGENERATE_STORAGECLASS " == " true" ]; then
110-
111110 log_info " Autogeneration of StorageClass specfication has been enabled"
111+ fi
112+
113+ if [ " $AUTOGENERATE_SMTP " == " true" ]; then
114+
115+ # required
116+ # shellcheck disable=SC2269
117+ SMTP_HOST=" ${SMTP_HOST} "
118+ # shellcheck disable=SC2269
119+ SMTP_PORT=" ${SMTP_PORT} "
120+ # shellcheck disable=SC2269
121+ SMTP_FROM_ADDRESS=" ${SMTP_FROM_ADDRESS} "
122+ # shellcheck disable=SC2269
123+ SMTP_FROM_NAME=" ${SMTP_FROM_NAME} "
124+
125+ # optional
126+ # shellcheck disable=SC2269
127+ SMTP_USER=" ${SMTP_USER} "
128+ # shellcheck disable=SC2269
129+ SMTP_PASSWORD=" ${SMTP_PASSWORD} "
130+ SMTP_USER_SECRET=" ${SMTP_USER_SECRET:- grafana-smtp-user} "
131+ SMTP_SKIP_VERIFY=" ${SMTP_SKIP_VERIFY:- false} "
132+ SMTP_TLS_CERT_FILE=" ${SMTP_TLS_CERT_FILE:-/ cert/ tls.crt} "
133+ SMTP_TLS_KEY_FILE=" ${SMTP_TLS_KEY_FILE:-/ cert/ tls.key} "
134+
135+ log_info " Autogeneration of SMTP Configuration has been enabled"
136+
137+ if [ -z " $SMTP_HOST " ]; then
138+ log_error " Required parameter [SMTP_HOST] not provided"
139+ exit 1
140+ fi
141+
142+ if [ -z " $SMTP_PORT " ]; then
143+ log_error " Required parameter [SMTP_PORT] not provided"
144+ exit 1
145+ fi
146+
147+ if [ -z " $SMTP_FROM_ADDRESS " ]; then
148+ log_error " Required parameter [SMTP_FROM_ADDRESS] not provided"
149+ exit 1
150+ fi
151+
152+ if [ -z " $SMTP_FROM_NAME " ]; then
153+ log_error " Required parameter [SMTP_FROM_NAME] not provided"
154+ exit 1
155+ fi
156+
157+ # Handle SMTP user credentials
158+ if [ -n " $( kubectl get secret -n " $MON_NS " " $SMTP_USER_SECRET " --ignore-not-found -o name 2> /dev/null) " ]; then
159+ log_debug " Secret [$SMTP_USER_SECRET ] exists; will use it for SMTP user credentials"
160+ elif [ -z " $SMTP_USER " ] && [ -z " $SMTP_PASSWORD " ]; then
161+ log_debug " Neither SMTP_USER nor SMTP_PASSWORD are set; skipping creation of secret [$SMTP_USER_SECRET ]"
162+ elif [ -z " $SMTP_USER " ] || [ -z " $SMTP_PASSWORD " ]; then
163+ log_error " Complete SMTP Credentials NOT provided; MUST provide BOTH [SMTP_USER] and [SMTP_PASSWORD]"
164+ log_info " SMTP_USER is set to [$SMTP_USER ] and SMTP_PASSWORD is set to [$SMTP_PASSWORD ]"
165+ exit 1
166+ else
167+ log_debug " Creating secret [$MON_NS /$SMTP_USER_SECRET ] from supplied user [$SMTP_USER ] and password."
168+ kubectl create secret generic " $SMTP_USER_SECRET " -n " $MON_NS " --from-literal=user=" $SMTP_USER " --from-literal=password=" $SMTP_PASSWORD "
169+ fi
112170
113171 fi
114172
0 commit comments