kube-prometheus/hack: Add generation for grafana dashboard source file
This commit is contained in:
@@ -77,11 +77,13 @@ DASHBOARD_HEADER_FILE="$TEMPLATES_DIR/dashboard.header"
|
||||
DASHBOARD_FOOT_FILE="$TEMPLATES_DIR/dashboard.foot"
|
||||
CONFIGMAP_HEADER="$TEMPLATES_DIR/ConfigMap.header"
|
||||
GRAFANA_DEPLOYMENT_TEMPLATE="$TEMPLATES_DIR/grafana-deployment-template.yaml"
|
||||
GRAFANA_DASHBOARDS_TEMPLATE="$TEMPLATES_DIR/grafana-dashboards-template.yaml"
|
||||
OUTPUT_BASE_DIR="$TOOL_HOME/output"
|
||||
|
||||
# Some default values
|
||||
OUTPUT_FILE="$OUTPUT_BASE_DIR/grafana-dashboards-configMap-$DATE_EXEC.yaml"
|
||||
GRAFANA_OUTPUT_FILE="$OUTPUT_BASE_DIR/grafana-deployment-$DATE_EXEC.yaml"
|
||||
GRAFANA_DASHBOARD_OUTPUT_FILE="$OUTPUT_BASE_DIR/grafana-dashboards-$DATE_EXEC.yaml"
|
||||
DASHBOARDS_DIR="$TEMPLATES_DIR/grafana-dashboards"
|
||||
|
||||
APPLY_CONFIGMAP="false"
|
||||
@@ -100,6 +102,10 @@ while (( "$#" )); do
|
||||
GRAFANA_OUTPUT_FILE="$2"
|
||||
shift
|
||||
;;
|
||||
"-d" | "--grafana-dashboard-output-file")
|
||||
GRAFANA_DASHBOARD_OUTPUT_FILE="$2"
|
||||
shift
|
||||
;;
|
||||
"-i" | "--input-dir")
|
||||
DASHBOARDS_DIR="$2"
|
||||
shift
|
||||
@@ -298,6 +304,7 @@ test -f "$DASHBOARD_FOOT_FILE" || { echo "Template $DASHBOARD_FOOT_FILE not foun
|
||||
test -f "$DASHBOARD_HEADER_FILE" || { echo "Template $DASHBOARD_HEADER_FILE not found"; exit 1; }
|
||||
test -f "$CONFIGMAP_HEADER" || { echo "Template $CONFIGMAP_HEADER not found"; exit 1; }
|
||||
test -f "$GRAFANA_DEPLOYMENT_TEMPLATE" || { echo "Template $GRAFANA_DEPLOYMENT_TEMPLATE not found"; exit 1; }
|
||||
test -f "$GRAFANA_DASHBOARDS_TEMPLATE" || { echo "Template $GRAFANA_DEPLOYMENT_TEMPLATE not found"; exit 1; }
|
||||
|
||||
test ! -d "$OUTPUT_BASE_DIR" && { echo "ERROR: missing directory $OUTPUT_BASE_DIR"; exit 1; }
|
||||
|
||||
@@ -306,6 +313,7 @@ test -d "$DASHBOARDS_DIR" || { echo "ERROR: Dashboards directory not found: $DAS
|
||||
|
||||
test -f "$OUTPUT_FILE" && { echo "ERROR: Output file already exists: $OUTPUT_FILE"; exit 1; }
|
||||
test -f "$GRAFANA_OUTPUT_FILE" && { echo "ERROR: Output file already exists: $GRAFANA_OUTPUT_FILE"; exit 1; }
|
||||
test -f "$GRAFANA_DASHBOARD_OUTPUT_FILE" && { echo "ERROR: Output file already exists: $GRAFANA_DASHBOARD_OUTPUT_FILE"; exit 1; }
|
||||
touch $OUTPUT_FILE || { echo "ERROR: Unable to create or modify $OUTPUT_FILE"; exit 1; }
|
||||
touch $GRAFANA_OUTPUT_FILE || { echo "ERROR: Unable to create or modify $GRAFANA_OUTPUT_FILE"; exit 1; }
|
||||
|
||||
@@ -380,6 +388,22 @@ sed -e "s#XXX_VOLUMES_XXX#$(indentMultiLineString 6 "$VOLUMES")#" \
|
||||
-e "s#XXX_WATCH_DIR_XXX#$(indentMultiLineString 10 "$WATCH_DIR")#" \
|
||||
$GRAFANA_DEPLOYMENT_TEMPLATE > $GRAFANA_OUTPUT_FILE
|
||||
|
||||
echo
|
||||
echo "# Generating Grafana dashboard sources file for $total_configmaps_created directories"
|
||||
DASHBOARD_SOURCES=""
|
||||
for (( j=0; j<$total_configmaps_created; j++ )); do
|
||||
echo "# Preparing grafana dashboards sources to support configmap: /grafana-dashboard-definitions/$j"
|
||||
test "$DASHBOARD_SOURCES" && DASHBOARD_SOURCES="$DASHBOARD_SOURCES\n- name: '$j'\n org_id: 1\n folder: ''\n type: file\n options:\n folder: /grafana-dashboard-definitions/$j" || DASHBOARD_SOURCES="- name: '$j'\n org_id: 1\n folder: ''\n type: file\n options:\n folder: /grafana-dashboard-definitions/$j"
|
||||
|
||||
# echo "DEBUG:"
|
||||
# echo "DASHBOARD_SOURCES: $DASHBOARD_SOURCES"
|
||||
echo
|
||||
done
|
||||
|
||||
echo "# Processing grafana dashboards template into $GRAFANA_DASHBOARD_OUTPUT_FILE"
|
||||
sed -e "s#XXX_DASHBOARDS_XXX#$(indentMultiLineString 4 "$DASHBOARD_SOURCES")#" \
|
||||
$GRAFANA_DASHBOARDS_TEMPLATE > $GRAFANA_DASHBOARD_OUTPUT_FILE
|
||||
|
||||
# If output file is empty we can delete it and exit
|
||||
test ! -s "$OUTPUT_FILE" && { echo "# Configmap empty, deleting file"; rm $OUTPUT_FILE; exit 0; }
|
||||
test ! -s "$GRAFANA_OUTPUT_FILE" && { echo "# Configmap empty, deleting file"; rm $GRAFANA_OUTPUT_FILE; exit 0; }
|
||||
|
@@ -0,0 +1,7 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: grafana-dashboards
|
||||
data:
|
||||
dashboards.yaml: |+
|
||||
XXX_DASHBOARDS_XXX
|
@@ -13,9 +13,10 @@ hack/scripts/generate-dashboards-configmap.sh > manifests/grafana/grafana-dashbo
|
||||
# Input dir: assets/grafana
|
||||
# output file: manifests/grafana/grafana-dashboards.yaml
|
||||
# grafana deployment output file: manifests/grafana/grafana-deployment.yaml
|
||||
test -f manifests/grafana/grafana-dashboards.yaml && rm -f manifests/grafana/grafana-dashboard-definitions.yaml
|
||||
test -f manifests/grafana/grafana-dashboard-definitions.yaml && rm -f manifests/grafana/grafana-dashboard-definitions.yaml
|
||||
test -f manifests/grafana/grafana-deployment.yaml && rm -f manifests/grafana/grafana-deployment.yaml
|
||||
hack/grafana-dashboards-configmap-generator/bin/grafana_dashboards_generate.sh -s 240000 -i assets/grafana/generated -o manifests/grafana/grafana-dashboard-definitions.yaml -g manifests/grafana/grafana-deployment.yaml
|
||||
test -f manifests/grafana/grafana-dashboards.yaml && rm -f manifests/grafana/grafana-dashboards.yaml
|
||||
hack/grafana-dashboards-configmap-generator/bin/grafana_dashboards_generate.sh -s 240000 -i assets/grafana/generated -o manifests/grafana/grafana-dashboard-definitions.yaml -g manifests/grafana/grafana-deployment.yaml -d manifests/grafana/grafana-dashboards.yaml
|
||||
|
||||
# Generate Grafana Credentials Secret
|
||||
hack/scripts/generate-grafana-credentials-secret.sh admin admin > manifests/grafana/grafana-credentials.yaml
|
||||
|
Reference in New Issue
Block a user