Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 27 additions & 33 deletions cmd/plugin-backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,16 @@ import (
)

var (
portArg = flag.Int("port", 0, "server port to listen on (default: 9443)\nports 9444 and 9445 reserved for other use")
portArg = flag.Int("port", 9443, "server port to listen on\nports 9444 and 9445 reserved for other use")
certArg = flag.String("cert", "", "cert file path to enable TLS (disabled by default)")
keyArg = flag.String("key", "", "private key file path to enable TLS (disabled by default)")
featuresArg = flag.String("features", "", "enabled features, comma separated.\noptions: ['acm-alerting', 'incidents', 'dev-config', 'perses-dashboards']")
staticPathArg = flag.String("static-path", "", "static files path to serve frontend (default: './web/dist')")
configPathArg = flag.String("config-path", "", "config files path (default: './config')")
pluginConfigArg = flag.String("plugin-config-path", "", "plugin yaml configuration")
logLevelArg = flag.String("log-level", logrus.InfoLevel.String(), "verbosity of logs\noptions: ['panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace']\n'trace' level will log all incoming requests\n(default 'error')")
alertmanagerUrlArg = flag.String("alertmanager", "", "alertmanager url to proxy to for acm mode")
thanosQuerierUrlArg = flag.String("thanos-querier", "", "thanos querier url to proxy to for acm mode")
staticPathArg = flag.String("static-path", "/opt/app-root/web/dist", "static files path to serve frontend")
configPathArg = flag.String("config-path", "/opt/app-root/config", "config files path")
pluginConfigArg = flag.String("plugin-config-path", "/etc/plugin/config.yaml", "plugin yaml configuration")
logLevelArg = flag.String("log-level", logrus.InfoLevel.String(), "verbosity of logs\noptions: ['panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace']\n'trace' level will log all incoming requests")
alertmanagerUrlArg = flag.String("alertmanager", "", "Alertmanager URL to proxy to for ACM mode")
thanosQuerierUrlArg = flag.String("thanos-querier", "", "Thanos Querier URL to proxy to for ACM mode")
tlsMinVersionArg = flag.String("tls-min-version", "VersionTLS12", "minimum TLS version\noptions: ['VersionTLS10', 'VersionTLS11', 'VersionTLS12', 'VersionTLS13']")
tlsMaxVersionArg = flag.String("tls-max-version", "", "maximum TLS version\noptions: ['VersionTLS10', 'VersionTLS11', 'VersionTLS12', 'VersionTLS13']\n(default is the highest supported by Go)")
tlsCipherSuitesArg = flag.String("tls-cipher-suites", "", "comma-separated list of cipher suites for the server\nvalues are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants)")
Expand All @@ -32,19 +32,19 @@ var (
func main() {
flag.Parse()

port := mergeEnvValueInt("PORT", *portArg, 9443)
cert := mergeEnvValue("CERT_FILE_PATH", *certArg, "")
key := mergeEnvValue("PRIVATE_KEY_FILE_PATH", *keyArg, "")
features := mergeEnvValue("MONITORING_PLUGIN_FEATURES", *featuresArg, "")
staticPath := mergeEnvValue("MONITORING_PLUGIN_STATIC_PATH", *staticPathArg, "/opt/app-root/web/dist")
configPath := mergeEnvValue("MONITORING_PLUGIN_MANIFEST_CONFIG_PATH", *configPathArg, "/opt/app-root/config")
pluginConfigPath := mergeEnvValue("MONITORING_PLUGIN_CONFIG_PATH", *pluginConfigArg, "/etc/plugin/config.yaml")
logLevel := mergeEnvValue("MONITORING_PLUGIN_LOG_LEVEL", *logLevelArg, logrus.InfoLevel.String())
alertmanagerUrl := mergeEnvValue("MONITORING_PLUGIN_ALERTMANAGER", *alertmanagerUrlArg, "")
thanosQuerierUrl := mergeEnvValue("MONITORING_PLUGIN_THANOS_QUERIER", *thanosQuerierUrlArg, "")
tlsMinVersion := mergeEnvValue("TLS_MIN_VERSION", *tlsMinVersionArg, "")
tlsMaxVersion := mergeEnvValue("TLS_MAX_VERSION", *tlsMaxVersionArg, "")
tlsCipherSuites := mergeEnvValue("TLS_CIPHER_SUITES", *tlsCipherSuitesArg, "")
port := mergeEnvValueInt("PORT", *portArg)
cert := mergeEnvValue("CERT_FILE_PATH", *certArg)
key := mergeEnvValue("PRIVATE_KEY_FILE_PATH", *keyArg)
features := mergeEnvValue("MONITORING_PLUGIN_FEATURES", *featuresArg)
staticPath := mergeEnvValue("MONITORING_PLUGIN_STATIC_PATH", *staticPathArg)
configPath := mergeEnvValue("MONITORING_PLUGIN_MANIFEST_CONFIG_PATH", *configPathArg)
pluginConfigPath := mergeEnvValue("MONITORING_PLUGIN_CONFIG_PATH", *pluginConfigArg)
logLevel := mergeEnvValue("MONITORING_PLUGIN_LOG_LEVEL", *logLevelArg)
alertmanagerUrl := mergeEnvValue("MONITORING_PLUGIN_ALERTMANAGER", *alertmanagerUrlArg)
thanosQuerierUrl := mergeEnvValue("MONITORING_PLUGIN_THANOS_QUERIER", *thanosQuerierUrlArg)
tlsMinVersion := mergeEnvValue("TLS_MIN_VERSION", *tlsMinVersionArg)
tlsMaxVersion := mergeEnvValue("TLS_MAX_VERSION", *tlsMaxVersionArg)
tlsCipherSuites := mergeEnvValue("TLS_CIPHER_SUITES", *tlsCipherSuitesArg)

featuresList := strings.Fields(strings.Join(strings.Split(strings.ToLower(features), ","), " "))

Expand Down Expand Up @@ -98,33 +98,27 @@ func main() {
}
}

func mergeEnvValue(key string, arg string, defaultValue string) string {
func mergeEnvValue(key string, arg string) string {
if arg != "" {
return arg
}

envValue := os.Getenv(key)

if envValue != "" {
return envValue
}

return defaultValue
return os.Getenv(key)
}

func mergeEnvValueInt(key string, arg int, defaultValue int) int {
func mergeEnvValueInt(key string, arg int) int {
if arg != 0 {
return arg
}

envValue := os.Getenv(key)

num, err := strconv.Atoi(envValue)
if err != nil && num != 0 {
return num
i, err := strconv.Atoi(envValue)
if err != nil {
return 0
}

return defaultValue
return i
}

func getCipherSuitesMap() map[string]uint16 {
Expand Down