From de84da3678e7907987b3add18e935e6b2b14d138 Mon Sep 17 00:00:00 2001
From: Micah Nagel <micah.nagel@parsons.com>
Date: Thu, 26 Aug 2021 22:21:08 +0000
Subject: [PATCH] Kiali: Handle dependencies better

---
 chart/templates/kiali/grafana-auth-secret.yaml |  2 +-
 chart/templates/kiali/values.yaml              | 10 +++++++---
 charter/packages/kiali/Architecture.md         |  2 ++
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/chart/templates/kiali/grafana-auth-secret.yaml b/chart/templates/kiali/grafana-auth-secret.yaml
index 6e4133bbc8..48bdb407d4 100644
--- a/chart/templates/kiali/grafana-auth-secret.yaml
+++ b/chart/templates/kiali/grafana-auth-secret.yaml
@@ -1,4 +1,4 @@
-{{- if .Values.kiali.enabled }}
+{{- if and .Values.kiali.enabled (dig "grafana" "enabled" true .Values.monitoring.values) }}
 apiVersion: v1
 kind: Secret
 metadata:
diff --git a/chart/templates/kiali/values.yaml b/chart/templates/kiali/values.yaml
index e5e46fc8f2..900d159ed3 100644
--- a/chart/templates/kiali/values.yaml
+++ b/chart/templates/kiali/values.yaml
@@ -37,19 +37,23 @@ cr:
       {{- end }}
     external_services:
       grafana:
+        enabled: {{ dig "grafana" "enabled" true .Values.monitoring.values }}
         {{- $grafanaUrl := first (dig "istio" "grafana" "hosts" list .Values.monitoring.values) }}
         url: https://{{ tpl ($grafanaUrl | default (printf "%s.%s" "grafana" .Values.hostname)) . }}
+        {{- if (dig "grafana" "enabled" true .Values.monitoring.values) }}
         auth:
-        {{- if (dig "grafana" "admin" "existingSecret" "" .Values.monitoring.values) }}
+          {{- if (dig "grafana" "admin" "existingSecret" "" .Values.monitoring.values) }}
           {{- $userKey := (dig "grafana" "admin" "userKey" "admin-user" .Values.monitoring.values) }}
           {{- with lookup "v1" "Secret" "monitoring" .Values.monitoring.values.grafana.admin.existingSecret }}
           username: {{ (get .data $userKey | b64dec) | default "admin" }}
           {{- end }}
-        {{- else }}
+          {{- else }}
           username: {{ dig "grafana" "adminUser" "admin" .Values.monitoring.values }}
-        {{- end }}
+          {{- end }}
           password: "secret:grafana-auth:password"
+        {{- end }}
       tracing:
+        enabled: {{ .Values.jaeger.enabled }}
         {{- $tracingUrl := first (dig "istio" "jaeger" "hosts" list .Values.jaeger.values) }}
         url: https://{{ tpl ($tracingUrl | default (printf "%s.%s" "tracing" .Values.hostname)) . }}
       istio:
diff --git a/charter/packages/kiali/Architecture.md b/charter/packages/kiali/Architecture.md
index 2038ba4844..57b9c2c73d 100644
--- a/charter/packages/kiali/Architecture.md
+++ b/charter/packages/kiali/Architecture.md
@@ -31,6 +31,8 @@ graph LR
   end
 ```
 
+NOTE: Prometheus is required for Kiali to function properly; Jaeger and Grafana are optional (although all are part of Big Bang Core).
+
 ### Storage
 
 Kiali does not have any persistent storage, all data is accessed live/directly from Jaeger/Monitoring services.
-- 
GitLab