code: func generateSecret(opts *Options) (*v1.Secret, error) {
  
  	labels := generateLabels(map[string]string{"name": "tiller"})
  	secret := &v1.Secret{
  		Type: v1.SecretTypeOpaque,
  		Data: make(map[string][]byte),
  		ObjectMeta: metav1.ObjectMeta{
  			Name:      secretName,
  			Labels:    labels,
  			Namespace: opts.Namespace,
  		},
  	}
  	var err error
  	if secret.Data["tls.key"], err = read(opts.TLSKeyFile); err != nil {
  		return nil, err
  	}
  	if secret.Data["tls.crt"], err = read(opts.TLSCertFile); err != nil {
  		return nil, err
  	}
  	if opts.VerifyTLS {
  		if secret.Data["ca.crt"], err = read(opts.TLSCaCertFile); err != nil {
  			return nil, err
  		}
  	}
  	return secret, nil
  }
docs: // generateSecret builds the secret object that hold Tiller secrets.