File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # Always backup to s3://rk-infra/grafana/backup/current/
2+ # Manual copy to s3://rk-infra/grafana/backup/rkYYnet/ when tearing down
3+ # Automaticaly imported from s3://rk-infra/grafana/backup/rkYYnet/ at creation
4+ # Imported dashboards are not overwritten in later tf applies
5+
6+
7+ locals {
8+ grafana_dashboards = {
9+ " bird_rs" = {},
10+ " dhcp" = {},
11+ " dns" = {},
12+ " location" = {},
13+ " overview" = {},
14+ " ping" = {},
15+ " prometheus" = {},
16+ " v6mostly" = {},
17+ }
18+ }
19+
20+ data "aws_s3_object" "dashboard" {
21+ for_each = local. grafana_dashboards
22+
23+ bucket = " rk-infra"
24+ key = " grafana/backup/rk25net/${ each . key } .json"
25+ }
26+
27+ resource "grafana_dashboard" "dashboard" {
28+ for_each = local. grafana_dashboards
29+
30+ config_json = replace (data. aws_s3_object . dashboard [each . key ]. body , " /\\ $${DS_PROMETHEUS}/" , grafana_data_source. prometheus . uid )
31+
32+ lifecycle {
33+ ignore_changes = [config_json ]
34+ }
35+ }
36+
37+ data "grafana_dashboard" "dashboard-backup" {
38+ for_each = local. grafana_dashboards
39+ uid = grafana_dashboard. dashboard [each . key ]. uid
40+ }
41+
42+ resource "aws_s3_object" "dashboard-backup" {
43+ for_each = local. grafana_dashboards
44+
45+ bucket = " rk-infra"
46+ key = " grafana/backup/current/${ each . key } .json"
47+
48+ content = replace (data. grafana_dashboard . dashboard-backup [each . key ]. config_json , " /\" uid\" :\" ${ grafana_data_source . prometheus . uid } \" /" , " \" uid\" :\" $${DS_PROMETHEUS}\" " )
49+ content_type = " application/json"
50+ }
You can’t perform that action at this time.
0 commit comments