code: func (f *SecretFactory) MakeSecret(args *types.SecretArgs, options *types.GeneratorOptions) (*corev1.Secret, error) {
  	var all []kv.Pair
  	var err error
  	s := f.makeFreshSecret(args)
  
  	pairs, err := keyValuesFromEnvFile(f.ldr, args.EnvSource)
  	if err != nil {
  		return nil, errors.Wrap(err, fmt.Sprintf(
  			"env source file: %s",
  			args.EnvSource))
  	}
  	all = append(all, pairs...)
  
  	pairs, err = keyValuesFromLiteralSources(args.LiteralSources)
  	if err != nil {
  		return nil, errors.Wrap(err, fmt.Sprintf(
  			"literal sources %v", args.LiteralSources))
  	}
  	all = append(all, pairs...)
  
  	pairs, err = keyValuesFromFileSources(f.ldr, args.FileSources)
  	if err != nil {
  		return nil, errors.Wrap(err, fmt.Sprintf(
  			"file sources: %v", args.FileSources))
  	}
  	all = append(all, pairs...)
  
  	for _, p := range all {
  		err = addKvToSecret(s, p.Key, p.Value)
  		if err != nil {
  			return nil, err
  		}
  	}
  	if options != nil {
  		s.SetLabels(options.Labels)
  		s.SetAnnotations(options.Annotations)
  	}
  	return s, nil
  }
docs: // MakeSecret returns a new secret.