|
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 |
|
0 commit comments