This project is mirrored from https://gitee.com/NQL886/packer.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
  1. 15 Jan, 2021 1 commit
  2. 17 Dec, 2020 1 commit
  3. 02 Dec, 2020 2 commits
  4. 01 Dec, 2020 1 commit
  5. 30 Nov, 2020 5 commits
  6. 18 Nov, 2020 3 commits
  7. 17 Nov, 2020 1 commit
  8. 13 Nov, 2020 2 commits
  9. 06 Nov, 2020 2 commits
  10. 03 Nov, 2020 1 commit
  11. 01 Nov, 2020 1 commit
  12. 21 Oct, 2020 1 commit
  13. 16 Oct, 2020 1 commit
  14. 25 Sep, 2020 1 commit
  15. 17 Aug, 2020 1 commit
  16. 12 Aug, 2020 1 commit
  17. 08 May, 2020 3 commits
  18. 16 Apr, 2020 1 commit
  19. 07 Apr, 2020 2 commits
  20. 17 Mar, 2020 1 commit
  21. 16 Mar, 2020 1 commit
  22. 30 Jan, 2020 1 commit
  23. 16 Jan, 2020 1 commit
  24. 17 Dec, 2019 2 commits
    • Adrien Delorme's avatar
      build using HCL2 (#8423) · 0785c2f6
      Adrien Delorme authored
      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
      }
      ```
      0785c2f6
    • Megan Marsh's avatar
      add an extra string array to the Prepare() return values in the builder... · 0f6d1bec
      Megan Marsh authored
      add an extra string array to the Prepare() return values in the builder interfaces; this sets up the ability for builders to give the provisioners custom user-accessible build-time variables.
      0f6d1bec
  25. 10 Dec, 2019 1 commit
  26. 31 Oct, 2019 2 commits
    • Adrien Delorme's avatar
      Change back to make sure all durations are a time.Duration · 81932922
      Adrien Delorme authored
      It is simply the best/simplest solution and trying to prevent users from passing and integer here would be like opening a can of worms. Because:
      
      * we cannot make mapstructure validate our duration string ( with an UnmarshalJSON func etc.)
      * we cannot make mapstructure spit a string instead of a duration and packer will decode-encode-decode config.
      * the hcl2 generated code asks for a string, so this will be enforced by default.
      81932922
    • Adrien Delorme's avatar
      Force durations to be passed a strings · bf3d9841
      Adrien Delorme authored
      Before this commit it was possible to set a duration using an integer or a float. Go's time.Duration is an int64 internally an mapstructure will take advantage of this and load the number as a int64 but `1` means one ns which is unexpected/confusing. To avoid confusion and enforce readability this forces users to pass a string with a unit for a duration; ex "56s".
      bf3d9841