mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-30 10:47:14 -06:00
5127f1ef8b
This adds supports for "unmanaged" providers, or providers with process lifecycles not controlled by Terraform. These providers are assumed to be started before Terraform is launched, and are assumed to shut themselves down after Terraform has finished running. To do this, we must update the go-plugin dependency to v1.3.0, which added support for the "test mode" plugin serving that powers all this. As a side-effect of not needing to manage the process lifecycle anymore, Terraform also no longer needs to worry about the provider's binary, as it won't be used for anything anymore. Because of this, we can disable the init behavior that concerns itself with downloading that provider's binary, checking its version, and otherwise managing the binary. This is all managed on a per-provider basis, so managed providers that Terraform downloads, starts, and stops can be used in the same commands as unmanaged providers. The TF_REATTACH_PROVIDERS environment variable is added, and is a JSON encoding of the provider's address to the information we need to connect to it. This change enables two benefits: first, delve and other debuggers can now be attached to provider server processes, and Terraform can connect. This allows for attaching debuggers to provider processes, which before was difficult to impossible. Second, it allows the SDK test framework to host the provider in the same process as the test driver, while running a production Terraform binary against the provider. This allows for Go's built-in race detector and test coverage tooling to work as expected in provider tests. Unmanaged providers are expected to work in the exact same way as managed providers, with one caveat: Terraform kills provider processes and restarts them once per graph walk, meaning multiple times during most Terraform CLI commands. As unmanaged providers can't be killed by Terraform, and have no visibility into graph walks, unmanaged providers are likely to have differences in how their global mutable state behaves when compared to managed providers. Namely, unmanaged providers are likely to retain global state when managed providers would have reset it. Developers relying on global state should be aware of this.
148 lines
7.6 KiB
Modula-2
148 lines
7.6 KiB
Modula-2
module github.com/hashicorp/terraform
|
|
|
|
require (
|
|
cloud.google.com/go v0.45.1
|
|
github.com/Azure/azure-sdk-for-go v40.3.0+incompatible
|
|
github.com/Azure/go-autorest/autorest v0.10.0
|
|
github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af // indirect
|
|
github.com/agext/levenshtein v1.2.2
|
|
github.com/agl/ed25519 v0.0.0-20150830182803-278e1ec8e8a6 // indirect
|
|
github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190329064014-6e358769c32a
|
|
github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190103054945-8205d1f41e70
|
|
github.com/aliyun/aliyun-tablestore-go-sdk v4.1.2+incompatible
|
|
github.com/apparentlymart/go-cidr v1.0.1
|
|
github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0
|
|
github.com/apparentlymart/go-userdirs v0.0.0-20190512014041-4a23807e62b9
|
|
github.com/apparentlymart/go-versions v0.0.2-0.20180815153302-64b99f7cb171
|
|
github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2
|
|
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da // indirect
|
|
github.com/armon/go-radix v1.0.0 // indirect
|
|
github.com/aws/aws-sdk-go v1.30.12
|
|
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f // indirect
|
|
github.com/blang/semver v3.5.1+incompatible
|
|
github.com/bmatcuk/doublestar v1.1.5
|
|
github.com/boltdb/bolt v1.3.1 // indirect
|
|
github.com/chzyer/logex v1.1.10 // indirect
|
|
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e
|
|
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 // indirect
|
|
github.com/coreos/bbolt v1.3.0 // indirect
|
|
github.com/coreos/etcd v3.3.10+incompatible
|
|
github.com/coreos/go-semver v0.2.0 // indirect
|
|
github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d // indirect
|
|
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect
|
|
github.com/davecgh/go-spew v1.1.1
|
|
github.com/dylanmei/iso8601 v0.1.0 // indirect
|
|
github.com/dylanmei/winrmtest v0.0.0-20190225150635-99b7fe2fddf1
|
|
github.com/go-test/deep v1.0.3
|
|
github.com/gogo/protobuf v1.2.0 // indirect
|
|
github.com/golang/groupcache v0.0.0-20180513044358-24b0969c4cb7 // indirect
|
|
github.com/golang/mock v1.3.1
|
|
github.com/golang/protobuf v1.3.4
|
|
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db // indirect
|
|
github.com/google/go-cmp v0.3.1
|
|
github.com/google/uuid v1.1.1
|
|
github.com/gophercloud/gophercloud v0.10.1-0.20200424014253-c3bfe50899e5
|
|
github.com/gophercloud/utils v0.0.0-20200423144003-7c72efc7435d
|
|
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 // indirect
|
|
github.com/gorilla/websocket v1.4.0 // indirect
|
|
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 // indirect
|
|
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
|
|
github.com/grpc-ecosystem/grpc-gateway v1.8.5 // indirect
|
|
github.com/hashicorp/aws-sdk-go-base v0.4.0
|
|
github.com/hashicorp/consul v0.0.0-20171026175957-610f3c86a089
|
|
github.com/hashicorp/errwrap v1.0.0
|
|
github.com/hashicorp/go-azure-helpers v0.10.0
|
|
github.com/hashicorp/go-checkpoint v0.5.0
|
|
github.com/hashicorp/go-cleanhttp v0.5.1
|
|
github.com/hashicorp/go-getter v1.4.2-0.20200106182914-9813cbd4eb02
|
|
github.com/hashicorp/go-hclog v0.0.0-20181001195459-61d530d6c27f
|
|
github.com/hashicorp/go-immutable-radix v0.0.0-20180129170900-7f3cd4390caa // indirect
|
|
github.com/hashicorp/go-msgpack v0.5.4 // indirect
|
|
github.com/hashicorp/go-multierror v1.0.0
|
|
github.com/hashicorp/go-plugin v1.3.0
|
|
github.com/hashicorp/go-retryablehttp v0.5.2
|
|
github.com/hashicorp/go-rootcerts v1.0.0
|
|
github.com/hashicorp/go-sockaddr v0.0.0-20180320115054-6d291a969b86 // indirect
|
|
github.com/hashicorp/go-tfe v0.8.1
|
|
github.com/hashicorp/go-uuid v1.0.1
|
|
github.com/hashicorp/go-version v1.2.0
|
|
github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f
|
|
github.com/hashicorp/hcl/v2 v2.5.1
|
|
github.com/hashicorp/hil v0.0.0-20190212112733-ab17b08d6590
|
|
github.com/hashicorp/memberlist v0.1.0 // indirect
|
|
github.com/hashicorp/serf v0.0.0-20160124182025-e4ec8cc423bb // indirect
|
|
github.com/hashicorp/terraform-config-inspect v0.0.0-20191212124732-c6ae6269b9d7
|
|
github.com/hashicorp/terraform-svchost v0.0.0-20191011084731-65d371908596
|
|
github.com/hashicorp/vault v0.10.4
|
|
github.com/jmespath/go-jmespath v0.3.0
|
|
github.com/jonboulle/clockwork v0.1.0 // indirect
|
|
github.com/joyent/triton-go v0.0.0-20180313100802-d8f9c0314926
|
|
github.com/json-iterator/go v1.1.5 // indirect
|
|
github.com/jtolds/gls v4.2.1+incompatible // indirect
|
|
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0
|
|
github.com/keybase/go-crypto v0.0.0-20161004153544-93f5b35093ba // indirect
|
|
github.com/lib/pq v1.0.0
|
|
github.com/likexian/gokit v0.20.15
|
|
github.com/lusis/go-artifactory v0.0.0-20160115162124-7e4ce345df82
|
|
github.com/masterzen/winrm v0.0.0-20190223112901-5e5c9a7fe54b
|
|
github.com/mattn/go-colorable v0.1.1
|
|
github.com/mattn/go-shellwords v1.0.4
|
|
github.com/miekg/dns v1.0.8 // indirect
|
|
github.com/mitchellh/cli v1.0.0
|
|
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db
|
|
github.com/mitchellh/copystructure v1.0.0
|
|
github.com/mitchellh/go-homedir v1.1.0
|
|
github.com/mitchellh/go-linereader v0.0.0-20190213213312-1b945b3263eb
|
|
github.com/mitchellh/go-wordwrap v1.0.0
|
|
github.com/mitchellh/hashstructure v1.0.0
|
|
github.com/mitchellh/mapstructure v1.1.2
|
|
github.com/mitchellh/panicwrap v1.0.0
|
|
github.com/mitchellh/prefixedio v0.0.0-20190213213902-5733675afd51
|
|
github.com/mitchellh/reflectwalk v1.0.0
|
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
|
github.com/modern-go/reflect2 v1.0.1 // indirect
|
|
github.com/packer-community/winrmcp v0.0.0-20180102160824-81144009af58
|
|
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c // indirect
|
|
github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4
|
|
github.com/pkg/errors v0.9.1
|
|
github.com/posener/complete v1.2.1
|
|
github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829 // indirect
|
|
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 // indirect
|
|
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d // indirect
|
|
github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a // indirect
|
|
github.com/soheilhy/cmux v0.1.4 // indirect
|
|
github.com/spf13/afero v1.2.1
|
|
github.com/tencentcloud/tencentcloud-sdk-go v3.0.82+incompatible
|
|
github.com/tencentyun/cos-go-sdk-v5 v0.0.0-20190808065407-f07404cefc8c
|
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20171017195756-830351dc03c6 // indirect
|
|
github.com/tombuildsstuff/giovanni v0.10.1
|
|
github.com/ugorji/go v0.0.0-20180813092308-00b869d2f4a5 // indirect
|
|
github.com/vmihailenco/msgpack v4.0.1+incompatible // indirect
|
|
github.com/xanzy/ssh-agent v0.2.1
|
|
github.com/xiang90/probing v0.0.0-20160813154853-07dd2e8dfe18 // indirect
|
|
github.com/xlab/treeprint v0.0.0-20161029104018-1d6e34225557
|
|
github.com/zclconf/go-cty v1.4.1
|
|
github.com/zclconf/go-cty-yaml v1.0.1
|
|
go.uber.org/atomic v1.3.2 // indirect
|
|
go.uber.org/multierr v1.1.0 // indirect
|
|
go.uber.org/zap v1.9.1 // indirect
|
|
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37
|
|
golang.org/x/mod v0.2.0
|
|
golang.org/x/net v0.0.0-20200202094626-16171245cfb2
|
|
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
|
|
golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9
|
|
golang.org/x/tools v0.0.0-20191203134012-c197fd4bf371
|
|
google.golang.org/api v0.9.0
|
|
google.golang.org/grpc v1.27.1
|
|
gopkg.in/ini.v1 v1.42.0 // indirect
|
|
gopkg.in/yaml.v2 v2.2.7
|
|
)
|
|
|
|
go 1.14
|
|
|
|
replace github.com/Azure/go-autorest => github.com/tombuildsstuff/go-autorest v14.0.1-0.20200416184303-d4e299a3c04a+incompatible
|
|
|
|
replace github.com/Azure/go-autorest/autorest => github.com/tombuildsstuff/go-autorest/autorest v0.10.1-0.20200416184303-d4e299a3c04a
|
|
|
|
replace github.com/Azure/go-autorest/autorest/azure/auth => github.com/tombuildsstuff/go-autorest/autorest/azure/auth v0.4.3-0.20200416184303-d4e299a3c04a
|