Skip to content

Commit 8be88f7

Browse files
feat: add lock file support for S3 backend
1 parent 70fcc63 commit 8be88f7

File tree

9 files changed

+561
-77
lines changed

9 files changed

+561
-77
lines changed

go.mod

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -121,29 +121,29 @@ require (
121121
github.com/armon/go-radix v1.0.0 // indirect
122122
github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef // indirect
123123
github.com/aws/aws-sdk-go v1.44.122 // indirect
124-
github.com/aws/aws-sdk-go-v2 v1.25.3 // indirect
125-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 // indirect
124+
github.com/aws/aws-sdk-go-v2 v1.30.4 // indirect
125+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 // indirect
126126
github.com/aws/aws-sdk-go-v2/config v1.27.7 // indirect
127127
github.com/aws/aws-sdk-go-v2/credentials v1.17.7 // indirect
128128
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.3 // indirect
129129
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.9 // indirect
130-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.3 // indirect
131-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.3 // indirect
130+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 // indirect
131+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 // indirect
132132
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
133-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.3 // indirect
133+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 // indirect
134134
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.30.4 // indirect
135135
github.com/aws/aws-sdk-go-v2/service/iam v1.28.5 // indirect
136-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 // indirect
137-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.5 // indirect
136+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect
137+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 // indirect
138138
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.4 // indirect
139-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.5 // indirect
140-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.3 // indirect
141-
github.com/aws/aws-sdk-go-v2/service/s3 v1.51.4 // indirect
139+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 // indirect
140+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 // indirect
141+
github.com/aws/aws-sdk-go-v2/service/s3 v1.61.0 // indirect
142142
github.com/aws/aws-sdk-go-v2/service/sqs v1.29.5 // indirect
143143
github.com/aws/aws-sdk-go-v2/service/sso v1.20.2 // indirect
144144
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.2 // indirect
145145
github.com/aws/aws-sdk-go-v2/service/sts v1.28.4 // indirect
146-
github.com/aws/smithy-go v1.20.1 // indirect
146+
github.com/aws/smithy-go v1.20.4 // indirect
147147
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
148148
github.com/bmatcuk/doublestar/v4 v4.6.0 // indirect
149149
github.com/bradleyfalzon/ghinstallation/v2 v2.1.0 // indirect

go.sum

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -300,10 +300,10 @@ github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:W
300300
github.com/aws/aws-sdk-go v1.44.122 h1:p6mw01WBaNpbdP2xrisz5tIkcNwzj/HysobNoaAHjgo=
301301
github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
302302
github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4=
303-
github.com/aws/aws-sdk-go-v2 v1.25.3 h1:xYiLpZTQs1mzvz5PaI6uR0Wh57ippuEthxS4iK5v0n0=
304-
github.com/aws/aws-sdk-go-v2 v1.25.3/go.mod h1:35hUlJVYd+M++iLI3ALmVwMOyRYMmRqUXpTtRGW+K9I=
305-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 h1:gTK2uhtAPtFcdRRJilZPx8uJLL2J85xK11nKtWL0wfU=
306-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1/go.mod h1:sxpLb+nZk7tIfCWChfd+h4QwHNUR57d8hA1cleTkjJo=
303+
github.com/aws/aws-sdk-go-v2 v1.30.4 h1:frhcagrVNrzmT95RJImMHgabt99vkXGslubDaDagTk8=
304+
github.com/aws/aws-sdk-go-v2 v1.30.4/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0=
305+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 h1:70PVAiL15/aBMh5LThwgXdSQorVr91L127ttckI9QQU=
306+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4/go.mod h1:/MQxMqci8tlqDH+pjmoLu1i0tbWCUP1hhyMRuFxpQCw=
307307
github.com/aws/aws-sdk-go-v2/config v1.8.3/go.mod h1:4AEiLtAb8kLs7vgw2ZV3p2VZ1+hBavOc84hqxVNpCyw=
308308
github.com/aws/aws-sdk-go-v2/config v1.27.7 h1:JSfb5nOQF01iOgxFI5OIKWwDiEXWTyTgg1Mm1mHi0A4=
309309
github.com/aws/aws-sdk-go-v2/config v1.27.7/go.mod h1:PH0/cNpoMO+B04qET699o5W92Ca79fVtbUnvMIZro4I=
@@ -315,33 +315,33 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.3 h1:p+y7FvkK2dxS+FEwRIDHDe/
315315
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.3/go.mod h1:/fYB+FZbDlwlAiynK9KDXlzZl3ANI9JkD0Uhz5FjNT4=
316316
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.9 h1:vXY/Hq1XdxHBIYgBUmug/AbMyIe1AKulPYS2/VE1X70=
317317
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.9/go.mod h1:GyJJTZoHVuENM4TeJEl5Ffs4W9m19u+4wKJcDi/GZ4A=
318-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.3 h1:ifbIbHZyGl1alsAhPIYsHOg5MuApgqOvVeI8wIugXfs=
319-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.3/go.mod h1:oQZXg3c6SNeY6OZrDY+xHcF4VGIEoNotX2B4PrDeoJI=
320-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.3 h1:Qvodo9gHG9F3E8SfYOspPeBt0bjSbsevK8WhRAUHcoY=
321-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.3/go.mod h1:vCKrdLXtybdf/uQd/YfVR2r5pcbNuEYKzMQpcxmeSJw=
318+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 h1:TNyt/+X43KJ9IJJMjKfa3bNTiZbUP7DeCxfbTROESwY=
319+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16/go.mod h1:2DwJF39FlNAUiX5pAc0UNeiz16lK2t7IaFcm0LFHEgc=
320+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 h1:jYfy8UPmd+6kJW5YhY0L1/KftReOGxI/4NtVSTh9O/I=
321+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16/go.mod h1:7ZfEPZxkW42Afq4uQB8H2E2e6ebh6mXTueEpYzjCzcs=
322322
github.com/aws/aws-sdk-go-v2/internal/ini v1.2.4/go.mod h1:ZcBrrI3zBKlhGFNYWvju0I3TR93I7YIgAfy82Fh4lcQ=
323323
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
324324
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
325-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.3 h1:mDnFOE2sVkyphMWtTH+stv0eW3k0OTx94K63xpxHty4=
326-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.3/go.mod h1:V8MuRVcCRt5h1S+Fwu8KbC7l/gBGo3yBAyUbJM2IJOk=
325+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 h1:mimdLQkIX1zr8GIPY1ZtALdBQGxcASiBd2MOp8m/dMc=
326+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16/go.mod h1:YHk6owoSwrIsok+cAH9PENCOGoH5PU2EllX4vLtSrsY=
327327
github.com/aws/aws-sdk-go-v2/service/appconfig v1.4.2/go.mod h1:FZ3HkCe+b10uFZZkFdvf98LHW21k49W8o8J366lqVKY=
328328
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.30.4 h1:VdtD2r5ZzeX/PvaCUSUsiwu6K0SAhNzgJ50Wu/0KwhM=
329329
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.30.4/go.mod h1:HOZYCpIko/NOS693uPQINLs7drzMjRtIN1+XRL8IkfA=
330330
github.com/aws/aws-sdk-go-v2/service/iam v1.28.5 h1:Ts2eDDuMLrrmd0ARlg5zSoBQUvhdthgiNnPdiykTJs0=
331331
github.com/aws/aws-sdk-go-v2/service/iam v1.28.5/go.mod h1:kKI0gdVsf+Ev9knh/3lBJbchtX5LLNH25lAzx3KDj3Q=
332-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 h1:EyBZibRTVAs6ECHZOw5/wlylS9OcTzwyjeQMudmREjE=
333-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1/go.mod h1:JKpmtYhhPs7D97NL/ltqz7yCkERFW5dOlHyVl66ZYF8=
334-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.5 h1:mbWNpfRUTT6bnacmvOTKXZjR/HycibdWzNpfbrbLDIs=
335-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.5/go.mod h1:FCOPWGjsshkkICJIn9hq9xr6dLKtyaWpuUojiN3W1/8=
332+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 h1:KypMCbLPPHEmf9DgMGw51jMj77VfGPAN2Kv4cfhlfgI=
333+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4/go.mod h1:Vz1JQXliGcQktFTN/LN6uGppAIRoLBR2bMvIMP0gOjc=
334+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 h1:GckUnpm4EJOAio1c8o25a+b3lVfwVzC9gnSBqiiNmZM=
335+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18/go.mod h1:Br6+bxfG33Dk3ynmkhsW2Z/t9D4+lRqdLDNCKi85w0U=
336336
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.4 h1:ikwIKlf0+HbyOhTLo/BRT5z5c8FsjPLPgd75zcRonek=
337337
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.4/go.mod h1:Egp7w6xf3EzlnfkfnMbDtHtts8H21B9QrCvc+3NNT24=
338338
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.2/go.mod h1:72HRZDLMtmVQiLG2tLfQcaWLCssELvGl+Zf2WVxMmR8=
339-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.5 h1:K/NXvIftOlX+oGgWGIa3jDyYLDNsdVhsjHmsBH2GLAQ=
340-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.5/go.mod h1:cl9HGLV66EnCmMNzq4sYOti+/xo8w34CsgzVtm2GgsY=
341-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.3 h1:4t+QEX7BsXz98W8W1lNvMAG+NX8qHz2CjLBxQKku40g=
342-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.3/go.mod h1:oFcjjUq5Hm09N9rpxTdeMeLeQcxS7mIkBkL8qUKng+A=
343-
github.com/aws/aws-sdk-go-v2/service/s3 v1.51.4 h1:lW5xUzOPGAMY7HPuNF4FdyBwRc3UJ/e8KsapbesVeNU=
344-
github.com/aws/aws-sdk-go-v2/service/s3 v1.51.4/go.mod h1:MGTaf3x/+z7ZGugCGvepnx2DS6+caCYYqKhzVoLNYPk=
339+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 h1:tJ5RnkHCiSH0jyd6gROjlJtNwov0eGYNz8s8nFcR0jQ=
340+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18/go.mod h1:++NHzT+nAF7ZPrHPsA+ENvsXkOO8wEu+C6RXltAG4/c=
341+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 h1:jg16PhLPUiHIj8zYIW6bqzeQSuHVEiWnGA0Brz5Xv2I=
342+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16/go.mod h1:Uyk1zE1VVdsHSU7096h/rwnXDzOzYQVl+FNPhPw7ShY=
343+
github.com/aws/aws-sdk-go-v2/service/s3 v1.61.0 h1:Wb544Wh+xfSXqJ/j3R4aX9wrKUoZsJNmilBYZb3mKQ4=
344+
github.com/aws/aws-sdk-go-v2/service/s3 v1.61.0/go.mod h1:BSPI0EfnYUuNHPS0uqIo5VrRwzie+Fp+YhQOUs16sKI=
345345
github.com/aws/aws-sdk-go-v2/service/sqs v1.29.5 h1:cJb4I498c1mrOVrRqYTcnLD65AFqUuseHfzHdNZHL9U=
346346
github.com/aws/aws-sdk-go-v2/service/sqs v1.29.5/go.mod h1:mCUv04gd/7g+/HNzDB4X6dzJuygji0ckvB3Lg/TdG5Y=
347347
github.com/aws/aws-sdk-go-v2/service/sso v1.4.2/go.mod h1:NBvT9R1MEF+Ud6ApJKM0G+IkPchKS7p7c2YPKwHmBOk=
@@ -353,8 +353,8 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.7.2/go.mod h1:8EzeIqfWt2wWT4rJVu3f21
353353
github.com/aws/aws-sdk-go-v2/service/sts v1.28.4 h1:Ppup1nVNAOWbBOrcoOxaxPeEnSFB2RnnQdguhXpmeQk=
354354
github.com/aws/aws-sdk-go-v2/service/sts v1.28.4/go.mod h1:+K1rNPVyGxkRuv9NNiaZ4YhBFuyw2MMA9SlIJ1Zlpz8=
355355
github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E=
356-
github.com/aws/smithy-go v1.20.1 h1:4SZlSlMr36UEqC7XOyRVb27XMeZubNcBNN+9IgEPIQw=
357-
github.com/aws/smithy-go v1.20.1/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
356+
github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4=
357+
github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
358358
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f h1:ZNv7On9kyUzm7fvRZumSyy/IUiSC7AzL0I1jKKtwooA=
359359
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
360360
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=

internal/backend/remote-state/s3/backend.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ type Backend struct {
4545
acl string
4646
kmsKeyID string
4747
ddbTable string
48+
useLockFile bool
4849
workspaceKeyPrefix string
4950
skipS3Checksum bool
5051
}
@@ -151,6 +152,11 @@ func (b *Backend) ConfigSchema() *configschema.Block {
151152
Optional: true,
152153
Description: "DynamoDB table for state locking and consistency",
153154
},
155+
"use_lockfile": {
156+
Type: cty.Bool,
157+
Optional: true,
158+
Description: "(Experimental) Whether to use a lockfile for locking the state file.",
159+
},
154160
"profile": {
155161
Type: cty.String,
156162
Optional: true,
@@ -930,6 +936,7 @@ func (b *Backend) Configure(obj cty.Value) tfdiags.Diagnostics {
930936
b.serverSideEncryption = boolAttr(obj, "encrypt")
931937
b.kmsKeyID = stringAttr(obj, "kms_key_id")
932938
b.ddbTable = stringAttr(obj, "dynamodb_table")
939+
b.useLockFile = boolAttr(obj, "use_lockfile")
933940
b.skipS3Checksum = boolAttr(obj, "skip_s3_checksum")
934941

935942
if _, ok := stringAttrOk(obj, "kms_key_id"); ok {

internal/backend/remote-state/s3/backend_state.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ const (
2727
// defaultWorkspaceKeyPrefix is the default prefix for workspace storage.
2828
// The colon is used to reduce the chance of name conflicts with existing objects.
2929
defaultWorkspaceKeyPrefix = "env:"
30+
// lockFileSuffix defines the suffix for Terraform state lock files.
31+
lockFileSuffix = ".tflock"
3032
)
3133

3234
func (b *Backend) Workspaces() ([]string, error) {
@@ -163,6 +165,8 @@ func (b *Backend) remoteClient(name string) (*RemoteClient, error) {
163165
kmsKeyID: b.kmsKeyID,
164166
ddbTable: b.ddbTable,
165167
skipS3Checksum: b.skipS3Checksum,
168+
lockFilePath: b.getLockFilePath(name),
169+
useLockFile: b.useLockFile,
166170
}
167171

168172
return client, nil
@@ -276,3 +280,9 @@ func newBucketRegionError(requestRegion, bucketRegion string) bucketRegionError
276280
func (err bucketRegionError) Error() string {
277281
return fmt.Sprintf("requested bucket from %q, actual location %q", err.requestRegion, err.bucketRegion)
278282
}
283+
284+
// getLockFilePath returns the path to the lock file for the given Terraform state.
285+
// For `default.tfstate`, the lock file is stored at `default.tfstate.tflock`.
286+
func (b *Backend) getLockFilePath(name string) string {
287+
return b.path(name) + lockFileSuffix
288+
}

0 commit comments

Comments
 (0)