mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
Add generic hostname (localterraform.com) support to cloud backend
Aliases the backend hostname config as "localterraform.com" and duplicates any existing auth credentials during cloud backend configuration.
This commit is contained in:
parent
9fd76e56cd
commit
2fe3a23094
2
go.mod
2
go.mod
@ -46,7 +46,7 @@ require (
|
||||
github.com/hashicorp/hcl/v2 v2.15.0
|
||||
github.com/hashicorp/terraform-config-inspect v0.0.0-20210209133302-4fd17a0faac2
|
||||
github.com/hashicorp/terraform-registry-address v0.0.0-20220623143253-7d51757b572c
|
||||
github.com/hashicorp/terraform-svchost v0.0.1
|
||||
github.com/hashicorp/terraform-svchost v0.1.0
|
||||
github.com/jmespath/go-jmespath v0.4.0
|
||||
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0
|
||||
github.com/lib/pq v1.10.3
|
||||
|
4
go.sum
4
go.sum
@ -410,8 +410,8 @@ github.com/hashicorp/terraform-config-inspect v0.0.0-20210209133302-4fd17a0faac2
|
||||
github.com/hashicorp/terraform-registry-address v0.0.0-20220623143253-7d51757b572c h1:D8aRO6+mTqHfLsK/BC3j5OAoogv1WLRWzY1AaTo3rBg=
|
||||
github.com/hashicorp/terraform-registry-address v0.0.0-20220623143253-7d51757b572c/go.mod h1:Wn3Na71knbXc1G8Lh+yu/dQWWJeFQEpDeJMtWMtlmNI=
|
||||
github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg=
|
||||
github.com/hashicorp/terraform-svchost v0.0.1 h1:Zj6fR5wnpOHnJUmLyWozjMeDaVuE+cstMPj41/eKmSQ=
|
||||
github.com/hashicorp/terraform-svchost v0.0.1/go.mod h1:ut8JaH0vumgdCfJaihdcZULqkAwHdQNwNH7taIDdsZM=
|
||||
github.com/hashicorp/terraform-svchost v0.1.0 h1:0+RcgZdZYNd81Vw7tu62g9JiLLvbOigp7QtyNh6CjXk=
|
||||
github.com/hashicorp/terraform-svchost v0.1.0/go.mod h1:ut8JaH0vumgdCfJaihdcZULqkAwHdQNwNH7taIDdsZM=
|
||||
github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=
|
||||
github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d h1:kJCB4vdITiW1eC1vq2e6IsrXKrZit1bv/TDYFGMp4BQ=
|
||||
github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM=
|
||||
|
@ -39,6 +39,7 @@ const (
|
||||
tfeServiceID = "tfe.v2"
|
||||
headerSourceKey = "X-Terraform-Integration"
|
||||
headerSourceValue = "cloud"
|
||||
genericHostname = "localterraform.com"
|
||||
)
|
||||
|
||||
// Cloud is an implementation of EnhancedBackend in service of the Terraform Cloud/Enterprise
|
||||
@ -193,6 +194,23 @@ func (b *Cloud) PrepareConfig(obj cty.Value) (cty.Value, tfdiags.Diagnostics) {
|
||||
return obj, diags
|
||||
}
|
||||
|
||||
// configureGenericHost aliases the cloud backend hostname configuration
|
||||
// as a generic "localterraform.com" hostname. This was originally added as a
|
||||
// Terraform Enterprise feature and is useful for re-using whatever the
|
||||
// Cloud/Enterprise backend host is in nested module sources in order
|
||||
// to prevent code churn when re-using config between multiple
|
||||
// Terraform Enterprise environments.
|
||||
func (b *Cloud) configureGenericHostname() {
|
||||
// This won't be an error for the given constant value
|
||||
genericHost, _ := svchost.ForComparison(genericHostname)
|
||||
|
||||
// This won't be an error because, by this time, the hostname has been parsed and
|
||||
// service discovery requests made against it.
|
||||
targetHost, _ := svchost.ForComparison(b.hostname)
|
||||
|
||||
b.services.Alias(genericHost, targetHost)
|
||||
}
|
||||
|
||||
// Configure implements backend.Enhanced.
|
||||
func (b *Cloud) Configure(obj cty.Value) tfdiags.Diagnostics {
|
||||
var diags tfdiags.Diagnostics
|
||||
@ -258,6 +276,8 @@ func (b *Cloud) Configure(obj cty.Value) tfdiags.Diagnostics {
|
||||
return diags
|
||||
}
|
||||
|
||||
b.configureGenericHostname()
|
||||
|
||||
if b.client == nil {
|
||||
cfg := &tfe.Config{
|
||||
Address: service.String(),
|
||||
|
Loading…
Reference in New Issue
Block a user