diff --git a/command/registry.go b/command/registry.go index 960049197..60ba0e1f0 100644 --- a/command/registry.go +++ b/command/registry.go @@ -63,6 +63,10 @@ func setupRegistryForPackerConfig(pc *hcl2template.PackerConfig) hcl.Diagnostics hasHCP = true } + if env.IsHCPExplicitelyEnabled() { + hasHCP = true + } + if !hasHCP { return nil } @@ -270,7 +274,7 @@ func setupRegistryForPackerCore(cfg *CoreWrapper) hcl.Diagnostics { return nil } - if !env.HasPackerRegistryBucket() { + if !env.HasPackerRegistryBucket() && !env.IsHCPExplicitelyEnabled() { return nil } diff --git a/internal/registry/env/env.go b/internal/registry/env/env.go index beb9397ef..5661e5bd9 100644 --- a/internal/registry/env/env.go +++ b/internal/registry/env/env.go @@ -44,3 +44,9 @@ func IsHCPDisabled() bool { hcp, ok := os.LookupEnv(HCPPackerRegistry) return ok && strings.ToLower(hcp) == "off" || hcp == "0" } + +// IsHCPExplicitelyEnabled returns true if the client enabled HCP_PACKER_REGISTRY explicitely, i.e. it is defined and not 0 or off +func IsHCPExplicitelyEnabled() bool { + hcp, ok := os.LookupEnv(HCPPackerRegistry) + return ok && strings.ToLower(hcp) != "off" && hcp != "0" +}