| @@ -43,6 +43,8 @@ var ( |
|
|
| 43 |
43 |
|
| 44 |
44 |
grafanaAPIToken = flag.String("grafana-api-token", "", |
| 45 |
45 |
"grafana-api-token used to access Grafana. Can be created using: https://grafana.com/docs/grafana/latest/administration/service-accounts/#create-a-service-account-in-grafana") |
|
46 |
+grafanaAPITokenFilepath = flag.String("grafana-api-token-filepath", "", |
|
47 |
+"filepath to a file containing the grafana-api-token used to access Grafana.") |
| 46 |
48 |
|
| 47 |
49 |
grafanaEndpoint = flag.String("grafana-api-endpoint", "", "grafana-api-endpoint is the endpoint of the Grafana instance that contains the data sources to update.") |
| 48 |
50 |
|
| @@ -76,11 +78,27 @@ func main() { |
|
|
| 76 |
78 |
os.Exit(1) |
| 77 |
79 |
} |
| 78 |
80 |
|
|
81 |
+if *grafanaAPIToken != "" && *grafanaAPITokenFilepath != "" { |
|
82 |
+//nolint:errcheck |
|
83 |
+level.Error(logger).Log("msg", "at most one of --grafana-api-token and --grafana-api-token-filepath must be set") |
|
84 |
+os.Exit(1) |
|
85 |
+ } |
|
86 |
+ |
|
87 |
+if *grafanaAPITokenFilepath != "" { |
|
88 |
+b, err := os.ReadFile(*grafanaAPITokenFilepath) |
|
89 |
+if err != nil { |
|
90 |
+//nolint:errcheck |
|
91 |
+level.Error(logger).Log("msg", "could not read grafana-api-token-filepath", "err", err) |
|
92 |
+os.Exit(1) |
|
93 |
+ } |
|
94 |
+*grafanaAPIToken = string(b) |
|
95 |
+ } |
|
96 |
+ |
| 79 |
97 |
if *grafanaAPIToken == "" { |
| 80 |
98 |
envToken := os.Getenv("GRAFANA_SERVICE_ACCOUNT_TOKEN") |
| 81 |
99 |
if envToken == "" { |
| 82 |
100 |
//nolint:errcheck |
| 83 |
|
-level.Error(logger).Log("msg", "--grafana-api-token or the environment variable GRAFANA_SERVICE_ACCOUNT_TOKEN must be set") |
|
101 |
+level.Error(logger).Log("msg", "at most one of --grafana-api-token, --grafana-api-token-filepath, or the environment variable GRAFANA_SERVICE_ACCOUNT_TOKEN must be set") |
| 84 |
102 |
os.Exit(1) |
| 85 |
103 |
} |
| 86 |
104 |
grafanaAPIToken = &envToken |