open-nomad/e2e/terraform/shared
Tim Gross e012c2b5bf
Infrastructure for Windows e2e testing (#6584)
Includes:
* baseline Windows AMI
* initial pass at Terraform configurations
* OpenSSH for Windows

Using OpenSSH is a lot nicer for Nomad developers than winrm would be,
plus it lets us avoid passing around the Windows password in the
clear.

Note that now we're copying up all the provisioning scripts and
configs as a zipped bundle because TF's file provisioner dies in the
middle of pushing up multiple files (whereas `scp -r` works fine).

We're also running all the provisioning scripts inside the userdata by
polling for the zip file to show up (gross!). This is because
`remote-exec` provisioners are failing on Windows with the same symptoms as:

https://github.com/hashicorp/terraform/issues/17728

If we can't fix this, it'll prevent us from having multiple Windows
clients running until TF supports count interpolation in the
`template_file`, which is planned for a later 0.12 release.
2019-11-19 11:06:10 -05:00
..
config Infrastructure for Windows e2e testing (#6584) 2019-11-19 11:06:10 -05:00
consul e2e: refactor Consul configurations (#6559) 2019-10-28 09:27:40 -04:00
nomad Infrastructure for Windows e2e testing (#6584) 2019-11-19 11:06:10 -05:00
vault e2e: refactor Vault configuration (#6561) 2019-10-25 15:29:01 -04:00
README.md e2e: split Packer build scripts from TF provisioning (#6542) 2019-10-25 08:08:24 -04:00

Terraform Provisioning

These scripts are copied up to instances via Terraform provisioning and executed after launch. This allows us to update the Nomad configurations for features that land on master without having to re-bake AMIs.

What goes here?

  • steps that are specific to a given Nomad build: ex. all Nomad configuration files.
  • steps that are specific to a given EC2 instance: configuring IP addresses.

These scripts should be idempotent: copy configurations from /ops/shared to their destinations where the services expect them to be, rather than moving them.