Merge pull request #27319 from hashicorp/alisdair/backend-remote-no-version-check-for-operations
backend/remote: No version check for operations
This commit is contained in:
commit
c0a5a5be1b
|
@ -694,19 +694,22 @@ func (b *Remote) Operation(ctx context.Context, op *backend.Operation) (*backend
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Terraform remote version conflicts are not a concern for operations. We
|
||||||
|
// are in one of three states:
|
||||||
|
//
|
||||||
|
// - Running remotely, in which case the local version is irrelevant;
|
||||||
|
// - Workspace configured for local operations, in which case the remote
|
||||||
|
// version is meaningless;
|
||||||
|
// - Forcing local operations with a remote backend, which should only
|
||||||
|
// happen in the Terraform Cloud worker, in which case the Terraform
|
||||||
|
// versions by definition match.
|
||||||
|
b.IgnoreVersionConflict()
|
||||||
|
|
||||||
// Check if we need to use the local backend to run the operation.
|
// Check if we need to use the local backend to run the operation.
|
||||||
if b.forceLocal || !w.Operations {
|
if b.forceLocal || !w.Operations {
|
||||||
if !w.Operations {
|
|
||||||
// Workspace is explicitly configured for local operations, so its
|
|
||||||
// configured Terraform version is meaningless
|
|
||||||
b.IgnoreVersionConflict()
|
|
||||||
}
|
|
||||||
return b.local.Operation(ctx, op)
|
return b.local.Operation(ctx, op)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Running remotely so we don't care about version conflicts
|
|
||||||
b.IgnoreVersionConflict()
|
|
||||||
|
|
||||||
// Set the remote workspace name.
|
// Set the remote workspace name.
|
||||||
op.Workspace = w.Name
|
op.Workspace = w.Name
|
||||||
|
|
||||||
|
|
|
@ -1298,12 +1298,11 @@ func TestRemote_applyVersionCheck(t *testing.T) {
|
||||||
remoteVersion: "0.13.5",
|
remoteVersion: "0.13.5",
|
||||||
hasOperations: false,
|
hasOperations: false,
|
||||||
},
|
},
|
||||||
"error if force local, has remote operations, different versions": {
|
"force local with remote operations and different versions is acceptable": {
|
||||||
localVersion: "0.14.0",
|
localVersion: "0.14.0",
|
||||||
remoteVersion: "0.13.5",
|
remoteVersion: "0.14.0-acme-provider-bundle",
|
||||||
forceLocal: true,
|
forceLocal: true,
|
||||||
hasOperations: true,
|
hasOperations: true,
|
||||||
wantErr: `Remote workspace Terraform version "0.13.5" does not match local Terraform version "0.14.0"`,
|
|
||||||
},
|
},
|
||||||
"no error if versions are identical": {
|
"no error if versions are identical": {
|
||||||
localVersion: "0.14.0",
|
localVersion: "0.14.0",
|
||||||
|
|
Loading…
Reference in New Issue