func (h *Handler) CrdObjectToKVData(obj interface{}) (data []kvdbreflector.KVData, err error) {
	nodeConfig, ok := obj.(*v1.NodeConfig)
	if !ok {
		return nil, errors.New("failed to cast into NodeConfig struct")
	}
	data = []kvdbreflector.KVData{
		{
			ProtoMsg:  h.nodeConfigToProto(nodeConfig),
			KeySuffix: nodeConfig.GetName(),
		},
	}
	return
}
CrdObjectToKVData converts the K8s representation of NodeConfig into the
corresponding proto message representation.
package nodeconfig
import (
	"errors"
	"github.com/contiv/vpp/plugins/crd/handler/kvdbreflector"
	"github.com/contiv/vpp/plugins/crd/handler/nodeconfig/model"
	"github.com/contiv/vpp/plugins/crd/pkg/apis/nodeconfig/v1"
	crdClientSet "github.com/contiv/vpp/plugins/crd/pkg/client/clientset/versioned"
)
type Handler struct {
	CrdClient *crdClientSet.Clientset
}
func (h *Handler) CrdName() string {
	return "NodeConfig"
}
func (h *Handler) CrdKeyPrefix() (prefix string, underKsrPrefix bool) {
	return model.Keyword + "/", true
}
func (h *Handler) IsCrdKeySuffix(keySuffix string) bool {
	return true
}