code: func NewRemoteConfigSource(source *apiv1.NodeConfigSource) (RemoteConfigSource, string, error) {
  	// NOTE: Even though the API server validates the config, we check whether all *known* fields are
  	// nil here, so that if a new API server allows a new config source type, old clients can send
  	// an error message rather than crashing due to a nil pointer dereference.
  
  	// Exactly one reference subfield of the config source must be non-nil.
  	// Currently ConfigMap is the only reference subfield.
  	if source.ConfigMap == nil {
  		return nil, status.AllNilSubfieldsError, fmt.Errorf("%s, NodeConfigSource was: %#v", status.AllNilSubfieldsError, source)
  	}
  	return &remoteConfigMap{source}, "", nil
  }
docs: // NewRemoteConfigSource constructs a RemoteConfigSource from a v1/NodeConfigSource object
  // You should only call this with a non-nil config source.
  // Note that the API server validates Node.Spec.ConfigSource.