From 465cb8a13240aba5f545ee5a7e8c406129a49712 Mon Sep 17 00:00:00 2001 From: Corey Hemminger Date: Thu, 6 Jul 2023 13:00:57 -0500 Subject: [PATCH] update default vmx_data (#1512) * update default vmx_data * switch pipeline to bento build command * added opensuse-leap-15-aarch64 and updated build workflows accordingly * update vmware settings and add proper bento build failure exit status * fixed bento arm64 metadata generation --------- Signed-off-by: Corey Hemminger --- .github/workflows/pkr-bld-amazonlinux-x64.yml | 16 ++-- .github/workflows/pkr-bld-hyperv-x64.yml | 7 +- .github/workflows/pkr-bld-parallels-arm64.yml | 17 ++-- .github/workflows/pkr-bld-parallels-x64.yml | 16 ++-- .github/workflows/pkr-bld-qemu-arm64.yml | 17 ++-- .github/workflows/pkr-bld-qemu-x64.yml | 16 ++-- .../workflows/pkr-bld-virtualbox-arm64.yml | 17 ++-- .github/workflows/pkr-bld-virtualbox-x64.yml | 16 ++-- .github/workflows/pkr-bld-vmware-arm64.yml | 17 ++-- .github/workflows/pkr-bld-vmware-x64.yml | 16 ++-- CHANGELOG.md | 78 ++++++++++--------- bento.gemspec | 3 +- lib/bento/buildmetadata.rb | 4 +- lib/bento/runner.rb | 25 ++++-- lib/bento/version.rb | 2 +- .../debian/debian-11-aarch64.pkrvars.hcl | 4 +- .../debian/debian-11-x86_64.pkrvars.hcl | 4 +- .../opensuse-leap-15-aarch64.pkrvars.hcl | 8 +- .../opensuse-leap-15-x86_64.pkrvars.hcl | 6 +- .../springdalelinux-8-x86_64.pkrvars.hcl | 6 +- .../springdalelinux-9-x86_64.pkrvars.hcl | 6 +- packer_templates/pkr-builder.pkr.hcl | 11 ++- packer_templates/pkr-sources.pkr.hcl | 10 ++- packer_templates/pkr-variables.pkr.hcl | 4 +- .../scripts/windows/provision.ps1 | 6 +- 25 files changed, 213 insertions(+), 119 deletions(-) diff --git a/.github/workflows/pkr-bld-amazonlinux-x64.yml b/.github/workflows/pkr-bld-amazonlinux-x64.yml index 149014cce..facc751a2 100644 --- a/.github/workflows/pkr-bld-amazonlinux-x64.yml +++ b/.github/workflows/pkr-bld-amazonlinux-x64.yml @@ -2,6 +2,9 @@ on: workflow_call: +env: + PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + jobs: x86_64: runs-on: [self-hosted, X64, virtualbox] @@ -18,15 +21,17 @@ jobs: # with: # version: latest - name: Packer Init - env: - PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: packer init -upgrade packer_templates - name: Packer FMT run: if packer fmt -check -recursive .; then exit 0; else echo "Some packer files need to be formatted, run 'packer fmt -recursive .' to fix"; exit 1; fi - name: Packer Validate run: packer validate -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" packer_templates - name: Packer build - run: ./AMZ_build_virtualbox-ovf.sh + run: | + eval "$(chef shell-init bash)" + ./AMZ_build_virtualbox-ovf.sh + bento build -n os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" >> builds/amazonlinux-2-x86_64.metadata.json + ls -alh builds - name: Remove VM in case of canceled job if: cancelled() run: | @@ -38,7 +43,8 @@ jobs: - name: Upload build artifact uses: actions/upload-artifact@main with: - name: "${{ matrix.os }}-virtualbox-x86_64.box" + name: "${{ matrix.os }}-virtualbox-x86_64" path: | - builds/*.box + builds + !builds/uploaded/* retention-days: 10 diff --git a/.github/workflows/pkr-bld-hyperv-x64.yml b/.github/workflows/pkr-bld-hyperv-x64.yml index 31198ce99..ca77f1ee5 100644 --- a/.github/workflows/pkr-bld-hyperv-x64.yml +++ b/.github/workflows/pkr-bld-hyperv-x64.yml @@ -2,6 +2,9 @@ on: workflow_call: +env: + PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + jobs: x86_64: runs-on: [self-hosted, X64, hyperv] @@ -57,8 +60,6 @@ jobs: # with: # version: latest - name: Packer Init - env: - PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: packer init -upgrade packer_templates - name: Packer FMT run: packer fmt -check -recursive . @@ -77,7 +78,7 @@ jobs: - name: Upload build artifact uses: actions/upload-artifact@main with: - name: "${{ matrix.os }}-hyperv-x86_64.box" + name: "${{ matrix.os }}-hyperv-x86_64" path: | builds/*.box retention-days: 10 diff --git a/.github/workflows/pkr-bld-parallels-arm64.yml b/.github/workflows/pkr-bld-parallels-arm64.yml index b3028a72e..c678d1199 100644 --- a/.github/workflows/pkr-bld-parallels-arm64.yml +++ b/.github/workflows/pkr-bld-parallels-arm64.yml @@ -2,6 +2,9 @@ on: workflow_call: +env: + PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + jobs: aarch64: runs-on: [self-hosted, ARM64, parallels] @@ -21,6 +24,7 @@ jobs: - fedora-38 - freebsd-12 - freebsd-13 + - opensuse-leap-15 - oracle-7 - oracle-8 - oracle-9 @@ -45,15 +49,17 @@ jobs: # with: # version: latest - name: Packer Init - env: - PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: packer init -upgrade packer_templates - name: Packer FMT run: if packer fmt -check -recursive .; then exit 0; else echo "Some packer files need to be formatted, run 'packer fmt -recursive .' to fix"; exit 1; fi - name: Packer Validate run: packer validate -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" packer_templates - name: Packer build - run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" packer_templates +# run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" packer_templates + run: | + eval "$(chef shell-init bash)" + bento build -o ${{ matrix.provider }}.vm os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" + ls -alh builds - name: Remove VM in case of canceled job if: cancelled() run: | @@ -66,7 +72,8 @@ jobs: - name: Upload build artifact uses: actions/upload-artifact@v3 with: - name: "${{ matrix.os }}-parallels-aarch64.box" + name: "${{ matrix.os }}-parallels-aarch64" path: | - builds/*.box + builds + !builds/uploaded/* retention-days: 10 diff --git a/.github/workflows/pkr-bld-parallels-x64.yml b/.github/workflows/pkr-bld-parallels-x64.yml index 832a1b666..7f6f3cb45 100644 --- a/.github/workflows/pkr-bld-parallels-x64.yml +++ b/.github/workflows/pkr-bld-parallels-x64.yml @@ -2,6 +2,9 @@ on: workflow_call: +env: + PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + jobs: x86_64: runs-on: [self-hosted, X64, parallels] @@ -55,15 +58,17 @@ jobs: # with: # version: latest - name: Packer Init - env: - PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: packer init -upgrade packer_templates - name: Packer FMT run: if packer fmt -check -recursive .; then exit 0; else echo "Some packer files need to be formatted, run 'packer fmt -recursive .' to fix"; exit 1; fi - name: Packer Validate run: packer validate -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" packer_templates - name: Packer build - run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" packer_templates +# run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" packer_templates + run: | + eval "$(chef shell-init bash)" + bento build -o ${{ matrix.provider }}.vm os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" + ls -alh builds - name: Remove VM in case of canceled job if: cancelled() run: | @@ -76,7 +81,8 @@ jobs: - name: Upload build artifact uses: actions/upload-artifact@v3 with: - name: "${{ matrix.os }}-parallels-x86_64.box" + name: "${{ matrix.os }}-parallels-x86_64" path: | - builds/*.box + builds + !builds/uploaded/* retention-days: 10 diff --git a/.github/workflows/pkr-bld-qemu-arm64.yml b/.github/workflows/pkr-bld-qemu-arm64.yml index 049325151..1b0925d46 100644 --- a/.github/workflows/pkr-bld-qemu-arm64.yml +++ b/.github/workflows/pkr-bld-qemu-arm64.yml @@ -2,6 +2,9 @@ on: workflow_call: +env: + PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + jobs: aarch64: runs-on: [self-hosted, ARM64, qemu] @@ -21,6 +24,7 @@ jobs: - fedora-38 - freebsd-12 - freebsd-13 + - opensuse-leap-15 - oracle-7 - oracle-8 - oracle-9 @@ -45,19 +49,22 @@ jobs: # with: # version: latest - name: Packer Init - env: - PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: packer init -upgrade packer_templates - name: Packer FMT run: if packer fmt -check -recursive .; then exit 0; else echo "Some packer files need to be formatted, run 'packer fmt -recursive .' to fix"; exit 1; fi - name: Packer Validate run: packer validate -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" packer_templates - name: Packer build - run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var "qemu_accelerator=hvf" -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" packer_templates +# run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var "qemu_accelerator=hvf" -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" packer_templates + run: | + eval "$(chef shell-init bash)" + bento build -o ${{ matrix.provider }}.vm os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" + ls -alh builds - name: Upload build artifact uses: actions/upload-artifact@v3 with: - name: "${{ matrix.os }}-qemu-aarch64.box" + name: "${{ matrix.os }}-qemu-aarch64" path: | - builds/*.box + builds + !builds/uploaded/* retention-days: 10 diff --git a/.github/workflows/pkr-bld-qemu-x64.yml b/.github/workflows/pkr-bld-qemu-x64.yml index 832485432..4a692bf07 100644 --- a/.github/workflows/pkr-bld-qemu-x64.yml +++ b/.github/workflows/pkr-bld-qemu-x64.yml @@ -2,6 +2,9 @@ on: workflow_call: +env: + PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + jobs: x86_64: runs-on: [self-hosted, X64, qemu] @@ -57,19 +60,22 @@ jobs: # with: # version: latest - name: Packer Init - env: - PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: packer init -upgrade packer_templates - name: Packer FMT run: if packer fmt -check -recursive .; then exit 0; else echo "Some packer files need to be formatted, run 'packer fmt -recursive .' to fix"; exit 1; fi - name: Packer Validate run: packer validate -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" packer_templates - name: Packer build - run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var "qemu_accelerator=hvf" -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" packer_templates +# run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var "qemu_accelerator=hvf" -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" packer_templates + run: | + eval "$(chef shell-init bash)" + bento build -o ${{ matrix.provider }}.vm os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" + ls -alh builds - name: Upload build artifact uses: actions/upload-artifact@main with: - name: "${{ matrix.os }}-qemu-x86_64.box" + name: "${{ matrix.os }}-qemu-x86_64" path: | - builds/*.box + builds + !builds/uploaded/* retention-days: 10 diff --git a/.github/workflows/pkr-bld-virtualbox-arm64.yml b/.github/workflows/pkr-bld-virtualbox-arm64.yml index fb05d0312..43e65601f 100644 --- a/.github/workflows/pkr-bld-virtualbox-arm64.yml +++ b/.github/workflows/pkr-bld-virtualbox-arm64.yml @@ -2,6 +2,9 @@ on: workflow_call: +env: + PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + jobs: aarch64: runs-on: [self-hosted, ARM64, virtualbox] @@ -21,6 +24,7 @@ jobs: - fedora-38 - freebsd-12 - freebsd-13 + - opensuse-leap-15 - oracle-7 - oracle-8 - oracle-9 @@ -45,15 +49,17 @@ jobs: # with: # version: latest - name: Packer Init - env: - PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: packer init -upgrade packer_templates - name: Packer FMT run: if packer fmt -check -recursive .; then exit 0; else echo "Some packer files need to be formatted, run 'packer fmt -recursive .' to fix"; exit 1; fi - name: Packer Validate run: packer validate -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" packer_templates - name: Packer build - run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" packer_templates +# run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" packer_templates + run: | + eval "$(chef shell-init bash)" + bento build -o ${{ matrix.provider }}.vm os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" + ls -alh builds - name: Remove VM in case of canceled job if: cancelled() run: | @@ -65,7 +71,8 @@ jobs: - name: Upload build artifact uses: actions/upload-artifact@main with: - name: "${{ matrix.os }}-virtualbox-aarch64.box" + name: "${{ matrix.os }}-virtualbox-aarch64" path: | - builds/*.box + builds + !builds/uploaded/* retention-days: 10 diff --git a/.github/workflows/pkr-bld-virtualbox-x64.yml b/.github/workflows/pkr-bld-virtualbox-x64.yml index d65123ecb..c359461ac 100644 --- a/.github/workflows/pkr-bld-virtualbox-x64.yml +++ b/.github/workflows/pkr-bld-virtualbox-x64.yml @@ -2,6 +2,9 @@ on: workflow_call: +env: + PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + jobs: x86_64: runs-on: [self-hosted, X64, virtualbox] @@ -55,15 +58,17 @@ jobs: # with: # version: latest - name: Packer Init - env: - PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: packer init -upgrade packer_templates - name: Packer FMT run: if packer fmt -check -recursive .; then exit 0; else echo "Some packer files need to be formatted, run 'packer fmt -recursive .' to fix"; exit 1; fi - name: Packer Validate run: packer validate -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" packer_templates - name: Packer build - run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" packer_templates +# run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" packer_templates + run: | + eval "$(chef shell-init bash)" + bento build -o ${{ matrix.provider }}.vm os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" + ls -alh builds - name: Remove VM in case of canceled job if: cancelled() run: | @@ -75,7 +80,8 @@ jobs: - name: Upload build artifact uses: actions/upload-artifact@main with: - name: "${{ matrix.os }}-virtualbox-x86_64.box" + name: "${{ matrix.os }}-virtualbox-x86_64" path: | - builds/*.box + builds + !builds/uploaded/* retention-days: 10 diff --git a/.github/workflows/pkr-bld-vmware-arm64.yml b/.github/workflows/pkr-bld-vmware-arm64.yml index af23bcb65..32ddfcc32 100644 --- a/.github/workflows/pkr-bld-vmware-arm64.yml +++ b/.github/workflows/pkr-bld-vmware-arm64.yml @@ -2,6 +2,9 @@ on: workflow_call: +env: + PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + jobs: aarch64: runs-on: [self-hosted, ARM64, vmware-fusion] @@ -21,6 +24,7 @@ jobs: - fedora-38 - freebsd-12 - freebsd-13 + - opensuse-leap-15 - oracle-7 - oracle-8 - oracle-9 @@ -45,15 +49,17 @@ jobs: # with: # version: latest - name: Packer Init - env: - PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: packer init -upgrade packer_templates - name: Packer FMT run: if packer fmt -check -recursive .; then exit 0; else echo "Some packer files need to be formatted, run 'packer fmt -recursive .' to fix"; exit 1; fi - name: Packer Validate run: packer validate -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" packer_templates - name: Packer build - run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" packer_templates +# run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" packer_templates + run: | + eval "$(chef shell-init bash)" + bento build -o ${{ matrix.provider }}.vm os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-aarch64.pkrvars.hcl" + ls -alh builds - name: Remove VM in case of canceled job if: cancelled() run: | @@ -65,7 +71,8 @@ jobs: - name: Upload build artifact uses: actions/upload-artifact@v3 with: - name: "${{ matrix.os }}-vmware-aarch64.box" + name: "${{ matrix.os }}-vmware-aarch64" path: | - builds/*.box + builds + !builds/uploaded/* retention-days: 10 diff --git a/.github/workflows/pkr-bld-vmware-x64.yml b/.github/workflows/pkr-bld-vmware-x64.yml index 42971dd3b..68f3d3975 100644 --- a/.github/workflows/pkr-bld-vmware-x64.yml +++ b/.github/workflows/pkr-bld-vmware-x64.yml @@ -2,6 +2,9 @@ on: workflow_call: +env: + PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + jobs: x86_64: runs-on: [self-hosted, X64, vmware-fusion] @@ -55,15 +58,17 @@ jobs: # with: # version: latest - name: Packer Init - env: - PACKER_GITHUB_API_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: packer init -upgrade packer_templates - name: Packer FMT run: if packer fmt -check -recursive .; then exit 0; else echo "Some packer files need to be formatted, run 'packer fmt -recursive .' to fix"; exit 1; fi - name: Packer Validate run: packer validate -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" packer_templates - name: Packer build - run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" packer_templates +# run: packer build -timestamp-ui -only=${{ matrix.provider }}.vm -var-file=os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" packer_templates + run: | + eval "$(chef shell-init bash)" + bento build -o ${{ matrix.provider }}.vm os_pkrvars/$(echo ${{ matrix.os }} | cut -d "-" -f 1)/"${{ matrix.os }}-x86_64.pkrvars.hcl" + ls -alh builds - name: Remove VM in case of canceled job if: cancelled() run: | @@ -75,7 +80,8 @@ jobs: - name: Upload build artifact uses: actions/upload-artifact@v3 with: - name: "${{ matrix.os }}-vmware-x86_64.box" + name: "${{ matrix.os }}-vmware-x86_64" path: | - builds/*.box + builds + !builds/uploaded/* retention-days: 10 diff --git a/CHANGELOG.md b/CHANGELOG.md index 74d8b5247..4b64b8e04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,47 +7,47 @@ Markdown table generated at | | hyperv
x86_64 | parallels
x86_64 | parallels
aarch64 | qemu
x86_64 | qemu
aarch64 | virtualbox
x86_64 | virtualbox
aarch64 | vmware
x86_64 | vmware
aarch64 | |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| -| almalinux-8 | | x | | x | | x | | x | | -| almalinux-9 | | x | x | | | x | | x | | -| amazonlinux-2 | | na | na | na | na | x | | na | na | +| almalinux-8 | | | | x | | x | | x | | +| almalinux-9 | | x | | | | x | | x | | +| amazonlinux-2 | | na | na | | | | na | | na | | amazonlinux-2023 | na | na | na | na | na | na | na | na | na | -| centos-7 | | x | | x | | x | | x | | -| centos-stream-8 | | x | | x | | x | | x | | -| centos-stream-9 | | | | | | x | | x | | -| debian-10 | | | x | | | x | | x | | -| debian-11 | | x | x | | | x | | x | | -| debian-12 | | x | x | | | x | | x | | -| fedora-37 | | x | x | x | | x | | x | | -| fedora-38 | | x | | x | | x | | x | | -| freebsd-12 | | | na | | na | x | na | | na | -| freebsd-13 | | | na | | na | x | na | | na | -| opensuse-leap-15 | | | na | x | na | | na | x | na | -| oracle-7 | | x | | x | | x | | x | | -| oracle-8 | | | | x | | x | | x | | -| oracle-9 | | x | x | | | x | | x | | -| rhel-7 | | | | | | | | | | -| rhel-8 | | | | | | | | | | -| rhel-9 | | | | | | | | | | -| rockylinux-8 | | x | | x | | x | | x | | -| rockylinux-9 | | x | x | | | x | | x | | -| scientificlinux-7 | | x | na | x | na | x | na | x | na | -| sles-12 | | | na | | na | | na | | na | -| sles-13 | | | na | | na | | na | | na | -| solaris-11 | | | na | | na | | na | | na | -| springdalelinux-7 | | x | na | x | na | | na | | na | -| springdalelinux-8 | | x | na | x | na | x | na | x | na | -| springdalelinux-9 | | x | na | | na | x | na | x | na | +| centos-7 | | x | | | | | | x | | +| centos-stream-8 | x | | | x | | | | x | | +| centos-stream-9 | | x | | | | | | x | | +| debian-10 | | | x | | | | | x | | +| debian-11 | | x | x | | | | | x | | +| debian-12 | | x | x | | | x | | x | x | +| fedora-37 | | x | | x | | | | x | x | +| fedora-38 | | | | | | x | | x | x | +| freebsd-12 | | | | | | x | | | | +| freebsd-13 | | | | | | x | | | | +| opensuse-leap-15 | x | x | | | | | | x | | +| oraclelinux-7 | x | x | | | | x | | x | | +| oraclelinux-8 | x | | | x | | x | | x | | +| oraclelinux-9 | | x | | | | x | | x | | +| rhel-7 | license
needed | license
needed | license
needed | license
needed | license
needed | license
needed | license
needed | license
needed | license
needed | +| rhel-8 | license
needed | license
needed | license
needed | license
needed | license
needed | license
needed | license
needed | license
needed | license
needed | +| rhel-9 | license
needed | license
needed | license
needed | license
needed | license
needed | license
needed | license
needed | license
needed | license
needed | +| rockylinux-8 | | | | x | | x | | x | | +| rockylinux-9 | | x | x | | | | | x | | +| scientificlinux-7 | | x | na | | na | | na | x | na | +| sles-12 | license
needed | license
needed | na | license
needed | na | license
needed | na | license
needed | na | +| sles-13 | license
needed | license
needed | na | license
needed | na | license
needed | na | license
needed | na | +| solaris-11 | license
needed | license
needed | na | license
needed | na | license
needed | na | license
needed | na | +| springdalelinux-7 | | x | na | | na | | na | | na | +| springdalelinux-8 | x | | na | x | na | x | na | x | na | +| springdalelinux-9 | x | x | na | | na | | na | x | na | | ubuntu-18.04 | | x | | | | x | | x | | -| ubuntu-20.04 | | | x | | | | | | | -| ubuntu-22.04 | | x | x | x | | x | | x | | -| ubuntu-22.10 | | x | x | x | | x | | x | | -| ubuntu-23.04 | na | na | na | na | na | na | na | na | na | +| ubuntu-20.04 | | x | | x | | | | x | x | +| ubuntu-22.04 | | x | | x | | x | | x | x | +| ubuntu-22.10 | | x | | | | | | | x | +| ubuntu-23.04 | | x | | x | | | | x | x | | windows-10 | x | x | na | | na | x | na | | na | | windows-10gen2 | | na | na | na | na | na | na | na | na | | windows-11 | x | x | na | | na | x | na | | na | | windows-11gen2 | | na | na | na | na | na | na | na | na | | windows-2012r2 | | x | na | | na | x | na | | na | -| windows-2016 | x | x | na | | na | x | na | x | na | +| windows-2016 | x | x | na | | na | x | na | | na | | windows-2019 | x | x | na | | na | x | na | | na | | windows-2022 | x | x | na | | na | x | na | | na | @@ -63,12 +63,20 @@ Markdown table generated at - Create CD pipeline to upload vagrant boxes after PR is merged - Create CD pipeline to build and upload new versions of vagrant boxes once every 3 months with the latest patches -## [unreleased] (2023-06-15) +## [unreleased] (2023-07-07) + +## [v3.1.1] (2023-07-07) - Update RHEL 9 clones to 9.2 - Update RHEL 8 clones to 8.8 - Added Debian 12 variables - Fixed pipeline issue with plugins +- Updated debian 11 iso url +- switched pipeline to use bento build command and upload box and metadata.json files +- add opensuse-leap aarch64 build +- updated opensuse-leap to 15.5 +- Bento command exits with error status and code when a build fails for a provider +- fixed bento metadata generation for aarch64 machines ## [v3.1.0] (2023-05-17) diff --git a/bento.gemspec b/bento.gemspec index 4a33dd3a8..690638410 100644 --- a/bento.gemspec +++ b/bento.gemspec @@ -1,8 +1,9 @@ # frozen_string_literal: true +require_relative 'lib/bento/version' Gem::Specification.new do |s| s.name = 'bento' - s.version = '3.1.0' + s.version = Bento::VERSION s.summary = 'Bento builds generic Vagrant boxes ' s.description = s.summary s.license = 'Apache-2.0' diff --git a/lib/bento/buildmetadata.rb b/lib/bento/buildmetadata.rb index 1c7f6b8c0..e35eb867f 100644 --- a/lib/bento/buildmetadata.rb +++ b/lib/bento/buildmetadata.rb @@ -31,7 +31,7 @@ def read attr_reader :template, :build_timestamp, :override_version def box_basename - "#{name.gsub('/', '__')}-#{arch}" + "#{name.gsub('/', '__')}" end def git_revision @@ -57,7 +57,7 @@ def name if arch == 'aarch64' || arch == 'arm64' "#{merged_vars.fetch('name', template)}-arm64" else - merged_vars.fetch('name', template) + "#{merged_vars.fetch('name', template)}-x86_64" end end diff --git a/lib/bento/runner.rb b/lib/bento/runner.rb index 0d6637ed2..c507b434d 100644 --- a/lib/bento/runner.rb +++ b/lib/bento/runner.rb @@ -2,6 +2,7 @@ require 'bento/buildmetadata' require 'bento/providermetadata' require 'bento/packerexec' +require 'mixlib/shellout' unless defined?(Mixlib::ShellOut) class BuildRunner include Common @@ -30,7 +31,7 @@ def start templates = config ? build_list : template_files banner('Starting build for templates:') banner('Installing packer plugins') - shellout("packer init -upgrade #{File.dirname(templates.first)}/../../packer_templates") + shellout("packer init -upgrade #{File.dirname(templates.first)}/../../packer_templates") unless dry_run templates.each { |t| puts "- #{t}" } time = Benchmark.measure do templates.each { |template| build(template) } @@ -44,17 +45,25 @@ def build(file) bento_dir = Dir.pwd dir = File.dirname(file) template = File.basename(file) + cmd = nil Dir.chdir dir for_packer_run_with(template) do |md_file, _var_file| - cmd = packer_build_cmd(template, md_file.path) - banner("[#{template}] Building: '#{cmd.join(' ')}'") + cmd = Mixlib::ShellOut.new(packer_build_cmd(template, md_file.path).join(' ')) + cmd.live_stream = STDOUT + cmd.timeout = 28800 + banner("[#{template}] Building: '#{cmd.command}'") time = Benchmark.measure do - system(*cmd) || puts("[#{template}] Error building, exited #{$CHILD_STATUS}") + cmd.run_command + end + if Dir.glob("../../builds/*.box").empty? + banner("Not writing metadata file since no boxes exist") + else + write_final_metadata(template, time.real.ceil) end - write_final_metadata(template, time.real.ceil) banner("[#{template}] Finished building in #{duration(time.real)}.") end Dir.chdir(bento_dir) + cmd.error! # fail hard if the cmd fails end def packer_build_cmd(template, _var_file) @@ -78,8 +87,8 @@ def packer_build_cmd(template, _var_file) def write_final_metadata(template, buildtime) md = BuildMetadata.new(template, build_timestamp, override_version).read path = File.join('../../builds') - filename = File.join(path, "#{md[:box_basename]}.metadata.json") - md[:providers] = ProviderMetadata.new(path, md[:box_basename]).read + filename = File.join(path, "#{md[:template]}.metadata.json") + md[:providers] = ProviderMetadata.new(path, md[:template]).read md[:providers].each do |p| p[:build_time] = buildtime p[:build_cpus] = cpus unless cpus.nil? @@ -87,7 +96,7 @@ def write_final_metadata(template, buildtime) end if dry_run - banner('(Dry run) Metadata file contents would be something similar to:') + banner("(Dry run) Metadata file would be written to #{filename} with content similar to:") puts JSON.pretty_generate(md) else File.binwrite(filename, JSON.pretty_generate(md)) diff --git a/lib/bento/version.rb b/lib/bento/version.rb index dfdcdfa2b..03d12b2f2 100644 --- a/lib/bento/version.rb +++ b/lib/bento/version.rb @@ -1,3 +1,3 @@ module Bento - VERSION = '3.1.0'.freeze + VERSION = '3.1.1'.freeze end diff --git a/os_pkrvars/debian/debian-11-aarch64.pkrvars.hcl b/os_pkrvars/debian/debian-11-aarch64.pkrvars.hcl index 9920c5fea..cf5dfbab2 100644 --- a/os_pkrvars/debian/debian-11-aarch64.pkrvars.hcl +++ b/os_pkrvars/debian/debian-11-aarch64.pkrvars.hcl @@ -1,8 +1,8 @@ os_name = "debian" os_version = "11.7" os_arch = "aarch64" -iso_url = "https://cdimage.debian.org/debian-cd/current/arm64/iso-dvd/debian-11.7.0-arm64-DVD-1.iso" -iso_checksum = "file:https://cdimage.debian.org/debian-cd/current/arm64/iso-dvd/SHA256SUMS" +iso_url = "https://cdimage.debian.org/cdimage/archive/latest-oldstable/arm64/iso-dvd/debian-11.7.0-arm64-DVD-1.iso" +iso_checksum = "file:https://cdimage.debian.org/cdimage/archive/latest-oldstable/arm64/iso-dvd/SHA256SUMS" parallels_guest_os_type = "debian" vbox_guest_os_type = "Debian_64" vmware_guest_os_type = "arm-debian-64" diff --git a/os_pkrvars/debian/debian-11-x86_64.pkrvars.hcl b/os_pkrvars/debian/debian-11-x86_64.pkrvars.hcl index bf7474dfb..989e2875e 100644 --- a/os_pkrvars/debian/debian-11-x86_64.pkrvars.hcl +++ b/os_pkrvars/debian/debian-11-x86_64.pkrvars.hcl @@ -1,8 +1,8 @@ os_name = "debian" os_version = "11.7" os_arch = "x86_64" -iso_url = "https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.7.0-amd64-DVD-1.iso" -iso_checksum = "file:https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/SHA256SUMS" +iso_url = "https://cdimage.debian.org/cdimage/archive/latest-oldstable/amd64/iso-dvd/debian-11.7.0-amd64-DVD-1.iso" +iso_checksum = "file:https://cdimage.debian.org/cdimage/archive/latest-oldstable/amd64/iso-dvd/SHA256SUMS" parallels_guest_os_type = "debian" vbox_guest_os_type = "Debian_64" vmware_guest_os_type = "debian-64" diff --git a/os_pkrvars/opensuse/opensuse-leap-15-aarch64.pkrvars.hcl b/os_pkrvars/opensuse/opensuse-leap-15-aarch64.pkrvars.hcl index 560a0d503..ae1d00738 100644 --- a/os_pkrvars/opensuse/opensuse-leap-15-aarch64.pkrvars.hcl +++ b/os_pkrvars/opensuse/opensuse-leap-15-aarch64.pkrvars.hcl @@ -1,9 +1,9 @@ os_name = "opensuse" -os_version = "15.4" +os_version = "15.5" os_arch = "aarch64" -iso_url = "http://provo-mirror.opensuse.org/distribution/leap/15.4/iso/openSUSE-Leap-15.4-DVD-aarch64-Media.iso" -iso_checksum = "d87f79b2b723f9baaeedd9e2be0365c04081e51a4f7f7f08c7ab3eee0c3e0fae" +iso_url = "http://provo-mirror.opensuse.org/distribution/leap/15.5/iso/openSUSE-Leap-15.5-DVD-aarch64-Media.iso" +iso_checksum = "file:https://provo-mirror.opensuse.org/distribution/leap/15.5/iso/openSUSE-Leap-15.5-DVD-aarch64-Media.iso.sha256" parallels_guest_os_type = "opensuse" vbox_guest_os_type = "OpenSUSE_64" -vmware_guest_os_type = "arm-other5xlinux-64" +vmware_guest_os_type = "arm-opensuse-64" boot_command = ["e biosdevname=0 net.ifnames=0 netdevice=eth0 netsetup=dhcp lang=en_US textmode=1 modprobe.blacklist=vmwgfx autoyast=http://{{ .HTTPIP }}:{{ .HTTPPort }}/opensuse/autoinst-uefi.xml"] diff --git a/os_pkrvars/opensuse/opensuse-leap-15-x86_64.pkrvars.hcl b/os_pkrvars/opensuse/opensuse-leap-15-x86_64.pkrvars.hcl index eb5e3169b..487b637bf 100644 --- a/os_pkrvars/opensuse/opensuse-leap-15-x86_64.pkrvars.hcl +++ b/os_pkrvars/opensuse/opensuse-leap-15-x86_64.pkrvars.hcl @@ -1,8 +1,8 @@ os_name = "opensuse" -os_version = "15.4" +os_version = "15.5" os_arch = "x86_64" -iso_url = "http://sfo-korg-mirror.kernel.org/opensuse/distribution/leap/15.4/iso/openSUSE-Leap-15.4-DVD-x86_64-Media.iso" -iso_checksum = "4683345f242397c7fd7d89a50731a120ffd60a24460e21d2634e783b3c169695" +iso_url = "http://sfo-korg-mirror.kernel.org/opensuse/distribution/leap/15.5/iso/openSUSE-Leap-15.5-DVD-x86_64-Media.iso" +iso_checksum = "file:http://sfo-korg-mirror.kernel.org/opensuse/distribution/leap/15.5/iso/openSUSE-Leap-15.5-DVD-x86_64-Media.iso.sha256" parallels_guest_os_type = "opensuse" vbox_guest_os_type = "OpenSUSE_64" vmware_guest_os_type = "opensuse-64" diff --git a/os_pkrvars/springdalelinux/springdalelinux-8-x86_64.pkrvars.hcl b/os_pkrvars/springdalelinux/springdalelinux-8-x86_64.pkrvars.hcl index 779e07f5f..443cd96ce 100644 --- a/os_pkrvars/springdalelinux/springdalelinux-8-x86_64.pkrvars.hcl +++ b/os_pkrvars/springdalelinux/springdalelinux-8-x86_64.pkrvars.hcl @@ -1,8 +1,8 @@ os_name = "springdalelinux" -os_version = "8.7" +os_version = "8.8" os_arch = "x86_64" -iso_url = "http://springdale.princeton.edu/data/springdale/8/x86_64/iso/Springdale%20Linux-8.7-x86_64-netinst.iso" -iso_checksum = "7535d3eadf5d60d12a026ccaf5f1235c660cc985bc1e8b7502a99fd0389407f8" +iso_url = "http://springdale.princeton.edu/data/springdale/8/x86_64/iso/Springdale%20Linux-8.8-x86_64-netinst.iso" +iso_checksum = "8bd617eb9fb050387fdf5abd9445722a1ef247523f2aa66d9cd9f952fbc9f6ff" parallels_guest_os_type = "centos" vbox_guest_os_type = "RedHat_64" vmware_guest_os_type = "centos-64" diff --git a/os_pkrvars/springdalelinux/springdalelinux-9-x86_64.pkrvars.hcl b/os_pkrvars/springdalelinux/springdalelinux-9-x86_64.pkrvars.hcl index 16fe6ce5d..22c7d987c 100644 --- a/os_pkrvars/springdalelinux/springdalelinux-9-x86_64.pkrvars.hcl +++ b/os_pkrvars/springdalelinux/springdalelinux-9-x86_64.pkrvars.hcl @@ -1,8 +1,8 @@ os_name = "springdalelinux" -os_version = "9.1" +os_version = "9.2" os_arch = "x86_64" -iso_url = "http://springdale.princeton.edu/data/springdale/9/x86_64/iso/Springdale%20Linux-9.1-x86_64-netinst.iso" -iso_checksum = "a282a61dfd9ac587aa635688ec3eae8ac95524094dac0355543c3c0f6df84253" +iso_url = "http://springdale.princeton.edu/data/springdale/9/x86_64/iso/Springdale%20Linux-9.2-x86_64-netinst.iso" +iso_checksum = "88138260fec7898decf421fe0ae53953f9512c68009dd24cbd897ce226c6295d" parallels_guest_os_type = "centos" vbox_guest_os_type = "RedHat_64" vmware_guest_os_type = "centos-64" diff --git a/packer_templates/pkr-builder.pkr.hcl b/packer_templates/pkr-builder.pkr.hcl index eb6a86924..0277cfd41 100644 --- a/packer_templates/pkr-builder.pkr.hcl +++ b/packer_templates/pkr-builder.pkr.hcl @@ -11,7 +11,7 @@ packer { } parallels = { version = ">= 1.0.1" - source = "github.com/hashicorp/parallels" + source = "github.com/parallels/parallels" } qemu = { version = ">= 1.0.8" @@ -26,9 +26,14 @@ packer { source = "github.com/hashicorp/virtualbox" } vmware = { - version = ">= 1.0.8" - source = "github.com/hashicorp/vmware" + version = ">= 1.0.9" + source = "github.com/Stromweld/vmware" } + # Temp switch till bug fix for x86 tools location is fixed + # vmware = { + # version = ">= 1.0.8" + # source = "github.com/hashicorp/vmware" + # } windows-update = { version = ">= 0.14.1" source = "github.com/rgl/windows-update" diff --git a/packer_templates/pkr-sources.pkr.hcl b/packer_templates/pkr-sources.pkr.hcl index ca1904f2b..c2035e1b4 100644 --- a/packer_templates/pkr-sources.pkr.hcl +++ b/packer_templates/pkr-sources.pkr.hcl @@ -65,6 +65,12 @@ locals { ) : var.vbox_source # vmware-iso + vmware_tools_upload_flavor = var.vmware_tools_upload_flavor == null ? ( + var.is_windows ? "windows" : "linux" + ) : var.vmware_tools_upload_flavor + vmware_tools_upload_path = var.vmware_tools_upload_path == null ? ( + var.is_windows ? "c:\\vmware-tools.iso" : "/tmp/vmware-tools.iso" + ) : var.vmware_tools_upload_path # Source block common boot_wait = var.boot_wait == null ? ( @@ -258,8 +264,8 @@ source "vmware-iso" "vm" { guest_os_type = var.vmware_guest_os_type network = var.vmware_network network_adapter_type = var.vmware_network_adapter_type - tools_upload_flavor = var.vmware_tools_upload_flavor - tools_upload_path = var.vmware_tools_upload_path + tools_upload_flavor = local.vmware_tools_upload_flavor + tools_upload_path = local.vmware_tools_upload_path usb = var.vmware_enable_usb version = var.vmware_version vmx_data = var.vmware_vmx_data diff --git a/packer_templates/pkr-variables.pkr.hcl b/packer_templates/pkr-variables.pkr.hcl index 6de55b7f4..5f67e0e8f 100644 --- a/packer_templates/pkr-variables.pkr.hcl +++ b/packer_templates/pkr-variables.pkr.hcl @@ -205,8 +205,10 @@ variable "vmware_version" { variable "vmware_vmx_data" { type = map(string) default = { - "cpuid.coresPerSocket" = "1" + "cpuid.coresPerSocket" = "2" "ethernet0.pciSlotNumber" = "32" + "svga.autodetect" = true + "usb_xhci.present" = true } } variable "vmware_vmx_remove_ethernet_interfaces" { diff --git a/packer_templates/scripts/windows/provision.ps1 b/packer_templates/scripts/windows/provision.ps1 index 1fd0979ed..99a4052c4 100644 --- a/packer_templates/scripts/windows/provision.ps1 +++ b/packer_templates/scripts/windows/provision.ps1 @@ -83,9 +83,13 @@ if ($systemVendor -eq 'QEMU') { } elseif ($systemVendor -eq 'Microsoft Corporation') { # do nothing. Hyper-V enlightments are already bundled with Windows. } elseif ($systemVendor -eq 'VMware, Inc.') { + Write-Host 'Mounting VMware Tools ISO...' + Mount-DiskImage -ImagePath C:\\vmware-tools.iso -PassThru | Get-Volume | Set-Volume -DriveLetter B + Write-Host 'Installing VMware Tools...' + Start-Process -Wait -FilePath D:\\setup.exe -ArgumentList '/s' Write-Output 'Installing VMware Tools...' # silent install without rebooting. - E:\setup64.exe /s /v '/qn reboot=r'| Out-String -Stream + B:\setup64.exe /s /v '/qn reboot=r'| Out-String -Stream } elseif ($systemVendor -eq 'Parallels Software International Inc.') { Write-Host 'Installing the Parallels Tools for Guest VM...' E:\PTAgent.exe /install_silent | Out-String -Stream