6176 Commits

Author SHA1 Message Date
stack72
450a233303 builder/triton: Wait for ImageCreation State
A bug was reported to Joyent, that sometimes packer UI reports that an image was created but it wasn't actually available in Triton for use. We believe that there was a bug uploading that image to Manta but that the metadata of the image was already populated and thus packer was reporting success as it was just checking for the metadata presence

This PR changes Packer to wait for the state of the image to be `active` to make sure that it has fully uploaded and is ready for use

```
==> triton: Stopping source machine (61647c3c-f2bf-4e30-b4bc-f076d3b01522)...
==> triton: Waiting for source machine to stop (61647c3c-f2bf-4e30-b4bc-f076d3b01522)...
==> triton: Creating image from source machine...
==> triton: Waiting for image to become available...
==> triton: Deleting source machine...
==> triton: Waiting for source machine to be deleted...
Build 'triton' finished.

==> Builds finished. The artifacts of successful builds are:
--> triton: Image was created: c2537582-34c7-42ea-bd11-b6ed499d5831
```
2017-11-08 16:38:04 +02:00
Chris Lundquist
d00f884e71
Merge pull request #5530 from BaxterStockman/lxc-builder-cli-options
Add options to LXC builder for influencing for how containers are built and started
2017-11-07 22:32:17 -08:00
Matthew Hooker
0a24f4eb2e
don't shadow package name 2017-11-07 16:05:43 -08:00
Matthew Hooker
f681faa296
fix tests 2017-11-07 14:57:10 -08:00
Matthew Hooker
545ee45567
debug region we found 2017-11-07 14:51:20 -08:00
Matthew Hooker
c106e7c26c
Don't set region from metadata if profile is set. 2017-11-07 14:33:26 -08:00
Matthew Hooker
52fc0100eb
this is a critical error 2017-11-07 12:52:03 -08:00
Evan Brown
13e0c232d4 builder/googlecompute: Test networking interpolation
This change pulls the logic that interpolates network and subnetwork
into its own func and adds tests.
2017-11-06 21:22:53 -08:00
Evan Brown
f2fed94a71 builder/googlecompute: Derive network and subnetwork IDs locally
This change constructs partial URLs for networks and subnetworks if they
are not already partial or full URLs (i.e., they do not contain a '/' in
their name). Network and subnetwork self-links are no longer retrieved
from the API.

Previously, if a user did not provide the network or subnetwork as a
fully-qualified URL (i.e., self-link), the builder would make
compute.(sub)networks.get API calls with the provided identifier to
discover the self-link. This requires the user or service account Packer
is using to have permission to describe those network resources, which
is becoming less common as IAM is used more. Specifically, a user may
have permission to launch a VM into a network/subnetwork, but will not
have permission to call APIs to describe network resources.
2017-11-06 16:41:42 -08:00
Evan Brown
bada7b73c1 builder/googlecompute: Selectively set default network
If a network is not specified, it should only be set to "default" if a
subnetwork is also not specified.
2017-11-06 16:41:42 -08:00
Evan Brown
1b3eb1c34d builder/googlecompute: Set default network_project_id
If network_project_id is not specified in the GCE builder config, it
should default to the project_id.
2017-11-06 16:41:42 -08:00
Matthew Hooker
68fa09c308
Merge pull request #5512 from hashicorp/fix5501
builder/virtualbox-ovf retry removing VM.
2017-11-06 15:56:08 -08:00
Matthew Hooker
bdb2509735
Merge pull request #5475 from ChrisLundquist/lxd-publish-properties
[Lxd] publish properties
2017-11-06 15:45:56 -08:00
Matthew Hooker
0172a5c82b
Merge pull request #5511 from hashicorp/fix5507
remove login_email from docker
2017-11-06 15:34:04 -08:00
Arjen Schwarz
f4600a208f
Azure: Keep temporary resource group. Fixes #5045
This changeset will detect if the defined temporary resource group
already exists. If it does, it will not destroy it, but clean up
every resource required for building that is created by Packer
individually, both on success and failure.

Unit tests have been fixed, but more tests should be added for the new
functionalities.
2017-11-06 16:16:58 +11:00
Erlend Graff
27fc72c137 fix formatting errors 2017-11-05 15:16:47 +01:00
Erlend Graff
ae6987c74b hyper-v: add test for hashicorp/packer#5184 2017-11-05 14:58:08 +01:00
Erlend Graff
eeeee3ec35 hyper-v/vmcx: add missing InterpolateContext 2017-11-05 14:55:56 +01:00
Erlend Graff
d890051940 hyper-v: implement driver mock 2017-11-05 14:51:18 +01:00
James Nugent
fdd9b952d1
Merge pull request #5538 from stack72/triton-image-data-source
builder/triton: Add a data source for source_machine_image
2017-11-02 15:33:22 -05:00
Matthew Hooker
4d117bf117
Make vm log output less confusing 2017-11-02 10:45:54 -07:00
Matthew Hooker
ac8bc522e0
Merge pull request #5534 from lisimia/digital_ocean_ipv6_option
Added option for ipv6 within the digitalocean builder
2017-11-02 09:55:45 -07:00
Matthew Hooker
95e4ae251e
WIP 2017-11-02 09:03:44 -07:00
Matthew Hooker
e87b468c6e
Merge pull request #5536 from hashicorp/fix5535
add delay option to security group waiter
2017-11-02 08:54:34 -07:00
Matthew Hooker
8ab390a048
Merge pull request #5495 from smaato/master
Fix regressions relating to spot instances and EBS volumes
2017-11-02 08:53:27 -07:00
stack72
7776bf596b builder/triton: Add a data source for source_machine_image
fixes: #5476

Based on this new template addition:

```
{
    "variables": {
        "image_version": "",
        "triton_account": "",
        "triton_key_id": "",
        "triton_key_material": ""
    },
    "builders": [{
        "type": "triton",
        "triton_account": "{{user `triton_account`}}",
        "triton_key_id": "{{user `triton_key_id`}}",
        "triton_key_material": "{{user `triton_key_material`}}",
        "source_machine_package": "g4-highcpu-128M",
        "source_machine_image_filter": {
          "name": "ubuntu-16.04",
          "most_recent": "true"
        },
        "ssh_username": "root",
        "image_version": "{{user `image_version`}}",
        "image_name": "teamcity-server"
    }],
    "provisioners": [
        {
            "type": "shell",
            "start_retry_timeout": "10m",
            "inline": [
                "sudo apt-get update -y",
                "sudo apt-get install -y nginx"
            ]
        }
    ]
}

```

I got the following output from packer:

```
packer-testing % make image
packer build \
		-var "triton_account=stack72_joyent" \
		-var "triton_key_id=40:9d:d3:f9:0b:86:62:48:f4:2e:a5:8e:43:00:2a:9b" \
		-var "triton_key_material=""" \
		-var "image_version=1.0.0" \
		new-template.json
triton output will be in this color.

==> triton: Selecting an image based on search criteria
==> triton: Based, on given search criteria, Machine ID is: "7b5981c4-1889-11e7-b4c5-3f3bdfc9b88b"
==> triton: Waiting for source machine to become available...
==> triton: Waiting for SSH to become available...
==> triton: Connected to SSH!
==> triton: Provisioning with shell script: /var/folders/_p/2_zj9lqn4n11fx20qy787p7c0000gn/T/packer-shell797317310
    triton: Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
    triton: Hit:2 http://archive.ubuntu.com/ubuntu xenial InRelease
```

I can verify from the triton cli tools that the id `7b5981c4` (from the packer output) is indeed the correct ID

```
terraform [master●] % triton images name=~ubuntu-16.04
SHORTID   NAME          VERSION   FLAGS  OS     TYPE        PUBDATE
49b22aec  ubuntu-16.04  20160427  P      linux  lx-dataset  2016-04-27
675834a0  ubuntu-16.04  20160505  P      linux  lx-dataset  2016-05-05
4edaa46a  ubuntu-16.04  20160516  P      linux  lx-dataset  2016-05-16
05140a7e  ubuntu-16.04  20160601  P      linux  lx-dataset  2016-06-01
e331b22a  ubuntu-16.04  20161004  P      linux  lx-dataset  2016-10-04
8879c758  ubuntu-16.04  20161213  P      linux  lx-dataset  2016-12-13
7b5981c4  ubuntu-16.04  20170403  P      linux  lx-dataset  2017-04-03 <------- THIS IS THE LATEST UBUNTU IMAGE
```
2017-11-02 16:10:16 +02:00
Matthew Hooker
f2413ff138
add delay option to security group waiter 2017-11-02 00:25:54 -07:00
Matthew Hooker
a14e9f4d48
Merge pull request #5525 from hashicorp/fix5524
use correct default region when deregistering AMIs.
2017-11-01 16:17:59 -07:00
Lawrence
5509d0734b Added ipv6 option for digitalocean builder
the ipv6 option is already part of the godo package

Updated documentation to reflect new feature

Closes: https://github.com/hashicorp/packer/issues/5533
2017-11-01 15:41:25 -04:00
James Nugent
a495948dc5
Merge pull request #5531 from stack72/bump-triton-dependencies
Bump Joyent/triton-go to modern version of the SDK
2017-10-31 11:21:08 -05:00
stack72
b04796c2cc Bump Joyent/triton-go to modern version of the SDK
This brings packer into the same version of triton-go as that in Terraform, where we rewrote the package from a library with everything in 1 place to individual packages

I was able to successfully provision a machine on triton using this new change, you can find the output in the attached gist

https://gist.github.com/stack72/a64d745459107c5a16bcb156965597ce
2017-10-31 18:08:53 +02:00
Matthew Hooker
19e6049f17
style fixes 2017-10-31 08:48:17 -07:00
Matthew Hooker
f64fa7b5ba
Merge pull request #5491 from BenPhegan/hyperv-disk_additional_size
Hyper-V disk_additional_size capability
2017-10-31 08:42:07 -07:00
Matt Schreiber
1f2135f65e
Add options to LXC builder for influencing for how containers are built and started
via

- create_options: a list of options passed to lxc-create
- start_options: a list of options passed to lxc-start
- attach_options: a list of options passed to lxc-attach

Also extended existing LXC builder BATS tests to exercise the new builder
options, and added website docs.
2017-10-30 21:48:43 -04:00
Matthew Hooker
d322fc6c19
Shorten metadata timeout
When running in travis, metadata requests will timeout after 5 seconds.
After 24 such timeouts, we'll hit travis' build timeout of two minutes,
and the build will fail. Lowering it to 100 gets us in a safe time
limit. We _may_ need to expose a timeout env var with this logic,
however.
2017-10-30 15:22:15 -07:00
Matthew Hooker
314fc94bd8
clean up 2017-10-30 15:02:39 -07:00
Matthew Hooker
0e4ea7420b
fix tests 2017-10-30 14:34:16 -07:00
Matthew Hooker
c65fa8490d
fix various bugs deregistering AMIs
always deregister ami in session region
validate that session region does not appear in ami_regions
2017-10-30 14:17:19 -07:00
Matthew Hooker
6c4fbe8d87
use correct default region when deregistering AMIs. 2017-10-30 13:07:58 -07:00
Matthew Hooker
faf96b369f Merge pull request #5510 from hashicorp/fix5216
fix hyper-v admin check
2017-10-27 08:49:16 -07:00
Joe Ferguson
5c2f758053 🎨 Fix typo in "copyed" -> "copied" usages. 2017-10-26 07:42:49 -05:00
Matthew Hooker
794e518eb7
use hyper-v admin group, not admin 2017-10-25 13:29:03 -07:00
Matthew Hooker
812fd12a0b
move trimspace to powershell exit check 2017-10-25 13:28:59 -07:00
Matthew Hooker
1901c0385f
remove login_email from docker
adds fixer
removes documentation
removes from docker builder and docker-push pp
2017-10-25 10:53:06 -07:00
Matthew Hooker
fb098d045d
builder/virtualbox-ovf retry removing VM.
moves behavior from builder/virtualbox-iso into the driver
so it is automatically available to callers.
2017-10-25 10:27:33 -07:00
Matthew Hooker
0be02ab217
hyper-v: Don't error while checking for admin permissions. 2017-10-25 09:18:40 -07:00
Mark Meyer
4c5df79222 Fix regressions introduced in the instance builder
Related to #5504
2017-10-24 23:23:18 +02:00
Mark Meyer
309bf61257 Add missing blockdevices to ebsvolume builder 2017-10-23 22:33:16 +02:00
Mark Meyer
1cc9b3f1e3 Bring back volume tagging to ebsvolume
Related to #5486
2017-10-23 22:09:04 +02:00
Mark Meyer
7e1646826d Check if VolumeTags is empty before tagging volumes
Related to #5486
2017-10-23 21:10:40 +02:00