* Added Terraform backend implementation for OCI Object Storage
* Update website/docs/language/backend/oci.mdx
updated suggestion
Co-authored-by: Sarah French <15078782+SarahFrench@users.noreply.github.com>
* Update website/docs/language/backend/oci.mdx
Added suggestion
Co-authored-by: Sarah French <15078782+SarahFrench@users.noreply.github.com>
* Update website/docs/language/backend/oci.mdx
added suggestions
Co-authored-by: Sarah French <15078782+SarahFrench@users.noreply.github.com>
* Addressed feedback for variable prefix, documentation, prepareConfig
* removed additional logs
* Removed md5hash seperate file
* Fix doc
* go.mod
* Added mandatory Unit test for oci backend
* run go mod tidy and added test for TestBackendStateLocksInWS and TestBackendStateForceUnlockInWS
* moved changelog to v1.12.0
* Addressed feedback_April_16 removed global log, Added tests and codeowner
* mod file
* Update CODEOWNERS
Co-authored-by: Radek Simko <radeksimko@users.noreply.github.com>
* Addressed feedbach april 17th
* mock env var and unset region for InstancePrincipal
* syncdeps fix
* goimports fix
* Update internal/backend/remote-state/oci/backend_test.go
Co-authored-by: Radek Simko <radeksimko@users.noreply.github.com>
---------
Co-authored-by: Sarah French <15078782+SarahFrench@users.noreply.github.com>
Co-authored-by: Radek Simko <radeksimko@users.noreply.github.com>
* Fix copy-pasta
* Update some comments clarifying backend-related interfaces and "enhanced" versus "operations"
* Fix more comments that refer to types and interfaces that have moved into the backendrun package
We previously had all of the types and helpers for all kinds of backends
together in package backend. That kept things relatively simple, but it
also meant that the majority of backends that only deal with remote state
storage ended up still indirectly depending on the entire Terraform modules
runtime, configuration loader, etc, etc, which brings into scope a bunch
of external dependencies that the remote state backends don't really need.
Since backends that support operations are a rare exception, we'll move the
types and helpers for those into a separate package "backendrun", and
then the main package backend can have a much more modest set of types and,
more importantly, a modest set of dependencies on other packages in this
codebase.
This is part of an ongoing effort to reduce the exposure of Terraform Core
and CLI code to the remote backends and vice-versa, so that in the long
run we can more often treat them as separate for dependency maintenance
purposes.
There are no good options for inserting diagnostics into the backend
lookup, or creating a backend which reports it's removal because none of
the init or GetSchema functions return any errors.
Keep a registry of the removed backend so that we can at least notify
users that a backend was removed vs an invalid name.
This allows us to remove the manual replace directives
github.com/dgrijalva/jwt-go and google.golang.org/grpc, so that we can
remove the CVE warnings and update the grpc packages.
While the etcdv3 backend is also marked as deprecated, the changes here
are done in a manner to keep that backend working for the time being.
The cloud package intends to implement a new integration for
Terraform Cloud/Enterprise. The purpose of this integration is to better
support TFC users; it will shed some overly generic UX and architecture,
behavior changes that are otherwise backwards incompatible in the remote
backend, and technical debt - all of which are vestiges from before
Terraform Cloud existed.
This initial commit is largely a porting of the existing 'remote'
backend, which will serve as an underlying implementation detail and not
be a typical user-level backend. This is because to re-implement the
literal backend interface is orthogonal to the purpose of this
integration, and can always be migrated away from later.
As this backend is considered an implementation detail, it will not be
registered as a declarable backend. Within these changes it is, for easy
of initial development and a clean diff.
This is part of a general effort to move all of Terraform's non-library
package surface under internal in order to reinforce that these are for
internal use within Terraform only.
If you were previously importing packages under this prefix into an
external codebase, you could pin to an earlier release tag as an interim
solution until you've make a plan to achieve the same functionality some
other way.
This is part of a general effort to move all of Terraform's non-library
package surface under internal in order to reinforce that these are for
internal use within Terraform only.
If you were previously importing packages under this prefix into an
external codebase, you could pin to an earlier release tag as an interim
solution until you've make a plan to achieve the same functionality some
other way.