code: func RunChecks(checks []Checker, ww io.Writer, ignorePreflightErrors sets.String) error {
  	var errsBuffer bytes.Buffer
  
  	for _, c := range checks {
  		name := c.Name()
  		warnings, errs := c.Check()
  
  		if setHasItemOrAll(ignorePreflightErrors, name) {
  			// Decrease severity of errors to warnings for this check
  			warnings = append(warnings, errs...)
  			errs = []error{}
  		}
  
  		for _, w := range warnings {
  			io.WriteString(ww, fmt.Sprintf("\t[WARNING %s]: %v\n", name, w))
  		}
  		for _, i := range errs {
  			errsBuffer.WriteString(fmt.Sprintf("\t[ERROR %s]: %v\n", name, i.Error()))
  		}
  	}
  	if errsBuffer.Len() > 0 {
  		return &Error{Msg: errsBuffer.String()}
  	}
  	return nil
  }
docs: // RunChecks runs each check, displays it's warnings/errors, and once all
  // are processed will exit if any errors occurred.