2023-09-06 16:03:51 +02:00
|
|
|
package variables
|
|
|
|
|
|
|
|
import (
|
|
|
|
"strings"
|
2023-09-11 17:24:10 +02:00
|
|
|
|
|
|
|
"github.com/kyverno/kyverno/cmd/cli/kubectl-kyverno/log"
|
2023-09-06 16:03:51 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
func parse(vars ...string) map[string]string {
|
|
|
|
result := map[string]string{}
|
|
|
|
for _, variable := range vars {
|
|
|
|
variable = strings.TrimSpace(variable)
|
|
|
|
kvs := strings.Split(variable, "=")
|
|
|
|
if len(kvs) != 2 {
|
2023-09-11 17:24:10 +02:00
|
|
|
log.Log.Info("ignored variable", "variable", variable)
|
2023-09-06 16:03:51 +02:00
|
|
|
continue
|
|
|
|
}
|
|
|
|
key := strings.TrimSpace(kvs[0])
|
|
|
|
value := strings.TrimSpace(kvs[1])
|
|
|
|
if len(value) == 0 || len(key) == 0 {
|
2023-09-11 17:24:10 +02:00
|
|
|
log.Log.Info("ignored variable", "variable", variable)
|
2023-09-06 16:03:51 +02:00
|
|
|
continue
|
|
|
|
}
|
|
|
|
if strings.Contains(key, "request.object.") {
|
2023-09-11 17:24:10 +02:00
|
|
|
log.Log.Info("ignored variable (contains `request.object.`)", "variable", variable)
|
2023-09-06 16:03:51 +02:00
|
|
|
continue
|
|
|
|
}
|
|
|
|
if result[key] != "" {
|
2023-09-11 17:24:10 +02:00
|
|
|
log.Log.Info("ignored variable (duplicated)", "variable", variable)
|
2023-09-06 16:03:51 +02:00
|
|
|
continue
|
|
|
|
}
|
|
|
|
result[key] = value
|
|
|
|
}
|
|
|
|
if len(result) == 0 {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
return result
|
|
|
|
}
|