utils/utils.go (49 lines of code) (raw):
package utils
import (
"os"
"strconv"
"strings"
log "github.com/sirupsen/logrus"
)
// Parse environment variable and return boolean representation of string, or default value if environment variable is unset
func GetBoolAsStringEnvVar(env string, defaultVal bool) bool {
if val, ok := os.LookupEnv(env); ok {
parsedVal, err := strconv.ParseBool(val)
if err == nil {
return parsedVal
}
log.Errorf("Failed to parse variable %s with value %s as boolean", env, val)
return defaultVal
}
// Environment variable is not set, so return default value
return defaultVal
}
// Parse environment variable and return integer representation of string, or default value if environment variable is unset
func GetIntFromStringEnvVar(env string, defaultVal int) (int, error, string) {
if val, ok := os.LookupEnv(env); ok {
parsedVal, err := strconv.Atoi(val)
if err == nil {
return parsedVal, nil, val
}
log.Errorf("Failed to parse variable %s with value %s as integer", env, val)
return -1, err, val
}
// Environment variable is not set, so return default value
return defaultVal, nil, ""
}
// If environment variable is set, return set value, otherwise return default value
func GetEnv(env, defaultVal string) string {
if val, ok := os.LookupEnv(env); ok {
return val
}
return defaultVal
}
// NetworkPolicyEnforcingMode is the mode of network policy enforcement
type NetworkPolicyEnforcingMode string
const (
// None : no network policy enforcement
None NetworkPolicyEnforcingMode = "none"
// Strict : strict network policy enforcement
Strict NetworkPolicyEnforcingMode = "strict"
// Standard :standard network policy enforcement
Standard NetworkPolicyEnforcingMode = "standard"
)
// IsValidNetworkPolicyEnforcingMode checks if the input string matches any of the enum values
func IsValidNetworkPolicyEnforcingMode(input string) bool {
switch strings.ToLower(input) {
case string(None), string(Strict), string(Standard):
return true
default:
return false
}
}