Skip to content

Commit 6bec290

Browse files
committed
do not allow overriding git_url and cache_repo
1 parent 1ff5764 commit 6bec290

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

internal/provider/cached_image_resource.go

+17-6
Original file line numberDiff line numberDiff line change
@@ -389,18 +389,29 @@ func (data *CachedImageResourceModel) setComputedEnv(ctx context.Context) diag.D
389389
}
390390

391391
// 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.
392394
var diag, ds diag.Diagnostics
393395
if !data.ExtraEnv.IsNull() {
394396
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":
398400
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),
401403
)
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)
402414
}
403-
env[key] = tfValueToString(elem)
404415
}
405416
}
406417

internal/provider/cached_image_resource_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ RUN date > /date.txt`,
4848
//nolint: paralleltest
4949
deps := setup(ctx, t, tc.files)
5050
deps.ExtraEnv["FOO"] = testEnvValue
51+
deps.ExtraEnv["ENVBUILDER_GIT_URL"] = "https://not.the.real.git/url"
52+
deps.ExtraEnv["ENVBUILDER_CACHE_REPO"] = "not-the-real-cache-repo"
5153

5254
resource.Test(t, resource.TestCase{
5355
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories,

0 commit comments

Comments
 (0)