pkg/config/validators/validators.go (52 lines of code) (raw):

package validators import ( "encoding/json" "fmt" ) func GetValidator(variableKind string) func(string) error { switch variableKind { case "envVarMap": return keyValueMapValidator case "imagePullPolicy": return imagePullPolicyValidator case "kubernetesProbeType": return kubernetesProbeTypeValidator case "scalingResourceType": return scalingResourceTypeValidator default: return defaultValidator } } func imagePullPolicyValidator(input string) error { switch input { case "Always", "IfNotPresent", "Never": return nil default: return fmt.Errorf("invalid image pull policy: %s. valid values: Always, IfNotPresent, Never", input) } } func scalingResourceTypeValidator(input string) error { switch input { case "cpu", "memory": return nil default: return fmt.Errorf("invalid scaling resource type: %s. valid values: cpu, memory", input) } } func kubernetesProbeTypeValidator(input string) error { switch input { case "httpGet", "tcpSocket": return nil default: return fmt.Errorf("invalid probe type: %s. valid values: httpGet, tcpSocket", input) } } func keyValueMapValidator(input string) error { if err := json.Unmarshal([]byte(input), &map[string]string{}); err != nil { return fmt.Errorf("failed to unmarshal variable as map[string]string: %s", err) } return nil } func defaultValidator(input string) error { return nil }