github.com/argoproj/argo-cd/v2@v2.10.9/hack/gen-resources/util/gen_options_parser.go (about) 1 package util 2 3 import ( 4 "gopkg.in/yaml.v2" 5 "os" 6 ) 7 8 type SourceOpts struct { 9 Strategy string `yaml:"strategy"` 10 } 11 12 type DestinationOpts struct { 13 Strategy string `yaml:"strategy"` 14 } 15 16 type ApplicationOpts struct { 17 Samples int `yaml:"samples"` 18 SourceOpts SourceOpts `yaml:"source"` 19 DestinationOpts DestinationOpts `yaml:"destination"` 20 } 21 22 type RepositoryOpts struct { 23 Samples int `yaml:"samples"` 24 } 25 26 type ProjectOpts struct { 27 Samples int `yaml:"samples"` 28 } 29 30 type ClusterOpts struct { 31 Samples int `yaml:"samples"` 32 NamespacePrefix string `yaml:"namespacePrefix"` 33 ValuesFilePath string `yaml:"valuesFilePath"` 34 DestinationNamespace string `yaml:"destinationNamespace"` 35 ClusterNamePrefix string `yaml:"clusterNamePrefix"` 36 Concurrency int `yaml:"parallel"` 37 } 38 39 type GenerateOpts struct { 40 ApplicationOpts ApplicationOpts `yaml:"application"` 41 ClusterOpts ClusterOpts `yaml:"cluster"` 42 RepositoryOpts RepositoryOpts `yaml:"repository"` 43 ProjectOpts ProjectOpts `yaml:"project"` 44 GithubToken string 45 Namespace string `yaml:"namespace"` 46 } 47 48 func setDefaults(opts *GenerateOpts) { 49 if opts.ClusterOpts.Concurrency == 0 { 50 opts.ClusterOpts.Concurrency = 2 51 } 52 } 53 54 func Parse(opts *GenerateOpts, file string) error { 55 fp, err := os.ReadFile(file) 56 if err != nil { 57 return err 58 } 59 60 if e := yaml.Unmarshal(fp, &opts); e != nil { 61 return e 62 } 63 64 setDefaults(opts) 65 66 return nil 67 }