diff --git a/pkg/kube/client.go b/pkg/kube/client.go index 0d2ca20e67c5024904ba40acd4d2c4d754972cb7..79f7eb4bf5015c6859cf5e88ae4ccedb0ccaaf44 100644 --- a/pkg/kube/client.go +++ b/pkg/kube/client.go @@ -218,6 +218,8 @@ func (c *Client) Get(namespace string, reader io.Reader) (string, error) { // Since we don't know what order the objects come in, let's group them by the types and then sort them, so // that when we print them, they come out looking good (headers apply to subgroups, etc.). objs := make(map[string](map[string]runtime.Object)) + mux := &sync.Mutex{} + infos, err := c.BuildUnstructured(namespace, reader) if err != nil { return "", err @@ -227,6 +229,8 @@ func (c *Client) Get(namespace string, reader io.Reader) (string, error) { missing := []string{} err = perform(infos, func(info *resource.Info) error { + mux.Lock() + defer mux.Unlock() c.Log("Doing get for %s: %q", info.Mapping.GroupVersionKind.Kind, info.Name) if err := info.Get(); err != nil { c.Log("WARNING: Failed Get for resource %q: %s", info.Name, err)