Commit Graph

27 Commits

Author SHA1 Message Date
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 6402362018 create packer-plugin-sdk directory and begin moving the relevant folders into it. 2020-11-13 10:47:36 -08:00
Megan Marsh 1ecd715221 refactor code so that packer/version is not a dependency of sdk code or plugin code 2020-11-09 17:20:42 -08:00
Megan Marsh 70cb4097e1 review comments, add plugin type for a few missing builders 2020-10-21 16:17:32 -07:00
Patrik d4d78feed2
feat(scaleway): get image by label if not an UUID (#10061)
Signed-off-by: Patrik Cyvoct <patrik@ptrk.io>
2020-10-07 16:04:00 +02:00
abarbare a478bf6f37
fix: update scaleway website documentation (#10058) 2020-10-07 12:02:08 +02:00
Patrik f8e31bff12
feat(builder): bump scaleway to new sdk (#9902) 2020-09-09 10:27:48 +02:00
Rémy Léone ecd1a49a35 change default scaleway boottype to local 2020-08-31 13:15:37 +02:00
Wilken Rivera a76c6c55a9 Remove HCL config for runtime field `UserAgent`
Results before change
```
⇶  packer build /tmp/minimal.pkr.hcl
Error: 1 error occurred:
* unknown configuration key: '"user_agent"'

on /tmp/minimal.pkr.hcl line 1:
(source code not available)

==> Builds finished but no artifacts were created.
```

Results after change
```
⇶  packer build /tmp/minimal.pkr.hcl
scaleway.required: output will be in this color.

==> scaleway.required: Creating temporary ssh key for server...
==> scaleway.required: Creating server...
```
2020-07-31 11:22:55 -04:00
Wilken Rivera 980f02ce5d Add mapstructure tag for UserAgent field
Closes: #9676
2020-07-30 16:08:24 -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
Adrien Delorme 078ba7c8c3 commit old code generation tool
for history
2019-10-15 12:56:42 +02:00
Adrien Delorme 4cb7c30987 Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-08-21 16:44:23 +02:00
Alexandre NICOLAIE 39b8c0ecca feat: add 'remove volume' step to scaleway
Signed-off-by: Alexandre NICOLAIE <alexandre.nicolaie@gmail.com>
2019-07-18 23:19:48 +02: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
Megan Marsh be0959004a
Revert "Revert "Rename attribute api_access_key to organization_id"" 2018-11-09 08:47:22 -08:00
Megan Marsh c1c929164f
Revert "Rename attribute api_access_key to organization_id" 2018-11-08 16:34:23 -08:00
Rémy Léone e54d2e3591 Rename attribute api_access_key to organization 2018-11-08 13:45:32 +01:00
Florian Florensa 9ea5104b74 scaleway: add boottype parameter in config 2018-09-27 16:37:07 +02:00
Megan Marsh ff6a039d5b replace scrubconfig with packer.LogSecretFilter.Set
filter winrm password from logs
Add new root-level packer template option, sensitive-variables, to tell us what user variables to mark sensitive.
2018-08-20 15:35:55 -07:00
Julien BONACHERA eda85a4daf
scaleway: add 'bootscript' configuration parameter 2018-06-29 19:44:56 +02:00
Seth Vargo b17b333e29
Add a common package for specifying useragent and adopt that everywhere
There were 5 different formats for the Packer useragent string. This
fixes that and unifies it into a helper package.

I did not touch oracle's user-agent, because it looked kinda special.
2018-04-05 14:28:50 -04:00
Edouard BONLIEU 1fb13cc23e
Add image creation from snapshot
Rename organization_id / access_key
Update test / doc
2018-02-08 12:09:25 -08:00
Edouard BONLIEU 9b611af7e6
Allow token and organization id to be passed via env vars 2018-02-08 12:09:25 -08:00
Edouard BONLIEU 7e36cfcff1
Add Scaleway builder 2018-02-08 12:09:24 -08:00