Commit Graph

23 Commits

Author SHA1 Message Date
vijayrajah 5d2fee04b2
builder/azure: enable boot Diagnostics (#9053)
* enable boot Diagnostics
2020-04-20 07:29:13 -04: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
Sumit Kalra 595b103bbe
Adding NSG to the ARM deployment template when needed (#3)
* Adding NSG to the ARM eployment template when needed

* Adding tests and fixing bugs

* Removing denyall rule

* Fixing logic to determine which port to open

* Fixing config description
2019-10-08 14:56:43 -07:00
Paul Meyer feeae1514e Refactor client config 2019-09-25 20:33:38 +00:00
Adrien Delorme a4bf94dd3c change Builder to be passed a context for cancellation
we have to to give it to our hook
2019-04-03 15:55:55 +02:00
Matthew Hooker e41e99954d
go 1.11 format rules 2018-08-24 15:56:44 -07:00
Paul Meyer cf94086b5f Formatting fixes 2018-05-01 19:53:20 +00:00
Paul Meyer a3fb24639a make tests pass again 2018-05-01 15:39:50 +00:00
Christopher Boumenot 1ef491d4c8 incorporate reviewer feedback 2018-03-08 22:43:26 -08:00
Christopher Boumenot d2e593de37 azure: support for marketplace plan information 2018-03-05 09:05:21 -08:00
jmajoor efcdbfeab9 Add support for optionally building Azure VMs with additional disks. 2018-02-23 15:34:13 -08:00
Joao Albuquerque d909c702ee Working PublicPrivate 2017-08-08 15:05:45 +01:00
Christopher Boumenot c09f8b84b9 azure: fit and finish
* More unit testing to assert customer's configuration.
 * Further reduce the options that are needed to power an Azure build.
   This seems like a much more manageable level.
 * Update all of the examples to use a more current VM sku.
 * Add an example for RHEL.
 * Move from OpenSuSE to SuSE.
 * Update the docs.
2017-06-26 11:13:39 -07:00
Christopher Boumenot d782ad99f8 azure: pick better names
Use custom_managed_image_name to represent managed images use to build Packer VMs.
Use managed_image_name to represent the image produced by Packer.
2017-06-26 11:13:38 -07:00
Christopher Boumenot c6ff4aae59 Support for building from custom managed images 2017-06-26 11:13:38 -07:00
Matthew Hooker 81522dced0
move packer to hashicorp 2017-04-04 13:39:01 -07:00
Christopher Boumenot 7d07fa7afc azure: Allow user to set custom data 2016-10-13 11:56:23 -07:00
Christopher Boumenot ece0a78990 azure: tag all resources 2016-08-02 11:25:03 -07:00
Christopher Boumenot 871ca8c3d9 azure: Support for a user define VNET.
Two new configuration options have been exposed to allow users to specify
an existing virtual network: virtual_network_name and
virtual_network_resource_group_name.

 * virtual_network_name: name of the virtual network to attach a Packer VM
 to.

 * virtual_network_resource_group_name: name of the resource group that
 contains the virtual network.  This value is optional.  If the value is
 not specified, the builder queries Azure for the appropriate value.  If
 the builder cannot disambiguate the value, a value must be provided for
 this setting.

 * virtual_network_subnet_name: name of the subnet attached to the virtual
 network.  This value is optional.  If the value is not specified, the
 builder queries Azure for the appropriate value.  If the builder cannot
 disambiguate the value, a value must be provided for this setting.
2016-07-28 21:31:59 -07:00
Christopher Boumenot e33a325323 Use VerifyJSONStruct 2016-07-15 21:31:03 -07:00
Christopher Boumenot 130cea91d4 Update to an official version of Approvals
The in-project version of Approvals has been moved to its own GitHub
project under the offcial umbrella.  This PR snaps to that version of the
code.an official version of Approvals

The in-project version of Approvals has been moved to its own GitHub
project under the offcial umbrella.  This PR snaps to that version of the
code.
2016-07-11 15:04:41 -07:00
Christopher Boumenot 6dda6f77d6 Add resource_group_name to test cases. 2016-06-09 10:17:49 -07:00
Christopher Boumenot 5950d3d92b Implement support for custom images. 2016-05-27 21:18:20 -07:00