args.go 666 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. Args without a "=" (bare flags) are skipped. Args are merged across all containers;
  8. // 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. key, value, ok := strings.Cut(trimmed, "=")
  15. if !ok || key == "" {
  16. continue
  17. }
  18. args[key] = value
  19. }
  20. }
  21. return args
  22. }