code: func ValidateKubeSchedulerConfiguration(cc *config.KubeSchedulerConfiguration) field.ErrorList {
  	allErrs := field.ErrorList{}
  	allErrs = append(allErrs, componentbasevalidation.ValidateClientConnectionConfiguration(&cc.ClientConnection, field.NewPath("clientConnection"))...)
  	allErrs = append(allErrs, ValidateKubeSchedulerLeaderElectionConfiguration(&cc.LeaderElection, field.NewPath("leaderElection"))...)
  	if len(cc.SchedulerName) == 0 {
  		allErrs = append(allErrs, field.Required(field.NewPath("schedulerName"), ""))
  	}
  	for _, msg := range validation.IsValidSocketAddr(cc.HealthzBindAddress) {
  		allErrs = append(allErrs, field.Invalid(field.NewPath("healthzBindAddress"), cc.HealthzBindAddress, msg))
  	}
  	for _, msg := range validation.IsValidSocketAddr(cc.MetricsBindAddress) {
  		allErrs = append(allErrs, field.Invalid(field.NewPath("metricsBindAddress"), cc.MetricsBindAddress, msg))
  	}
  	if cc.HardPodAffinitySymmetricWeight < 0 || cc.HardPodAffinitySymmetricWeight > 100 {
  		allErrs = append(allErrs, field.Invalid(field.NewPath("hardPodAffinitySymmetricWeight"), cc.HardPodAffinitySymmetricWeight, "not in valid range 0-100"))
  	}
  	if cc.BindTimeoutSeconds == nil {
  		allErrs = append(allErrs, field.Required(field.NewPath("bindTimeoutSeconds"), ""))
  	}
  	if cc.PercentageOfNodesToScore < 0 || cc.PercentageOfNodesToScore > 100 {
  		allErrs = append(allErrs, field.Invalid(field.NewPath("percentageOfNodesToScore"),
  			cc.PercentageOfNodesToScore, "not in valid range 0-100"))
  	}
  	return allErrs
  }
docs: // ValidateKubeSchedulerConfiguration ensures validation of the KubeSchedulerConfiguration struct