Skip to content

Commit db525f9

Browse files
committed
Added Terraform backend implementation for OCI Object Storage
1 parent ea767aa commit db525f9

File tree

13 files changed

+1486
-2
lines changed

13 files changed

+1486
-2
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
## 1.13.0 (Unreleased)
22

3+
ENHANCEMENTS:
4+
- Added Terraform backend implementation for OCI Object Storage
35

46
EXPERIMENTS:
57

go.mod

+10-1
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,16 @@ require (
5353
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db
5454
github.com/mitchellh/go-homedir v1.1.0
5555
github.com/mitchellh/go-linereader v0.0.0-20190213213312-1b945b3263eb
56+
github.com/mitchellh/go-testing-interface v1.14.1
5657
github.com/mitchellh/go-wordwrap v1.0.1
5758
github.com/mitchellh/gox v1.0.1
5859
github.com/nishanths/exhaustive v0.12.0
60+
github.com/oracle/oci-go-sdk/v65 v65.88.1
5961
github.com/packer-community/winrmcp v0.0.0-20221126162354-6e900dd2c68f
6062
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c
6163
github.com/posener/complete v1.2.3
6264
github.com/spf13/afero v1.9.5
65+
github.com/stretchr/testify v1.10.0
6366
github.com/xanzy/ssh-agent v0.3.3
6467
github.com/xlab/treeprint v0.0.0-20161029104018-1d6e34225557
6568
github.com/zclconf/go-cty v1.16.2
@@ -162,6 +165,7 @@ require (
162165
github.com/go-openapi/jsonreference v0.19.5 // indirect
163166
github.com/go-openapi/strfmt v0.23.0 // indirect
164167
github.com/go-openapi/swag v0.19.14 // indirect
168+
github.com/gofrs/flock v0.8.1 // indirect
165169
github.com/gofrs/uuid v4.0.0+incompatible // indirect
166170
github.com/gogo/protobuf v1.3.2 // indirect
167171
github.com/golang-jwt/jwt/v4 v4.5.2 // indirect
@@ -216,7 +220,6 @@ require (
216220
github.com/mergestat/timediff v0.0.3 // indirect
217221
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
218222
github.com/mitchellh/copystructure v1.2.0 // indirect
219-
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
220223
github.com/mitchellh/iochan v1.0.0 // indirect
221224
github.com/mitchellh/mapstructure v1.5.0 // indirect
222225
github.com/mitchellh/reflectwalk v1.0.2 // indirect
@@ -227,12 +230,15 @@ require (
227230
github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d // indirect
228231
github.com/oklog/run v1.0.0 // indirect
229232
github.com/oklog/ulid v1.3.1 // indirect
233+
github.com/pmezard/go-difflib v1.0.0 // indirect
230234
github.com/rivo/uniseg v0.4.7 // indirect
231235
github.com/samber/lo v1.47.0 // indirect
232236
github.com/shopspring/decimal v1.3.1 // indirect
237+
github.com/sony/gobreaker v0.5.0 // indirect
233238
github.com/spf13/cast v1.5.0 // indirect
234239
github.com/spf13/cobra v1.8.1 // indirect
235240
github.com/spf13/pflag v1.0.5 // indirect
241+
github.com/stretchr/objx v0.5.2 // indirect
236242
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.588 // indirect
237243
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sts v1.0.588 // indirect
238244
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tag v1.0.233 // indirect
@@ -242,6 +248,7 @@ require (
242248
github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect
243249
github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect
244250
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
251+
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
245252
go.mongodb.org/mongo-driver v1.16.1 // indirect
246253
go.opencensus.io v0.24.0 // indirect
247254
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
@@ -316,6 +323,8 @@ replace github.com/hashicorp/terraform/internal/backend/remote-state/pg => ./int
316323

317324
replace github.com/hashicorp/terraform/internal/backend/remote-state/s3 => ./internal/backend/remote-state/s3
318325

326+
replace github.com/hashicorp/terraform/internal/backend/remote-state/oci => ./internal/backend/remote-state/oci
327+
319328
replace github.com/hashicorp/terraform/internal/legacy => ./internal/legacy
320329

321330
tool (

go.sum

+14-1
Original file line numberDiff line numberDiff line change
@@ -917,6 +917,8 @@ github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68=
917917
github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
918918
github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
919919
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
920+
github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw=
921+
github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
920922
github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
921923
github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw=
922924
github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
@@ -1348,6 +1350,8 @@ github.com/onsi/ginkgo/v2 v2.1.6 h1:Fx2POJZfKRQcM1pH49qSZiYeu319wji004qX+GDovrU=
13481350
github.com/onsi/ginkgo/v2 v2.1.6/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk=
13491351
github.com/onsi/gomega v1.20.1 h1:PA/3qinGoukvymdIDV8pii6tiZgC8kbmJO6Z5+b002Q=
13501352
github.com/onsi/gomega v1.20.1/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo=
1353+
github.com/oracle/oci-go-sdk/v65 v65.88.1 h1:Y9Y5jlQX8oVDe3UN+O4IcQnLN/aQmi4jR1/2RsXMN3M=
1354+
github.com/oracle/oci-go-sdk/v65 v65.88.1/go.mod h1:u6XRPsw9tPziBh76K7GrrRXPa8P8W3BQeqJ6ZZt9VLA=
13511355
github.com/packer-community/winrmcp v0.0.0-20221126162354-6e900dd2c68f h1:sWm3fnjG6kxvDuGiQf46Io5xCTj3QJfNJIeICJ4g1kw=
13521356
github.com/packer-community/winrmcp v0.0.0-20221126162354-6e900dd2c68f/go.mod h1:f6Izs6JvFTdnRbziASagjZ2vmf55NSIkC/weStxCHqk=
13531357
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
@@ -1421,6 +1425,8 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx
14211425
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
14221426
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
14231427
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
1428+
github.com/sony/gobreaker v0.5.0 h1:dRCvqm0P490vZPmy7ppEk2qCnCieBooFJ+YoXGYB+yg=
1429+
github.com/sony/gobreaker v0.5.0/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=
14241430
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
14251431
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
14261432
github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4=
@@ -1439,8 +1445,9 @@ github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag
14391445
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
14401446
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
14411447
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
1442-
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
14431448
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
1449+
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
1450+
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
14441451
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
14451452
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
14461453
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
@@ -1453,6 +1460,7 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO
14531460
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
14541461
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
14551462
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
1463+
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
14561464
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
14571465
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
14581466
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.563/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
@@ -1480,6 +1488,8 @@ github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM
14801488
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
14811489
github.com/xlab/treeprint v0.0.0-20161029104018-1d6e34225557 h1:Jpn2j6wHkC9wJv5iMfJhKqrZJx3TahFx+7sbZ7zQdxs=
14821490
github.com/xlab/treeprint v0.0.0-20161029104018-1d6e34225557/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
1491+
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 h1:ilQV1hzziu+LLM3zUTJ0trRztfwgjqKnBWNtSRkbmwM=
1492+
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfSfmXjznFBSZNN13rSJjlIOI1fUNAtF7rmI=
14831493
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
14841494
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
14851495
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -1567,6 +1577,7 @@ golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4
15671577
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
15681578
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
15691579
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
1580+
golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M=
15701581
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
15711582
golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
15721583
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
@@ -1864,6 +1875,7 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
18641875
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
18651876
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
18661877
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
1878+
golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
18671879
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
18681880
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
18691881
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
@@ -1881,6 +1893,7 @@ golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
18811893
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
18821894
golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
18831895
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
1896+
golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk=
18841897
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
18851898
golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek=
18861899
golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y=

internal/backend/init/init.go

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
backendHTTP "github.com/hashicorp/terraform/internal/backend/remote-state/http"
2424
backendInmem "github.com/hashicorp/terraform/internal/backend/remote-state/inmem"
2525
backendKubernetes "github.com/hashicorp/terraform/internal/backend/remote-state/kubernetes"
26+
backendOCI "github.com/hashicorp/terraform/internal/backend/remote-state/oci"
2627
backendOSS "github.com/hashicorp/terraform/internal/backend/remote-state/oss"
2728
backendPg "github.com/hashicorp/terraform/internal/backend/remote-state/pg"
2829
backendS3 "github.com/hashicorp/terraform/internal/backend/remote-state/s3"
@@ -67,6 +68,7 @@ func Init(services *disco.Disco) {
6768
"oss": func() backend.Backend { return backendOSS.New() },
6869
"pg": func() backend.Backend { return backendPg.New() },
6970
"s3": func() backend.Backend { return backendS3.New() },
71+
"oci": func() backend.Backend { return backendOCI.New() },
7072

7173
// HCP Terraform 'backend'
7274
// This is an implementation detail only, used for the cloud package

0 commit comments

Comments
 (0)