github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/boom/application/applications/reconciling/config/config.go (about) 1 package config 2 3 import ( 4 "github.com/caos/orbos/internal/operator/boom/api/latest/reconciling" 5 "github.com/caos/orbos/internal/operator/boom/application/applications/reconciling/config/auth" 6 "github.com/caos/orbos/internal/operator/boom/application/applications/reconciling/config/credential" 7 "github.com/caos/orbos/internal/operator/boom/application/applications/reconciling/config/plugin" 8 "github.com/caos/orbos/internal/operator/boom/application/applications/reconciling/config/repository" 9 "github.com/caos/orbos/mntr" 10 "gopkg.in/yaml.v3" 11 ) 12 13 type Config struct { 14 Repositories string `yaml:"repositories,omitempty"` 15 Credentials string `yaml:"repository.credentials,omitempty"` 16 Connectors string `yaml:"connectors,omitempty"` 17 OIDC string `yaml:"oidc,omitempty"` 18 ConfigManagementPlugins string `yaml:"configManagementPlugins,omitempty"` 19 } 20 21 func GetFromSpec(monitor mntr.Monitor, spec *reconciling.Reconciling) *Config { 22 conf := &Config{} 23 24 dexconfig := auth.GetDexConfigFromSpec(monitor, spec) 25 data, err := yaml.Marshal(dexconfig) 26 if err == nil { 27 conf.Connectors = string(data) 28 } 29 repos := repository.GetFromSpec(monitor, spec) 30 data2, err := yaml.Marshal(repos) 31 if err == nil { 32 conf.Repositories = string(data2) 33 } 34 35 creds := credential.GetFromSpec(monitor, spec) 36 data3, err := yaml.Marshal(creds) 37 if err == nil { 38 conf.Credentials = string(data3) 39 } 40 41 oidc, err := auth.GetOIDC(spec.Auth) 42 if err == nil && oidc != "" { 43 conf.OIDC = oidc 44 } 45 46 if spec.CustomImage != nil { 47 plugins := make([]*plugin.Plugin, 0) 48 init := &plugin.Command{ 49 Command: []string{"gopass", "sync"}, 50 } 51 generate := &plugin.Command{ 52 Command: []string{"sh", "-c"}, 53 Args: []string{"kustomize build && ./secrets.yaml.sh "}, 54 } 55 plugins = append(plugins, plugin.New("getSecrets", init, generate)) 56 57 pluginsYaml, err := yaml.Marshal(plugins) 58 if err == nil { 59 conf.ConfigManagementPlugins = string(pluginsYaml) 60 } 61 } 62 63 return conf 64 }