args.go 695 B

12345678910111213141516171819202122232425
  1. package util
  2. import (
  3. "strings"
  4. v1 "k8s.io/api/core/v1"
  5. )
  6. // ParseContainerArgs extracts "--key=value" style arguments from the given containers into a
  7. // flat map. Bare flags without a "=" (e.g. "--verbose") are recorded with an empty value. Args
  8. // are merged across all containers; on key collision, the last container/arg seen wins.
  9. func ParseContainerArgs(containers []v1.Container) map[string]string {
  10. args := make(map[string]string)
  11. for _, container := range containers {
  12. for _, arg := range container.Args {
  13. trimmed := strings.TrimLeft(arg, "-")
  14. if trimmed == "" {
  15. continue
  16. }
  17. key, value, _ := strings.Cut(trimmed, "=")
  18. args[key] = value
  19. }
  20. }
  21. return args
  22. }