code: func DecodeRemoteConfigSource(data []byte) (RemoteConfigSource, error) {
  	// decode the remote config source
  	_, codecs, err := scheme.NewSchemeAndCodecs()
  	if err != nil {
  		return nil, err
  	}
  
  	obj, err := runtime.Decode(codecs.UniversalDecoder(), data)
  	if err != nil {
  		return nil, fmt.Errorf("failed to decode, error: %v", err)
  	}
  
  	// for now we assume we are trying to load an kubeletconfigv1beta1.SerializedNodeConfigSource,
  	// this may need to be extended if e.g. a new version of the api is born
  	cs, ok := obj.(*kubeletconfiginternal.SerializedNodeConfigSource)
  	if !ok {
  		return nil, fmt.Errorf("failed to cast decoded remote config source to *k8s.io/kubernetes/pkg/kubelet/apis/kubeletconfig.SerializedNodeConfigSource")
  	}
  
  	// we use the v1.NodeConfigSource type on internal and external, so no need to convert to external here
  	source, _, err := NewRemoteConfigSource(&cs.Source)
  	if err != nil {
  		return nil, err
  	}
  
  	return source, nil
  }
docs: // DecodeRemoteConfigSource is a helper for using the apimachinery to decode serialized RemoteConfigSources;
  // e.g. the metadata stored by checkpoint/store/fsstore.go