Commit Graph

41 Commits

Author SHA1 Message Date
Megan Marsh 39354f64e5 move helper/communicator dir into packer-plugin-sdk
fix imports; fix website and generated partials
2020-12-02 08:41:32 -08:00
Megan Marsh c70870cb83 move multierror and multierrorappend into sdk 2020-11-30 14:29:06 -08:00
Megan Marsh 9e47696dff move helper/config to bundle with the other template definitions 2020-11-18 10:34:59 -08:00
Megan Marsh 3f6deb8828 move multistep into the plugin sdk 2020-11-17 16:31:03 -08:00
Megan Marsh 7d658149ea update tests and website and generated partials to reflect new package format 2020-11-17 10:36:01 -08:00
Megan Marsh e04eaa89e6 move steps and step configs from packer/common to packer/common/commonsteps 2020-11-13 11:15:04 -08:00
Megan Marsh 6402362018 create packer-plugin-sdk directory and begin moving the relevant folders into it. 2020-11-13 10:47:36 -08:00
Jeff Escalante 2999934326
fix generation script, bugfixes in source comments, update website paths in primary codebase 2020-04-07 17:53:22 -04:00
Jeff Escalante bcc848a83d
were rendering yay 2020-04-07 17:50:47 -04:00
Megan Marsh dde74232f2
Clearly document all template-engine-enabled options (#8770) 2020-02-20 11:05:27 +01:00
Adrien Delorme 0785c2f6fc
build using HCL2 (#8423)
This follows #8232 which added the code to generate the code required to parse
HCL files for each packer component.

All old config files of packer will keep on working the same. Packer takes one
argument. When a directory is passed, all files in the folder with a name
ending with  “.pkr.hcl” or “.pkr.json” will be parsed using the HCL2 format.
When a file ending with “.pkr.hcl” or “.pkr.json” is passed it will be parsed
using the HCL2 format. For every other case; the old packer style will be used.

## 1. the hcl2template pkg can create a packer.Build from a set of HCL (v2) files

I had to make the packer.coreBuild (which is our one and only packer.Build ) a public struct with public fields

## 2. Components interfaces get a new ConfigSpec Method to read a file from an HCL file.

  This is a breaking change for packer plugins.

a packer component can be a: builder/provisioner/post-processor

each component interface now gets a `ConfigSpec() hcldec.ObjectSpec`
which allows packer to tell what is the layout of the hcl2 config meant
to configure that specific component.

This ObjectSpec is sent through the wire (RPC) and a cty.Value is now
sent through the already existing configuration entrypoints:

 Provisioner.Prepare(raws ...interface{}) error
 Builder.Prepare(raws ...interface{}) ([]string, error)
 PostProcessor.Configure(raws ...interface{}) error

close #1768


Example hcl files:

```hcl
// file amazon-ebs-kms-key/run.pkr.hcl
build {
    sources = [
        "source.amazon-ebs.first",
    ]

    provisioner "shell" {
        inline = [
            "sleep 5"
        ]
    }

    post-processor "shell-local" {
        inline = [
            "sleep 5"
        ]
    }
}

// amazon-ebs-kms-key/source.pkr.hcl

source "amazon-ebs" "first" {

    ami_name = "hcl2-test"
    region = "us-east-1"
    instance_type = "t2.micro"

    kms_key_id = "c729958f-c6ba-44cd-ab39-35ab68ce0a6c"
    encrypt_boot = true
    source_ami_filter {
        filters {
          virtualization-type = "hvm"
          name =  "amzn-ami-hvm-????.??.?.????????-x86_64-gp2"
          root-device-type = "ebs"
        }
        most_recent = true
        owners = ["amazon"]
    }
    launch_block_device_mappings {
        device_name = "/dev/xvda"
        volume_size = 20
        volume_type = "gp2"
        delete_on_termination = "true"
    }
    launch_block_device_mappings {
        device_name = "/dev/xvdf"
        volume_size = 500
        volume_type = "gp2"
        delete_on_termination = true
        encrypted = true
    }

    ami_regions = ["eu-central-1"]
    run_tags {
        Name = "packer-solr-something"
        stack-name = "DevOps Tools"
    }
    
    communicator = "ssh"
    ssh_pty = true
    ssh_username = "ec2-user"
    associate_public_ip_address = true
}
```
2019-12-17 11:25:56 +01:00
Michael Bochkaryov da7e72246c Add instance_display_name parameter for Cloudstack builder
This change introduce instance_display_name optional parameter
for Cloudstack builder to set custom VM display name.
By default it is set to "Created by Packer".
2019-10-26 21:13:45 -07:00
Adrien Delorme 078ba7c8c3 commit old code generation tool
for history
2019-10-15 12:56:42 +02:00
Adrien Delorme 849de792da re-apply doc changes of master 2019-09-20 15:04:01 +02:00
Adrien Delorme 3fe9d52e3f Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-09-20 11:15:44 +02:00
William Bianchini d022c2194a [cloudstack builder] Detach iso step
Detach iso file after loading image to cache, allowing OS to boot from
volume ater the installation

Add eject iso check and wait timeout

Closes #7235
2019-09-13 21:33:49 -03:00
Adrien Delorme 4399684372 make fmt autogenerated docs 2019-06-06 16:29:25 +02:00
Adrien Delorme e6cbb013ba add // go:generate struct-markdown to all previously edited files 2019-06-05 16:42:18 +02:00
Adrien Delorme f1917edd34 generate the comments for config struct of builders scraping doc website 2019-06-05 16:42:17 +02:00
Aleksey Hariton 1bf3428263 Add tags to instance 2019-04-18 17:52:16 +03:00
Adrien Delorme 0938b640cc use key pair name from config 2018-08-29 14:40:33 +02:00
Adrien Delorme e0e6b0b8f7 builder.cloudstack: use c.Comm for ssh 2018-08-29 14:40:33 +02:00
Adrien Delorme 51d2aac9f6 SSHPrivateKey => SSHPrivateKeyFile 2018-08-29 14:40:32 +02:00
Sergio Millan Rodriguez befdb59da6 renaming public_ssh_port to public_port 2018-08-22 10:17:46 +01:00
Sergio Millan Rodriguez d90dfc096a adding public_ssh_port flag to use a fixed port in the forwarding rules 2018-07-24 18:39:02 +01:00
Sergio Millan Rodriguez f4020835d6 flag to setup networking without firewall rules 2018-07-16 13:06:51 +02:00
Sergio Millan Rodriguez eae0556dc5 Add option to enable/disable create firewall/acl rules 2018-07-13 17:58:39 +02:00
Rickard von Essen 516bf52115 Merge pull request #5173 from rickard-von-essen/cloudstack-fixes
cloudstack: Move ipaddress, host port, and source to statebag
2017-09-05 06:29:22 +02:00
Rickard von Essen 1a1ab3863c
cloudstack: Add support for Security Groups
Adds two new options:
- `create_security_group` which automatically creates a temporary SG.
- `security_groups` which takes a list of SGs to attach to the instance.
2017-08-31 12:00:03 -07:00
Rickard von Essen 26cd27dc7c
cloudstack: Updated after review 2017-07-26 21:34:11 +02:00
Rickard von Essen fc964bfab2 cloudstack: Setup temporary SSH keypair 2017-07-26 07:38:05 +02:00
Rickard von Essen 1bf8a0c6a1
cloudstack: Move ipaddress and host port to state 2017-07-18 21:40:36 +02:00
Rickard von Essen 07fffd7cd5 cloudstack: moved instanceSource to statebag 2017-07-18 16:39:28 +02:00
Rickard von Essen 4a6d029554 Merge pull request #5125 from rickard-von-essen/cloudstack-cidr
cloudstack: Add default cidr_list [ 0.0.0.0/0 ]
2017-07-14 11:14:51 +02:00
Rickard von Essen 89b9b4c456
cloudstack: Add default cidr_list [ 0.0.0.0/0 ] 2017-07-14 11:12:41 +02:00
Rickard von Essen 0d7c3ac171
cloudstack: Allow reading api_url, api_key, and secret_key from env vars
If unset reads:

- `api_url` from `CLOUDSTACK_API_URL`
- `api_key` from `CLOUDSTACK_API_KEY`
- `secret_key` from `CLOUDSTACK_SECRET_KEY`
2017-07-14 07:34:11 +02:00
Sander van Harmelen 3f444997b2 Make expunge optional and improve logging output (#5099) 2017-07-07 10:54:58 +02:00
Lars Tobias Skjong-Børsting c01f6d8708 builder/cloudstack: Support http server (#5017)
builder/cloudstack: Added docs for http server
Closes hashicorp/packer#4949
2017-07-06 11:59:02 +02:00
Matthew Hooker 81522dced0
move packer to hashicorp 2017-04-04 13:39:01 -07:00
Rickard von Essen 96e9a8e6e9 Removed default value for ssh_username 2016-11-17 22:30:34 +01:00
Sander van Harmelen dbf3bf56d4 Add a CloudStack Builder 2016-10-16 15:29:18 +02:00