Commit Graph

23556 Commits

Author SHA1 Message Date
James Bardin 929231a2e9
Merge pull request #20437 from hashicorp/jbardin/ssh-keepalive
add ssh keepalive messages to communicator
2019-02-22 20:16:45 -05:00
Martin Atkins dd43926761 configs/configupgrade: Fix up uses of the .count pseudo-attribute
Terraform 0.11 and prior had an odd special case where a resource
attribute access for "count" would be resolved as the count for the
whole resource, rather than as an attribute of an individual instance as
for all other attributes.

Because Terraform 0.12 makes test_instance.foo appear as a list when count
is set (so it can be used in other expressions), it's no longer possible
to have an attribute in that position: lists don't have attributes.
Fortunately we don't really need that special case anymore since it
doesn't do anything we can't now do with the length(...) function.

This upgrade rule, then, detects references like test_instance.foo.count
and rewrites to length(test_instance.foo). As a special case, if
test_instance.foo doesn't have "count" set then it just rewrites as the
constant 1, which mimics what would've happened in that case in Terraform
0.11.
2019-02-22 16:18:53 -08:00
Radek Simko b3cb94a929
Merge pull request #20443 from hashicorp/vendor-go-mod-deps
vendor: Bump levenshtein & osext to go-mod-aware versions
2019-02-22 22:35:10 +00:00
Radek Simko 48c5841550
vendor: github.com/kardianos/osext@2bc1f35cddc0 2019-02-22 22:16:33 +00:00
Radek Simko 501d106976
vendor: github.com/agext/levenshtein@v1.2.2 2019-02-22 22:15:02 +00:00
Paul Tyng e4756ddd52
Merge pull request #20440 from cgriggs01/cgriggs01-ciscoasa
[Website] Cisco ASA provider links
2019-02-22 15:55:29 -05:00
cgriggs01 266fb573cf add Cisco ASA provider links 2019-02-22 12:41:20 -08:00
Martin Atkins 966eb39427 configs/configupgrade: Default arguments in "connection" blocks
Prior to Terraform v0.12 it was possible for a provider to secretly set
some default arguments for the "connection" block, which most commonly
included a hard-coded type of "ssh" and a value from "host".

In the interests of "explicit is better than implicit", Terraform 0.12 no
longer has this feature and instead requires connection settings to be
written explicitly in terms of the resource's exported attributes. For
compatibility though, the upgrade tool will insert expressions that are
as close as possible to the logic the provider formerly implemented, or
in a few rare cases a TF-UPGRADE-TODO comment to fix it up manually.

Some of the existing resource type implementations have incredibly
complicated implementations of selecting a single host IP address to use
and don't expose the result of that as an attribute, so for now we handle
those via a complicated Terraform language expression achieving the same
result. Ideally these providers would introduce a new attribute that
exports the same address formerly exported as the hostname before their
initial v0.12-compatible release, in which case we can simplify these to
just reference the attribute in question. That would be preferable also
because it would allow use of that exported attribute in other contexts,
such as in a null_resource provisioner somewhere else or in an output
to allow a caller to deal with the SSH part itself.
2019-02-22 12:32:56 -08:00
Martin Atkins ac6e0e42dc configs/configupgrade: Upgrade the bodies of "connection" blocks
This uses the fixed "superset" schema from the main terraform package to
apply our standard expression mapping, with the exception of "type" where
interpolation sequences are not supported due to the type being evaluated
early to retrieve the schema for decoding the rest.
2019-02-22 12:32:56 -08:00
Martin Atkins e2ef51800a configs/configupgrade: Upgrade the bodies of "provisioner" blocks
Aside from the two special meta-arguments "connection" and "provisioner"
this is just our standard mapping from schema to conversion rules, using
the provisioner's configuration schema.
2019-02-22 12:32:56 -08:00
Martin Atkins cdca8fbfe8 configs/configupgrade: Correct ignore_changes error message
Due to a copy-paste error, this was using the message from the providers
map in a "module" block.

This new message is not particularly helpful, but we should only see it
for a configuration that wouldn't have been valid in 0.11 either, and so
it's unlikely to be displayed.
2019-02-22 12:32:56 -08:00
Martin Atkins 0095a944cd configs/configupgrade: Include provisioner schemas in analysis
We'll need these to migrate any "provisioner" blocks we find in the input
configuration.
2019-02-22 12:32:56 -08:00
James Bardin 55cf4e95a5
Merge pull request #19979 from usererror/consul-backend-lock-acl
Add details about using lock=true when consul ACL is enabled
2019-02-22 15:04:25 -05:00
James Bardin b8be1d0114
Merge pull request #20377 from henninge/patch-1
Only path-style S3 URLs are supported.
2019-02-22 14:46:48 -05:00
James Bardin 010747f7da
Merge pull request #18896 from sherodtaylor/feature/updated-ssh-cert-auth-v0.12-dev
Feature/updated ssh cert auth retargeted to master
2019-02-22 14:44:30 -05:00
Sherod Taylor c456d9608b updated ssh authentication and testing for ssh 2019-02-22 14:30:50 -05:00
James Bardin b5384100a6 add ssh keepalive messages to communicator
Long running remote-exec commands with no output may be cutoff during
execution. Enable ssh keepalives for all ssh connections.
2019-02-22 14:03:15 -05:00
Nick Fagerlund 01eb224469 website: Large, on-brand link preview image for marketing pages (/intro/*)
Although /intro/getting-started includes docs content, those pages currently
redirect to the Learn platform, and so shouldn't be affected by the large unfurl
image.
2019-02-22 10:09:09 -08:00
Radek Simko ef24b18b25
Merge pull request #20434 from hashicorp/vendor-mattn-bumps
vendor: Bump mattn dependencies to go-mod-aware versions
2019-02-22 17:22:11 +00:00
Radek Simko fce24f5ad3
vendor: github.com/mattn/go-shellwords@v1.0.4 2019-02-22 16:54:29 +00:00
Radek Simko e93f233567
vendor: github.com/mattn/go-colorable@v0.1.1 2019-02-22 16:51:56 +00:00
Kristin Laemmert 4dd8192ec7
Merge pull request #20352 from hashicorp/mildwonkey/show-docs
mildwonkey/show-docs
2019-02-22 08:19:01 -08:00
Radek Simko d13c786504
Merge pull request #20430 from hashicorp/vendor-bump-ssh-agent
vendor: github.com/xanzy/ssh-agent@v0.2.1
2019-02-22 16:16:17 +00:00
James Bardin 9561ec4617
Merge pull request #20431 from hashicorp/jbardin/state-uuid
remove single rand source to prevent races
2019-02-22 10:40:51 -05:00
Radek Simko e94155456f
vendor: github.com/xanzy/ssh-agent@v0.2.1 2019-02-22 14:22:13 +00:00
James Bardin 43b2c9a1d0 remove single rand source to prevent races
This shouldn't really be an issue in normal usage, but some of the
backend tests will trigger a race here.
2019-02-21 20:45:41 -05:00
Chris Griggs c40530afb0
Merge pull request #20423 from cgriggs01/cgriggs01-community-proivders
[Website] Two new community providers
2019-02-21 16:04:39 -08:00
cgriggs01 b2d46ad2ed two new community providers 2019-02-21 15:44:56 -08:00
Chris Griggs 0ddbe5d7be
Merge pull request #20420 from cgriggs01/cgriggs01-yandex
[Website] New provider links
2019-02-21 14:41:21 -08:00
Nick Fagerlund 79c2fd2f3a website: rename expressions-representation to block-expressions-representation 2019-02-21 14:00:58 -08:00
cgriggs01 c625283511 adding new provider links 2019-02-21 13:46:42 -08:00
Radek Simko cea81d921a
Merge pull request #20411 from hashicorp/vendor-go-mod-aware
vendor: Bump remaining dependencies to go-mod-aware versions
2019-02-21 20:35:39 +00:00
Kristin Laemmert 2aef47d01d website: clarify format_version 2019-02-21 12:07:06 -08:00
Nick Fagerlund 3c42508700
Apply suggestions from code review
Co-Authored-By: mildwonkey <mildwonkey@users.noreply.github.com>
2019-02-21 11:52:08 -08:00
Nick Fagerlund 883d587734 website: ACTUALLY fix indentation issues in config rep
There was an issue with some hardtabs, I think.
2019-02-21 11:02:33 -08:00
James Bardin 092596adad
Merge pull request #20417 from hashicorp/jbardin/scp-error
print scp error before exiting on error code
2019-02-21 13:51:51 -05:00
James Bardin 6cac02df14 print scp error before exiting on error code
See if there is any additional stderr output before exiting, since it
can be helpful in addition to the error status.
2019-02-21 13:42:46 -05:00
Martin Atkins fa0d6484df configs/configupgrade: Detect and fix element(...) usage with sets
Although sets do not have indexed elements, in Terraform 0.11 and earlier
element(...) would work with sets because we'd automatically convert them
to lists on entry to HIL -- with an arbitrary-but-consistent ordering --
and this return an arbitrary-but-consistent element from the list.

The element(...) function in Terraform 0.12 does not allow this because it
is not safe in general, but there was an existing pattern relying on this
in Terraform 0.11 configs which this upgrade rule is intended to preserve:

    resource "example" "example" {
      count = "${length(any_set_attribute)}"

      foo = "${element(any_set_attribute, count.index}"
    }

The above works because the exact indices assigned in the conversion are
irrelevant: we're just asking Terraform to create one resource for each
distinct element in the set.

This upgrade rule therefore inserts an explicit conversion to list if it
is able to successfully provide that the given expression will return a
set type:

    foo = "${element(tolist(any_set_attribute), count.index}"

This makes the conversion explicit, allowing users to decide if it is
safe and rework the configuration if not. Since our static type analysis
functionality focuses mainly on resource type attributes, in practice this
rule will only apply when the given expression is a statically-checkable
resource reference. Since sets are an SDK-only concept in Terraform 0.11
and earlier anyway, in practice that works out just right: it's not
possible for sets to appear anywhere else in older versions anyway.
2019-02-21 09:39:55 -08:00
Radek Simko 3d0b6bff07
vendor: github.com/spf13/afero@v1.2.1
go get github.com/spf13/afero@v1.2.1
go mod tidy
go mod vendor
2019-02-21 09:09:22 +00:00
Radek Simko 52b38a486a
vendor: github.com/posener/complete@v1.2.1
go get github.com/posener/complete@v1.2.1
go mod tidy
go mod vendor
2019-02-21 09:07:42 +00:00
Radek Simko c9e6bc4937
vendor: github.com/mitchellh/prefixedio@5733675afd51
go get github.com/mitchellh/prefixedio@5733675afd51
go mod tidy
go mod vendor
2019-02-21 09:02:56 +00:00
Radek Simko 235947345a
vendor: github.com/mitchellh/panicwrap@17011010aaa4
go get github.com/mitchellh/panicwrap@17011010aaa4
go mod tidy
go mod vendor
2019-02-21 09:01:10 +00:00
Radek Simko 8005e39a0a
vendor: github.com/mitchellh/go-linereader@1b945b3263eb
go get github.com/mitchellh/go-linereader@1b945b3263eb
go mod tidy
go mod vendor
2019-02-21 08:59:37 +00:00
Radek Simko 89ec2edc60
vendor: github.com/mitchellh/colorstring@d06e56a500db
go get github.com/mitchellh/colorstring@d06e56a500db
go mod tidy
go mod vendor
2019-02-21 08:57:51 +00:00
Radek Simko dd252355c5
vendor: github.com/mitchellh/cli@v1.0.0
go get github.com/mitchellh/cli@v1.0.0
go mod tidy
go mod vendor
2019-02-21 08:56:05 +00:00
Radek Simko 1feb7717a8
vendor: github.com/hashicorp/go-rootcerts@v1.0.0
go get github.com/hashicorp/go-rootcerts@v1.0.0
go mod tidy
go mod vendor
2019-02-21 08:54:14 +00:00
Radek Simko b43e5e83f5
vendor: github.com/hashicorp/go-getter@v1.1.0
go get github.com/hashicorp/go-getter@v1.1.0
go mod tidy
go mod vendor
2019-02-21 08:52:47 +00:00
Radek Simko 725dfe8a54
vendor: github.com/hashicorp/go-checkpoint@v0.5.0
go get github.com/hashicorp/go-checkpoint@v0.5.0
go mod tidy
go mod vendor
2019-02-21 08:50:02 +00:00
Radek Simko 03dc37fda2
vendor: github.com/armon/circbuf@5111143e8da2
go get github.com/armon/circbuf@5111143e8da2
go mod tidy
go mod vendor
2019-02-21 08:48:13 +00:00
Radek Simko a286e759d2
vendor: github.com/apparentlymart/go-dump@042adf3cf4a0
go get github.com/apparentlymart/go-dump@042adf3cf4a0
go mod tidy
go mod vendor
2019-02-21 08:45:27 +00:00