Merge pull request #8319 from roidelapluie/promtooltls

Promtool: add web config validation
This commit is contained in:
Julien Pivotto 2020-12-29 21:14:52 +01:00 committed by GitHub
commit 0de83bfa14
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 28 additions and 0 deletions

View File

@ -37,6 +37,7 @@ import (
config_util "github.com/prometheus/common/config"
"github.com/prometheus/common/model"
"github.com/prometheus/common/version"
"github.com/prometheus/exporter-toolkit/https"
"gopkg.in/alecthomas/kingpin.v2"
"github.com/prometheus/prometheus/config"
@ -59,6 +60,12 @@ func main() {
"The config files to check.",
).Required().ExistingFiles()
checkWebConfigCmd := checkCmd.Command("web-config", "Check if the web config files are valid or not.")
webConfigFiles := checkWebConfigCmd.Arg(
"web-config-files",
"The config files to check.",
).Required().ExistingFiles()
checkRulesCmd := checkCmd.Command("rules", "Check if the rule files are valid or not.")
ruleFiles := checkRulesCmd.Arg(
"rule-files",
@ -154,6 +161,9 @@ func main() {
case checkConfigCmd.FullCommand():
os.Exit(CheckConfig(*configFiles...))
case checkWebConfigCmd.FullCommand():
os.Exit(CheckWebConfig(*webConfigFiles...))
case checkRulesCmd.FullCommand():
os.Exit(CheckRules(*ruleFiles...))
@ -234,6 +244,24 @@ func CheckConfig(files ...string) int {
return 0
}
// CheckWebConfig validates web configuration files.
func CheckWebConfig(files ...string) int {
failed := false
for _, f := range files {
if err := https.Validate(f); err != nil {
fmt.Fprintln(os.Stderr, f, "FAILED:", err)
failed = true
continue
}
fmt.Fprintln(os.Stderr, f, "SUCCESS")
}
if failed {
return 1
}
return 0
}
func checkFileExists(fn string) error {
// Nothing set, nothing to error on.
if fn == "" {