Commit Graph

8425 Commits

Author SHA1 Message Date
Martin Atkins 25bd43d6f4 Export public keys from tls_private_key
In most cases private keys are used to produce certs and cert requests,
but there are some less-common cases where the PEM-formatted keypair is
used alone. The public_key_pem attribute supports such cases.

This also includes a public_key_openssh attribute, which allows this
resource to be used to generate temporary OpenSSH credentials, so that
e.g. a Terraform configuration could generate its own keypair to use
with the aws_key_pair resource. This has the same caveats as all cases
where we generate private keys in Terraform, but could be useful for
temporary/throwaway environments where the state either doesn't live for
long or is stored securely.

This builds on work started by Simarpreet Singh in #4441 .
2016-01-16 17:30:48 -08:00
Martin Atkins e8006f1539 Merge #4704: sha256 interpolation function 2016-01-16 16:59:50 -08:00
Matt Moyer c17a6ceb2a Add a sha256(...) interpolation function. 2016-01-16 23:54:04 +00:00
Paul Hinze d59db52f06 helper/resource: Fix data race in resource.Retry
The implementation was attempting to capture the error using a scoped
variable reference, but the error value is already exposed via the
return value of `WaitForState()`. Using that instead fixes the data
race.

Fixes the following data race:

```
==================
WARNING: DATA RACE
Read by goroutine 74:
  github.com/hashicorp/terraform/helper/resource.Retry()
      /Users/phinze/go/src/github.com/hashicorp/terraform/helper/resource/wait.go:35 +0x284
  github.com/hashicorp/terraform/helper/resource.TestRetry_timeout()
      /Users/phinze/go/src/github.com/hashicorp/terraform/helper/resource/wait_test.go:35 +0x60
  testing.tRunner()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/testing/testing.go:456 +0xdc

Previous write by goroutine 90:
  github.com/hashicorp/terraform/helper/resource.Retry.func1()
      /Users/phinze/go/src/github.com/hashicorp/terraform/helper/resource/wait.go:20 +0x87
  github.com/hashicorp/terraform/helper/resource.(*StateChangeConf).WaitForState.func1()
      /Users/phinze/go/src/github.com/hashicorp/terraform/helper/resource/state.go:83 +0x284

Goroutine 74 (running) created at:
  testing.RunTests()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/testing/testing.go:561 +0xaa3
  testing.(*M).Run()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/testing/testing.go:494 +0xe4
  main.main()
      github.com/hashicorp/terraform/helper/resource/_test/_testmain.go:84 +0x20f

Goroutine 90 (running) created at:
  github.com/hashicorp/terraform/helper/resource.(*StateChangeConf).WaitForState()
      /Users/phinze/go/src/github.com/hashicorp/terraform/helper/resource/state.go:127 +0x283
  github.com/hashicorp/terraform/helper/resource.Retry()
      /Users/phinze/go/src/github.com/hashicorp/terraform/helper/resource/wait.go:34 +0x276
  github.com/hashicorp/terraform/helper/resource.TestRetry_timeout()
      /Users/phinze/go/src/github.com/hashicorp/terraform/helper/resource/wait_test.go:35 +0x60
  testing.tRunner()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/testing/testing.go:456 +0xdc
==================
```
2016-01-16 13:38:50 -05:00
Paul Hinze 9cbaacad32 communicator/winrm: fix data race in io copy
As the command completes, the winrm.Command does not wait for its copy of
the remote.Command streams to report itself completed.

This adds an additional sync.WaitGroup to ensure that copy is finished up
before moving on, solving the data race.

Fixes the following data race:

```
==================
WARNING: DATA RACE
Read by goroutine 6:
  github.com/hashicorp/terraform/communicator/winrm.TestStart()
      /Users/phinze/go/src/github.com/hashicorp/terraform/communicator/winrm/communicator_test.go:79 +0xa44
  testing.tRunner()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/testing/testing.go:456 +0xdc

Previous write by goroutine 14:
  bytes.(*Buffer).ReadFrom()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/bytes/buffer.go:174 +0x465
  io.copyBuffer()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/io/io.go:375 +0x1a5
  io.Copy()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/io/io.go:351 +0x78

Goroutine 6 (running) created at:
  testing.RunTests()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/testing/testing.go:561 +0xaa3
  testing.(*M).Run()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/testing/testing.go:494 +0xe4
  main.main()
      github.com/hashicorp/terraform/communicator/winrm/_test/_testmain.go:62 +0x20f

Goroutine 14 (finished) created at:
  github.com/hashicorp/terraform/communicator/winrm.runCommand()
      /Users/phinze/go/src/github.com/hashicorp/terraform/communicator/winrm/communicator.go:151 +0xf8
==================
```
2016-01-16 13:33:24 -05:00
Paul Hinze 394a106143 Update CHANGELOG.md 2016-01-16 12:46:49 -05:00
Paul Hinze 475c0c8549 Merge pull request #4694 from hashicorp/phinze/template-func-race
provider/template: fix race causing panic in template_file
2016-01-16 12:43:57 -05:00
James Nugent becd9ea2d4 Update CHANGELOG.md 2016-01-16 05:37:12 +00:00
James Nugent 58fd767764 Merge pull request #4695 from stack72/f-aws-asg-lifecycle-default-result
provider/aws: ASG Lifecycle Hook Default Result
2016-01-16 05:33:24 +00:00
stack72 acabd4d407 Change ASG Lifecycle Default Result to be computed and added a test to record what the default value is 2016-01-15 22:34:16 +00:00
James Nugent a6961cad0f Update CHANGELOG.md 2016-01-15 22:01:19 +00:00
James Nugent 38c86ec697 Merge branch 'f-docker-volumes' 2016-01-15 22:00:30 +00:00
James Nugent 4b7a98584a provider/docker: Mount named volumes in containers
This adds support for specifying named volumes for mounting in a
`docker_container` resource.
2016-01-15 21:59:33 +00:00
James Nugent c9ebbb9eb2 provider/docker: Add missing sidebar doc link 2016-01-15 21:36:17 +00:00
Paul Hinze 0739cf2348 provider/template: fix race causing panic in template_file
The render code path in `template_file` was doing unsynchronized access
to a shared mapping of functions in `config.Func`.

This caused a race condition that was most often triggered when a
`template_file` had a `count` of more than one, and expressed itself as
a panic in the plugin followed by a cascade of "unexpected EOF" errors
through the plugin system.

Here, we simply turn the FuncMap from shared state into a generated
value, which avoids the race. We do more re-initialization of the data
structure, but the performance implications are minimal, and we can
always revisit with a perf pass later now that the race is fixed.
2016-01-15 16:34:46 -05:00
Carles Figuerola 2d0d67de1c Fix wording on the docs for resource_cloudstack_network 2016-01-15 14:26:26 -06:00
Carles Figuerola fab9b16de5 Move tests to ParseCIDR in resource_cloudstack_network and add items in read section 2016-01-15 14:24:18 -06:00
Sander van Harmelen 52d1e214fb Merge pull request #4661 from jason-riddle/patch-1
Add ENV['no_proxy'] to chef provisioner if no_proxy is detected
2016-01-15 20:32:48 +01:00
James Nugent 2d79e641f3 Update CHANGELOG.md 2016-01-15 17:39:40 +00:00
Colin Hebert e887ac2523 provider/docker: Add `docker_volume` resource 2016-01-15 17:34:53 +00:00
Carles Figuerola c80ddccc12 Add vlan, startip, endip and gateway for network creation 2016-01-14 22:59:04 -06:00
James Nugent ead4865b7f Update CHANGELOG.md 2016-01-15 03:07:16 +00:00
James Nugent 5834e65db9 Merge branch 'paulbellamy-docker-extra-hosts' 2016-01-15 03:05:25 +00:00
James Nugent 3380f08e5a provider/docker: Tweak and test `host_entry`
This adds acceptance tests for specifying extra hosts on Docker
containers. It also renames the repeating block from `hosts` to `host`,
which reads more naturally in the schema when multiple instances of the
block are declared.
2016-01-15 03:02:20 +00:00
James Nugent 933de6b127 provider/aws: valid values for health check types
These are as per the AWS API documentation here:
http://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateHealthCheck.html
2016-01-15 00:08:11 +00:00
James Nugent 51d09d8ebb Merge branch 'patch-1' of https://github.com/Phomias/terraform into Phomias-patch-1 2016-01-15 00:05:40 +00:00
Seth Vargo ef30df002a Fix broken link 2016-01-14 17:13:14 -05:00
Seth Vargo 18bf320b7d Merge pull request #4679 from hashicorp/sethvargo/deploy
Migrate to static site deployments
2016-01-14 17:03:25 -05:00
Mitchell Hashimoto bf5d97ce2c Merge pull request #4681 from hashicorp/f-graph-imp
dag: add HasVertex, HasEdge
2016-01-14 13:59:14 -08:00
Mitchell Hashimoto 5d5045fdd6 dag: add HasVertex, HasEdge 2016-01-14 13:52:01 -08:00
Radek Simko b333ffa3d2 Update CHANGELOG.md 2016-01-14 21:45:12 +00:00
Phomias 5ec817ba36 add port and type args aws_route53_health_check
Taking an educated guess at the valid values of the type argument based on what I read here: http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating.html

and fix a typo: s/respoonse/response/
2016-01-14 15:38:23 -06:00
Seth Vargo d2e36c2111 Add Gemfile.lock 2016-01-14 16:03:30 -05:00
Seth Vargo 5e570658b5 Optimize images 2016-01-14 16:03:29 -05:00
Seth Vargo b49fcba319 Ignore .bundle in website 2016-01-14 16:03:29 -05:00
Seth Vargo 8dbc43639d Use HTTPS + www. for links 2016-01-14 16:03:26 -05:00
Seth Vargo 193bf2c650 Add new Atlas deploy scripts 2016-01-14 16:00:36 -05:00
Seth Vargo 6855c4c4e0 Remove old heroku stuffs 2016-01-14 16:00:35 -05:00
Clint e3f84e1e12 Update CHANGELOG.md 2016-01-14 14:57:50 -06:00
Clint 79c32ddbe9 Merge pull request #4627 from ColinHebert/patch-1
provider/aws: EBS optimised to force new resource
2016-01-14 14:57:13 -06:00
Clint 1c24eb1905 Update CHANGELOG.md 2016-01-14 14:41:40 -06:00
Clint 8e6fba43ef Merge pull request #4564 from hashicorp/pr-3741
provider/aws: Supporting New AWS Route53 HealthCheck additions (supersedes #3741)
2016-01-14 14:41:19 -06:00
Jason Riddle ca39512fa7 Fix the failing chef provisioner test 2016-01-14 13:51:23 -05:00
James Nugent 6acc7a14e4 Merge pull request #4632 from hashicorp/f-aws-profile
provider/aws: Add profile to provider config
2016-01-14 17:08:04 +00:00
Paul Hinze 532812d361 Update CHANGELOG.md 2016-01-14 10:33:59 -06:00
Paul Hinze 6bc93ba6e7 Merge pull request #4676 from betawaffle/packet-failure-handling
Handle external state changes for Packet resources gracefully.
2016-01-14 10:33:21 -06:00
Andrew Hodges a1935a135d Handle external state changes for Packet resources gracefully.
When a Packet provision exceeds our time limit, we move the device to an
internal project for Packet staff to investigate. When this happens, the
original user no longer has access to the device, and they get a 403.

These changes make that and other external state changes more pleasant for
users of Terraform.
2016-01-14 10:50:15 -05:00
James Nugent 35c21cb808 Merge branch 'docker-extra-hosts' of https://github.com/paulbellamy/terraform into paulbellamy-docker-extra-hosts 2016-01-14 15:48:51 +00:00
James Nugent ace215481a provider/aws: Add profile to provider config
This allows specification of the profile for the shared credentials
provider for AWS to be specified in Terraform configuration. This is
useful if defining providers with aliases, or if you don't want to set
environment variables. Example:

$ aws configure --profile this_is_dog
... enter keys

$ cat main.tf
provider "aws" {
    profile = "this_is_dog"

    # Optionally also specify the path to the credentials file
    shared_credentials_file = "/tmp/credentials"
}

This is equivalent to specifying AWS_PROFILE or
AWS_SHARED_CREDENTIALS_FILE in the environment.
2016-01-14 15:39:35 +00:00
James Nugent ea4595840c Merge pull request #4674 from stack72/carl-youngblood/master
Fix recurrence on `aws_autoscaling_schedule` resource
2016-01-14 12:22:43 +00:00