@@ -389,18 +389,29 @@ func (data *CachedImageResourceModel) setComputedEnv(ctx context.Context) diag.D
389
389
}
390
390
391
391
// Do ExtraEnv last so that it can override any other values.
392
+ // With one exception: ENVBUILDER_CACHE_REPO and ENVBUILDER_GIT_URL are required and should not be overridden.
393
+ // Other values set by the provider may be overridden, but will generate a warning.
392
394
var diag , ds diag.Diagnostics
393
395
if ! data .ExtraEnv .IsNull () {
394
396
for key , elem := range data .ExtraEnv .Elements () {
395
- if _ , ok := env [ key ]; ok {
396
- // This is a warning because it's possible that the user wants to override
397
- // a value set by the provider.
397
+ switch key {
398
+ // These are required and should not be overridden.
399
+ case "ENVBUILDER_CACHE_REPO" , "ENVBUILDER_GIT_URL" :
398
400
diag .AddAttributeWarning (path .Root ("extra_env" ),
399
- "Overriding provider environment variable" ,
400
- fmt .Sprintf ("The key %q in extra_env overrides an environment variable set by the provider ." , key ),
401
+ "Cannot override required environment variable" ,
402
+ fmt .Sprintf ("The key %q in extra_env cannot be overridden ." , key ),
401
403
)
404
+ default :
405
+ if _ , ok := env [key ]; ok {
406
+ // This is a warning because it's possible that the user wants to override
407
+ // a value set by the provider.
408
+ diag .AddAttributeWarning (path .Root ("extra_env" ),
409
+ "Overriding provider environment variable" ,
410
+ fmt .Sprintf ("The key %q in extra_env overrides an environment variable set by the provider." , key ),
411
+ )
412
+ }
413
+ env [key ] = tfValueToString (elem )
402
414
}
403
- env [key ] = tfValueToString (elem )
404
415
}
405
416
}
406
417
0 commit comments