diff --git a/hack/scripts/wrap-dashboard.sh b/hack/scripts/wrap-dashboard.sh
new file mode 100755
index 0000000000000000000000000000000000000000..1b514387cbed26c9f9db9137aae3817ca4004728
--- /dev/null
+++ b/hack/scripts/wrap-dashboard.sh
@@ -0,0 +1,50 @@
+#!/bin/bash -eu
+
+# Intended usage:
+#  * Edit dashboard in Grafana (you need to login first with admin/admin
+#    login/password).
+#  * Save dashboard in Grafana to check is specification is correct.
+#    Looks like this is the only way to check is dashboard specification
+#    has error.
+#  * Download dashboard specification as JSON file in Grafana:
+#    Share -> Export -> Save to file.
+#  * Wrap dashboard specification to make it digestable by kube-prometheus:
+#      ./hack/scripts/wrap-dashboard.sh Nodes-1488465802729.json
+#  * Replace dashboard specification:
+#      mv Nodes-1488465802729.json assets/grafana/node-dashboard.json
+#  * Regenerate Grafana configmap:
+#      ./hack/scripts/generate-configmaps.sh
+#  * Apply new configmap:
+#      kubectl -n monitoring apply -f manifests/grafana/grafana-cm.yaml
+
+if [ "$#" -ne 1 ]; then
+    echo "Usage: $0 path-to-dashboard.json"
+    exit 1
+fi
+
+json=$1
+temp=$(tempfile -m 0644)
+
+cat >> $temp <<EOF
+{
+  "dashboard":
+EOF
+
+cat $json >> $temp
+
+cat >> $temp <<EOF
+,
+  "inputs": [
+    {
+      "name": "DS_PROMETHEUS",
+      "pluginId": "prometheus",
+      "type": "datasource",
+      "value": "prometheus"
+    }
+  ],
+  "overwrite": true
+}
+EOF
+
+mv $temp $json
+