diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a7f0b7c2eb3..ebf8346fdeb 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -166,6 +166,7 @@ /devenv/docker/blocks/self-instrumentation* @grafana/observability-metrics /devenv/bulk-dashboards/ @grafana/dashboards-squad +/devenv/bulk-folders/ @grafana/grafana-frontend-platform /devenv/bulk_alerting_dashboards/ @grafana/alerting-backend-product /devenv/create_docker_compose.sh @grafana/backend-platform /devenv/dashboards.yaml @grafana/dashboards-squad diff --git a/.gitignore b/.gitignore index 632a27c62e3..e7580cc5fb8 100644 --- a/.gitignore +++ b/.gitignore @@ -87,8 +87,10 @@ public/css/*.min.css /devenv/docker/ha-test-unified-alerting/logs/webhook/webhook-listener.log conf/custom.ini -/conf/provisioning/**/custom.yaml -/conf/provisioning/**/dev.yaml + +/conf/provisioning/**/*.yaml +!/conf/provisioning/**/sample.yaml + /conf/ldap_dev.toml /conf/ldap_freeipa.toml profile.cov @@ -126,6 +128,7 @@ pkg/services/quota/quotaimpl/storage/storage.json *.orig /devenv/bulk-dashboards/*.json +/devenv/bulk-folders/*/*.json /devenv/bulk_alerting_dashboards/*.json /devenv/datasources_bulk.yaml /devenv/bulk_alerting_dashboards/bulk_alerting_datasources.yaml diff --git a/devenv/bulk-folders/bulk-folders.sh b/devenv/bulk-folders/bulk-folders.sh new file mode 100755 index 00000000000..078172eb65b --- /dev/null +++ b/devenv/bulk-folders/bulk-folders.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +numberOfFolders=${1:-200} +numberOfDashboardsPerFolder=${2:-3} + +for (( folderCounter=1; folderCounter<="$numberOfFolders"; folderCounter++ )) +do + echo "Creating folder $folderCounter" + folderPath="bulk-folders/Bulk Folder ${folderCounter}" + + mkdir -p "$folderPath" + + for (( dashCounter=1; dashCounter<="$numberOfDashboardsPerFolder"; dashCounter++ )) + do + jsonnet -o "$folderPath/dashboard${dashCounter}.json" -e "local bulkDash = import 'bulk-dashboards/bulkdash.jsonnet'; bulkDash + { uid: 'bulk-folder-${folderCounter}-${dashCounter}', title: 'Bulk Folder ${folderCounter} Dashboard ${dashCounter}' }" + done +done diff --git a/devenv/bulk-folders/bulk-folders.yaml b/devenv/bulk-folders/bulk-folders.yaml new file mode 100644 index 00000000000..6af39b74c6d --- /dev/null +++ b/devenv/bulk-folders/bulk-folders.yaml @@ -0,0 +1,8 @@ +apiVersion: 1 + +providers: + - name: 'Bulk folders' + type: file + options: + foldersFromFilesStructure: true + path: devenv/bulk-folders diff --git a/devenv/setup.sh b/devenv/setup.sh index fdeecbf4adf..7f6c2c91bcf 100755 --- a/devenv/setup.sh +++ b/devenv/setup.sh @@ -35,6 +35,11 @@ bulkAlertingDashboard() { ln -s -f ../../../devenv/bulk_alerting_dashboards/bulk_alerting_datasources.yaml ../conf/provisioning/datasources/custom.yaml } +bulkFolders() { + ./bulk-folders/bulk-folders.sh "$1" + ln -s -f ../../../devenv/bulk-folders/bulk-folders.yaml ../conf/provisioning/dashboards/bulk-folders.yaml +} + requiresJsonnet() { if ! type "jsonnet" > /dev/null; then echo "you need you install jsonnet to run this script" @@ -57,23 +62,28 @@ devDatasources() { usage() { echo -e "\n" echo "Usage:" - echo " bulk-dashboards - create and provisioning 400 dashboards" - echo " bulk-alerting-dashboards - create and provisioning 400 dashboards with alerts" - echo " no args - provisioning core datasources and dev dashboards" + echo " bulk-dashboards - provision 400 dashboards" + echo " bulk-alerting-dashboards - provision 400 dashboards with alerts" + echo " bulk-folders [folders] [dashboards] - provision many folders with dashboards" + echo " bulk-folders - provision 200 folders with 3 dashboards in each" + echo " no args - provision core datasources and dev dashboards" } main() { - echo -e "------------------------------------------------------------------" - echo -e "This script sets up provisioning for dev datasources and dashboards" - echo -e "------------------------------------------------------------------" + echo -e "----------------------------------------------------------------------------" + echo -e "This script sets up provisioning for dev datasources, dashboards and folders" + echo -e "----------------------------------------------------------------------------" echo -e "\n" local cmd=$1 + local arg1=$2 if [[ $cmd == "bulk-alerting-dashboards" ]]; then bulkAlertingDashboard elif [[ $cmd == "bulk-dashboards" ]]; then bulkDashboard + elif [[ $cmd == "bulk-folders" ]]; then + bulkFolders "$arg1" else devDashboards devDatasources