code: func MetaNamespaceKeyFunc(obj interface{}) (string, error) {
  	if key, ok := obj.(ExplicitKey); ok {
  		return string(key), nil
  	}
  	meta, err := meta.Accessor(obj)
  	if err != nil {
  		return "", fmt.Errorf("object has no meta: %v", err)
  	}
  	if len(meta.GetNamespace()) > 0 {
  		return meta.GetNamespace() + "/" + meta.GetName(), nil
  	}
  	return meta.GetName(), nil
  }
docs: // MetaNamespaceKeyFunc is a convenient default KeyFunc which knows how to make
  // keys for API objects which implement meta.Interface.
  // The key uses the format <namespace>/<name> unless <namespace> is empty, then
  // it's just <name>.
  //
  // TODO: replace key-as-string with a key-as-struct so that this
  // packing/unpacking won't be necessary.