@@ -93,8 +93,38 @@ func Load(workingDir string, debug bool) (*Config, error) {
93 return cfg, nil
93 return cfg, nil
96+func PushPopCrushEnv() func() {
98+ for _, ev := range os.Environ() {
99+ if strings.HasPrefix(ev, "CRUSH_") {
100+ pair := strings.SplitN(ev, "=", 2)
104+ found = append(found, strings.TrimPrefix(pair[0], "CRUSH_"))
107+ backups := make(map[string]string)
108+ for _, ev := range found {
109+ backups[ev] = os.Getenv(ev)
112+ for _, ev := range found {
113+ os.Setenv(ev, os.Getenv("CRUSH_"+ev))
117+ for k, v := range backups {
96func (c *Config) configureProviders(env env.Env, resolver VariableResolver, knownProviders []catwalk.Provider) error {
124func (c *Config) configureProviders(env env.Env, resolver VariableResolver, knownProviders []catwalk.Provider) error {
97 knownProviderNames := make(map[string]bool)
125 knownProviderNames := make(map[string]bool)
126+ restore := PushPopCrushEnv()
98 for _, p := range knownProviders {
128 for _, p := range knownProviders {
99 knownProviderNames[string(p.ID)] = true
129 knownProviderNames[string(p.ID)] = true
100 config, configExists := c.Providers.Get(string(p.ID))
130 config, configExists := c.Providers.Get(string(p.ID))
@@ -495,7 +525,6 @@ func hasAWSCredentials(env env.Env) bool {
495 env.Get("AWS_CONTAINER_CREDENTIALS_FULL_URI") != "" {
525 env.Get("AWS_CONTAINER_CREDENTIALS_FULL_URI") != "" {
496 return true
526 return true
499 return false
528 return false