code: func ServerConfig(opts Options) (cfg *tls.Config, err error) {
  	var cert *tls.Certificate
  	var pool *x509.CertPool
  
  	if cert, err = CertFromFilePair(opts.CertFile, opts.KeyFile); err != nil {
  		if os.IsNotExist(err) {
  			return nil, fmt.Errorf("could not load x509 key pair (cert: %q, key: %q): %v", opts.CertFile, opts.KeyFile, err)
  		}
  		return nil, fmt.Errorf("could not read x509 key pair (cert: %q, key: %q): %v", opts.CertFile, opts.KeyFile, err)
  	}
  	if opts.ClientAuth >= tls.VerifyClientCertIfGiven && opts.CaCertFile != "" {
  		if pool, err = CertPoolFromFile(opts.CaCertFile); err != nil {
  			return nil, err
  		}
  	}
  
  	cfg = &tls.Config{MinVersion: tls.VersionTLS12, ClientAuth: opts.ClientAuth, Certificates: []tls.Certificate{*cert}, ClientCAs: pool}
  	return cfg, nil
  }
docs: // ServerConfig returns a TLS configuration for use by the Tiller server.