From fd8131cb86714b450334508abc0891eeaa2da9c8 Mon Sep 17 00:00:00 2001 From: Noel Georgi Date: Wed, 26 Feb 2025 21:01:57 +0530 Subject: [PATCH] feat: generate unified installer Generate `installer` from `imager` so installer always have UKI's. Push `installer-base` which just contains base tools to install. Fixes: #10188 Fixes: #10323 Signed-off-by: Noel Georgi --- .github/workflows/ci.yaml | 63 ++--- .github/workflows/integration-aws-cron.yaml | 4 +- .../integration-aws-nvidia-nonfree-cron.yaml | 4 +- .../integration-aws-nvidia-oss-cron.yaml | 4 +- .github/workflows/integration-azure-cron.yaml | 4 +- .../workflows/integration-cilium-cron.yaml | 4 +- .../integration-conformance-cron.yaml | 4 +- .../integration-extensions-cron.yaml | 4 +- .github/workflows/integration-gcp-cron.yaml | 4 +- .../integration-image-factory-cron.yaml | 4 +- .../workflows/integration-images-cron.yaml | 4 +- .../workflows/integration-misc-0-cron.yaml | 4 +- .../workflows/integration-misc-1-cron.yaml | 4 +- .../workflows/integration-misc-2-cron.yaml | 4 +- .../workflows/integration-misc-3-cron.yaml | 4 +- .../workflows/integration-misc-4-cron.yaml | 4 +- .../integration-provision-0-cron.yaml | 4 +- .../integration-provision-1-cron.yaml | 4 +- .../integration-provision-2-cron.yaml | 4 +- .github/workflows/integration-qemu-cron.yaml | 4 +- .../integration-qemu-csi-longhorn-cron.yaml | 4 +- .../integration-qemu-csi-openebs-cron.yaml | 4 +- .../integration-qemu-csi-rook-ceph-cron.yaml | 4 +- .../integration-qemu-encrypted-vip-cron.yaml | 4 +- .../workflows/integration-qemu-race-cron.yaml | 6 +- .../integration-trusted-boot-cron.yaml | 4 +- .kres.yaml | 61 ++--- Dockerfile | 161 +++++++++---- Makefile | 226 ++++++++++-------- hack/release.toml | 2 +- hack/test/e2e-qemu.sh | 2 - pkg/imager/out.go | 8 + pkg/imager/post.go | 58 ++++- pkg/imager/profile/input.go | 4 + pkg/imager/profile/output.go | 4 +- .../profile/testdata/akamai-amd64-1.10.0.yaml | 2 +- .../profile/testdata/akamai-arm64-1.10.0.yaml | 2 +- .../profile/testdata/aws-amd64-1.10.0.yaml | 2 +- .../profile/testdata/aws-arm64-1.10.0.yaml | 2 +- .../profile/testdata/azure-amd64-1.10.0.yaml | 2 +- .../profile/testdata/azure-arm64-1.10.0.yaml | 2 +- .../testdata/cloudstack-amd64-1.10.0.yaml | 2 +- .../testdata/cloudstack-arm64-1.10.0.yaml | 2 +- .../testdata/digital-ocean-amd64-1.10.0.yaml | 2 +- .../testdata/digital-ocean-arm64-1.10.0.yaml | 2 +- .../testdata/exoscale-amd64-1.10.0.yaml | 2 +- .../testdata/exoscale-arm64-1.10.0.yaml | 2 +- .../profile/testdata/gcp-amd64-1.10.0.yaml | 2 +- .../profile/testdata/gcp-arm64-1.10.0.yaml | 2 +- .../profile/testdata/hcloud-amd64-1.10.0.yaml | 2 +- .../profile/testdata/hcloud-arm64-1.10.0.yaml | 2 +- .../testdata/installer-amd64-1.10.0.yaml | 2 +- .../testdata/installer-arm64-1.10.0.yaml | 2 +- .../profile/testdata/iso-amd64-1.10.0.yaml | 2 +- .../profile/testdata/iso-arm64-1.10.0.yaml | 2 +- .../profile/testdata/metal-amd64-1.10.0.yaml | 2 +- .../profile/testdata/metal-arm64-1.10.0.yaml | 2 +- .../testdata/metal-uki-amd64-1.10.0.yaml | 2 +- .../testdata/metal-uki-arm64-1.10.0.yaml | 2 +- .../testdata/nocloud-amd64-1.10.0.yaml | 2 +- .../testdata/nocloud-arm64-1.10.0.yaml | 2 +- .../testdata/opennebula-amd64-1.10.0.yaml | 2 +- .../testdata/opennebula-arm64-1.10.0.yaml | 2 +- .../testdata/openstack-amd64-1.10.0.yaml | 2 +- .../testdata/openstack-arm64-1.10.0.yaml | 2 +- .../profile/testdata/oracle-amd64-1.10.0.yaml | 2 +- .../profile/testdata/oracle-arm64-1.10.0.yaml | 2 +- .../testdata/scaleway-amd64-1.10.0.yaml | 2 +- .../testdata/scaleway-arm64-1.10.0.yaml | 2 +- .../secureboot-installer-amd64-1.10.0.yaml | 2 +- .../secureboot-installer-arm64-1.10.0.yaml | 2 +- .../testdata/secureboot-iso-amd64-1.10.0.yaml | 2 +- .../testdata/secureboot-iso-arm64-1.10.0.yaml | 2 +- .../secureboot-metal-amd64-1.10.0.yaml | 2 +- .../secureboot-metal-arm64-1.10.0.yaml | 2 +- .../secureboot-metal-uki-amd64-1.10.0.yaml | 2 +- .../secureboot-metal-uki-arm64-1.10.0.yaml | 2 +- .../testdata/upcloud-amd64-1.10.0.yaml | 2 +- .../testdata/upcloud-arm64-1.10.0.yaml | 2 +- .../profile/testdata/vmware-amd64-1.10.0.yaml | 2 +- .../profile/testdata/vmware-arm64-1.10.0.yaml | 2 +- .../profile/testdata/vultr-amd64-1.10.0.yaml | 2 +- .../profile/testdata/vultr-arm64-1.10.0.yaml | 2 +- pkg/machinery/constants/constants.go | 2 +- pkg/machinery/gendata/data/pkgs | 2 +- pkg/machinery/gendata/data/tools | 1 + pkg/machinery/imager/quirks/quirks.go | 12 + .../vm/internal/ipxe/data/ipxe/amd64/snp.efi | Bin 259584 -> 259584 bytes .../vm/internal/ipxe/data/ipxe/arm64/snp.efi | Bin 285696 -> 286208 bytes 89 files changed, 496 insertions(+), 308 deletions(-) create mode 100644 pkg/machinery/gendata/data/tools diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 01837780e..d45dae657 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2025-02-16T17:00:53Z by kres 8a48729. +# Generated on 2025-02-27T15:41:51Z by kres 1281806. name: default concurrency: @@ -92,7 +92,7 @@ jobs: PLATFORM: linux/amd64,linux/arm64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: lint run: | make lint @@ -107,6 +107,7 @@ jobs: - name: images-essential env: IMAGE_REGISTRY: registry.dev.siderolabs.io + IMAGER_ARGS: --extra-kernel-arg=console=ttyS0 PLATFORM: linux/amd64,linux/arm64 run: | make images-essential @@ -442,7 +443,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -576,7 +577,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -730,7 +731,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -880,7 +881,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -1005,7 +1006,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -1133,7 +1134,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: images env: IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -1215,7 +1216,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -1313,7 +1314,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -1447,7 +1448,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -1666,7 +1667,7 @@ jobs: PLATFORM: linux/amd64,linux/arm64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -1848,7 +1849,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -1931,7 +1932,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -2058,7 +2059,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -2186,7 +2187,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -2332,7 +2333,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -2442,7 +2443,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -2571,7 +2572,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -2666,7 +2667,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -2761,7 +2762,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -2856,7 +2857,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -2958,7 +2959,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -3091,7 +3092,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -3199,7 +3200,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -3306,7 +3307,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -3404,7 +3405,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -3417,7 +3418,7 @@ jobs: TAG_SUFFIX: -race WITH_RACE: "1" run: | - make initramfs installer + make initramfs installer-base - name: e2e-qemu-race env: GITHUB_STEP_NAME: ${{ github.job}}-e2e-qemu-race @@ -3588,7 +3589,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -3680,7 +3681,7 @@ jobs: env: PLATFORM: linux/amd64,linux/arm64 run: | - make talosctl-all kernel sd-boot sd-stub initramfs installer imager talos + make talosctl-all kernel sd-boot sd-stub initramfs installer-base imager talos - name: release-notes run: | make release-notes @@ -3760,7 +3761,7 @@ jobs: env: PLATFORM: linux/amd64,linux/arm64 run: | - make talosctl-all kernel sd-boot sd-stub initramfs installer imager talos talosctl-cni-bundle + make talosctl-all kernel sd-boot sd-stub initramfs installer-base imager talos talosctl-cni-bundle - name: release-notes run: | make release-notes diff --git a/.github/workflows/integration-aws-cron.yaml b/.github/workflows/integration-aws-cron.yaml index f799c9065..6a042022f 100644 --- a/.github/workflows/integration-aws-cron.yaml +++ b/.github/workflows/integration-aws-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-09-09T13:58:35Z by kres 8be5fa7. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-aws-cron concurrency: @@ -85,7 +85,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-aws-nvidia-nonfree-cron.yaml b/.github/workflows/integration-aws-nvidia-nonfree-cron.yaml index d843421b4..e8ff0afa1 100644 --- a/.github/workflows/integration-aws-nvidia-nonfree-cron.yaml +++ b/.github/workflows/integration-aws-nvidia-nonfree-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-09-09T13:58:35Z by kres 8be5fa7. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-aws-nvidia-nonfree-cron concurrency: @@ -89,7 +89,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-aws-nvidia-oss-cron.yaml b/.github/workflows/integration-aws-nvidia-oss-cron.yaml index f8129ef42..9fba4cedc 100644 --- a/.github/workflows/integration-aws-nvidia-oss-cron.yaml +++ b/.github/workflows/integration-aws-nvidia-oss-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-09-09T13:58:35Z by kres 8be5fa7. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-aws-nvidia-oss-cron concurrency: @@ -89,7 +89,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-azure-cron.yaml b/.github/workflows/integration-azure-cron.yaml index e67b2127e..f35b70a6b 100644 --- a/.github/workflows/integration-azure-cron.yaml +++ b/.github/workflows/integration-azure-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-09-09T13:58:35Z by kres 8be5fa7. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-azure-cron concurrency: @@ -85,7 +85,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-cilium-cron.yaml b/.github/workflows/integration-cilium-cron.yaml index 2169ca686..e47ee22c8 100644 --- a/.github/workflows/integration-cilium-cron.yaml +++ b/.github/workflows/integration-cilium-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-12-04T11:25:05Z by kres 232fe63. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-cilium-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-conformance-cron.yaml b/.github/workflows/integration-conformance-cron.yaml index 0f5922eae..fcb9d08d8 100644 --- a/.github/workflows/integration-conformance-cron.yaml +++ b/.github/workflows/integration-conformance-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-12-04T11:25:05Z by kres 232fe63. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-conformance-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-extensions-cron.yaml b/.github/workflows/integration-extensions-cron.yaml index 15b871f42..785019e8f 100644 --- a/.github/workflows/integration-extensions-cron.yaml +++ b/.github/workflows/integration-extensions-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-12-04T12:34:25Z by kres 232fe63. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-extensions-cron concurrency: @@ -77,7 +77,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-gcp-cron.yaml b/.github/workflows/integration-gcp-cron.yaml index 91464ef46..e4a4fb648 100644 --- a/.github/workflows/integration-gcp-cron.yaml +++ b/.github/workflows/integration-gcp-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-09-09T13:58:35Z by kres 8be5fa7. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-gcp-cron concurrency: @@ -85,7 +85,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-image-factory-cron.yaml b/.github/workflows/integration-image-factory-cron.yaml index 8bf1fdde5..4dfd80f5e 100644 --- a/.github/workflows/integration-image-factory-cron.yaml +++ b/.github/workflows/integration-image-factory-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-11-28T13:53:18Z by kres 232fe63. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-image-factory-cron concurrency: @@ -79,7 +79,7 @@ jobs: PLATFORM: linux/amd64,linux/arm64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-images-cron.yaml b/.github/workflows/integration-images-cron.yaml index 883e75d02..b1dd61f87 100644 --- a/.github/workflows/integration-images-cron.yaml +++ b/.github/workflows/integration-images-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-09-09T13:58:35Z by kres 8be5fa7. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-images-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-misc-0-cron.yaml b/.github/workflows/integration-misc-0-cron.yaml index 89941fe26..2cf7e43e0 100644 --- a/.github/workflows/integration-misc-0-cron.yaml +++ b/.github/workflows/integration-misc-0-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2025-02-15T06:21:12Z by kres 8a48729. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-misc-0-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-misc-1-cron.yaml b/.github/workflows/integration-misc-1-cron.yaml index 96b578831..af52acaa0 100644 --- a/.github/workflows/integration-misc-1-cron.yaml +++ b/.github/workflows/integration-misc-1-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-12-24T15:00:58Z by kres fcff05e. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-misc-1-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-misc-2-cron.yaml b/.github/workflows/integration-misc-2-cron.yaml index 2b35175be..a88175380 100644 --- a/.github/workflows/integration-misc-2-cron.yaml +++ b/.github/workflows/integration-misc-2-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2025-02-15T07:52:36Z by kres 8a48729. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-misc-2-cron concurrency: @@ -79,7 +79,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-misc-3-cron.yaml b/.github/workflows/integration-misc-3-cron.yaml index be5b4d79d..7dbb6730c 100644 --- a/.github/workflows/integration-misc-3-cron.yaml +++ b/.github/workflows/integration-misc-3-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-12-10T11:14:00Z by kres 8183c20. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-misc-3-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-misc-4-cron.yaml b/.github/workflows/integration-misc-4-cron.yaml index 651ae7417..22e38c2c0 100644 --- a/.github/workflows/integration-misc-4-cron.yaml +++ b/.github/workflows/integration-misc-4-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-11-28T13:53:18Z by kres 232fe63. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-misc-4-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-provision-0-cron.yaml b/.github/workflows/integration-provision-0-cron.yaml index 2b8f1557a..c733601f7 100644 --- a/.github/workflows/integration-provision-0-cron.yaml +++ b/.github/workflows/integration-provision-0-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-11-28T12:57:52Z by kres 232fe63. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-provision-0-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-provision-1-cron.yaml b/.github/workflows/integration-provision-1-cron.yaml index d19ee0085..e6eca2d72 100644 --- a/.github/workflows/integration-provision-1-cron.yaml +++ b/.github/workflows/integration-provision-1-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-11-28T12:57:52Z by kres 232fe63. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-provision-1-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-provision-2-cron.yaml b/.github/workflows/integration-provision-2-cron.yaml index 24522b85a..92b7c5b22 100644 --- a/.github/workflows/integration-provision-2-cron.yaml +++ b/.github/workflows/integration-provision-2-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-11-28T12:57:52Z by kres 232fe63. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-provision-2-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-qemu-cron.yaml b/.github/workflows/integration-qemu-cron.yaml index 664b39787..3e4f84192 100644 --- a/.github/workflows/integration-qemu-cron.yaml +++ b/.github/workflows/integration-qemu-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2025-02-16T17:00:53Z by kres 8a48729. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-qemu-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-qemu-csi-longhorn-cron.yaml b/.github/workflows/integration-qemu-csi-longhorn-cron.yaml index 836632859..6e579cca0 100644 --- a/.github/workflows/integration-qemu-csi-longhorn-cron.yaml +++ b/.github/workflows/integration-qemu-csi-longhorn-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2025-01-22T17:37:55Z by kres 3075de9. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-qemu-csi-longhorn-cron concurrency: @@ -77,7 +77,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-qemu-csi-openebs-cron.yaml b/.github/workflows/integration-qemu-csi-openebs-cron.yaml index dc8d4a47d..4d8e3bdf7 100644 --- a/.github/workflows/integration-qemu-csi-openebs-cron.yaml +++ b/.github/workflows/integration-qemu-csi-openebs-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2025-01-22T14:23:24Z by kres 3075de9. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-qemu-csi-openebs-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-qemu-csi-rook-ceph-cron.yaml b/.github/workflows/integration-qemu-csi-rook-ceph-cron.yaml index 3b3d8c86b..cb9167758 100644 --- a/.github/workflows/integration-qemu-csi-rook-ceph-cron.yaml +++ b/.github/workflows/integration-qemu-csi-rook-ceph-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2025-01-22T14:23:24Z by kres 3075de9. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-qemu-csi-rook-ceph-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-qemu-encrypted-vip-cron.yaml b/.github/workflows/integration-qemu-encrypted-vip-cron.yaml index 39a76a0ec..509962ee0 100644 --- a/.github/workflows/integration-qemu-encrypted-vip-cron.yaml +++ b/.github/workflows/integration-qemu-encrypted-vip-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-11-28T12:57:52Z by kres 232fe63. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-qemu-encrypted-vip-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.github/workflows/integration-qemu-race-cron.yaml b/.github/workflows/integration-qemu-race-cron.yaml index a24f79718..206e33fa1 100644 --- a/.github/workflows/integration-qemu-race-cron.yaml +++ b/.github/workflows/integration-qemu-race-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-12-25T15:13:54Z by kres fcff05e. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-qemu-race-cron concurrency: @@ -73,7 +73,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | @@ -86,7 +86,7 @@ jobs: TAG_SUFFIX: -race WITH_RACE: "1" run: | - make initramfs installer + make initramfs installer-base - name: e2e-qemu-race env: GITHUB_STEP_NAME: ${{ github.job}}-e2e-qemu-race diff --git a/.github/workflows/integration-trusted-boot-cron.yaml b/.github/workflows/integration-trusted-boot-cron.yaml index 684e5d4f9..838ea9d2a 100644 --- a/.github/workflows/integration-trusted-boot-cron.yaml +++ b/.github/workflows/integration-trusted-boot-cron.yaml @@ -1,6 +1,6 @@ # THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT. # -# Generated on 2024-11-28T13:53:18Z by kres 232fe63. +# Generated on 2025-02-26T15:23:43Z by kres 1281806. name: integration-trusted-boot-cron concurrency: @@ -79,7 +79,7 @@ jobs: PLATFORM: linux/amd64 PUSH: "true" run: | - make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 - name: talosctl-cni-bundle if: github.event_name == 'schedule' run: | diff --git a/.kres.yaml b/.kres.yaml index 1b3370f49..aa4fb9bee 100644 --- a/.kres.yaml +++ b/.kres.yaml @@ -102,7 +102,7 @@ spec: PLATFORM: linux/amd64 - name: check-dirty - name: build - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64,linux/arm64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -116,6 +116,7 @@ spec: - name: images-essential environment: PLATFORM: linux/amd64,linux/arm64 + IMAGER_ARGS: "--extra-kernel-arg=console=ttyS0" IMAGE_REGISTRY: registry.dev.siderolabs.io - name: unit-tests - name: unit-tests-race @@ -142,7 +143,7 @@ spec: - not-on-tag steps: - name: build - command: talosctl-all kernel sd-boot sd-stub initramfs installer imager talos + command: talosctl-all kernel sd-boot sd-stub initramfs installer-base imager talos environment: PLATFORM: linux/amd64,linux/arm64 - name: release-notes @@ -168,7 +169,7 @@ spec: - only-on-tag steps: - name: build - command: talosctl-all kernel sd-boot sd-stub initramfs installer imager talos talosctl-cni-bundle + command: talosctl-all kernel sd-boot sd-stub initramfs installer-base imager talos talosctl-cni-bundle environment: PLATFORM: linux/amd64,linux/arm64 - name: release-notes @@ -320,7 +321,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -375,7 +376,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -432,7 +433,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -500,7 +501,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -551,7 +552,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -602,7 +603,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -653,7 +654,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -738,7 +739,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -824,7 +825,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -928,7 +929,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -997,7 +998,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -1087,7 +1088,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -1167,7 +1168,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -1247,7 +1248,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -1302,7 +1303,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -1311,7 +1312,7 @@ spec: conditions: - only-on-schedule - name: build-race - command: initramfs installer + command: initramfs installer-base environment: PUSH: true TAG_SUFFIX: -race @@ -1368,7 +1369,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -1438,7 +1439,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -1528,7 +1529,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -1594,7 +1595,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -1657,7 +1658,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -1751,7 +1752,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64,linux/arm64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -1896,7 +1897,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -1971,7 +1972,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -2068,7 +2069,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -2162,7 +2163,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io @@ -2241,7 +2242,7 @@ spec: - name: build conditions: - only-on-schedule - command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64 + command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer-base imager talos _out/integration-test-linux-amd64 environment: PLATFORM: linux/amd64 IMAGE_REGISTRY: registry.dev.siderolabs.io diff --git a/Dockerfile b/Dockerfile index 452d52fdb..ecce932bf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,42 +9,59 @@ ARG INSTALLER_ARCH=scratch ARG DEBUG_TOOLS_SOURCE=scratch ARG PKGS_PREFIX=scratch -ARG PKG_FHS=scratch +ARG TOOLS_PREFIX=scratch + +ARG PKG_APPARMOR=scratch ARG PKG_CA_CERTIFICATES=scratch -ARG PKG_CRYPTSETUP=scratch +ARG PKG_CNI=scratch ARG PKG_CONTAINERD=scratch +ARG PKG_CPIO=scratch +ARG PKG_CRYPTSETUP=scratch ARG PKG_DOSFSTOOLS=scratch ARG PKG_E2FSPROGS=scratch -ARG PKG_SYSTEMD_UDEVD=scratch -ARG PKG_LIBCAP=scratch +ARG PKG_FHS=scratch +ARG PKG_FLANNEL_CNI=scratch +ARG PKG_GLIB=scratch ARG PKG_GRUB=scratch -ARG PKG_SD_BOOT=scratch ARG PKG_IPTABLES=scratch ARG PKG_IPXE=scratch +ARG PKG_KERNEL=scratch +ARG PKG_KMOD=scratch +ARG PKG_LIBAIO=scratch +ARG PKG_LIBATTR=scratch +ARG PKG_LIBBURN=scratch +ARG PKG_LIBCAP=scratch ARG PKG_LIBINIH=scratch +ARG PKG_LIBISOBURN=scratch +ARG PKG_LIBISOFS=scratch ARG PKG_LIBJSON_C=scratch +ARG PKG_LIBLZMA=scratch ARG PKG_LIBMNL=scratch ARG PKG_LIBNFTNL=scratch ARG PKG_LIBPOPT=scratch -ARG PKG_LIBSEPOL=scratch -ARG PKG_LIBSELINUX=scratch -ARG PKG_PCRE2=scratch -ARG PKG_LIBURCU=scratch -ARG PKG_OPENSSL=scratch ARG PKG_LIBSECCOMP=scratch +ARG PKG_LIBSELINUX=scratch +ARG PKG_LIBSEPOL=scratch +ARG PKG_LIBURCU=scratch ARG PKG_LINUX_FIRMWARE=scratch ARG PKG_LVM2=scratch -ARG PKG_LIBAIO=scratch +ARG PKG_MTOOLS=scratch ARG PKG_MUSL=scratch +ARG PKG_OPENSSL=scratch +ARG PKG_PCRE2=scratch +ARG PKG_PIGZ=scratch +ARG PKG_QEMU_TOOLS=scratch ARG PKG_RUNC=scratch -ARG PKG_XFSPROGS=scratch -ARG PKG_APPARMOR=scratch -ARG PKG_UTIL_LINUX=scratch -ARG PKG_KMOD=scratch -ARG PKG_KERNEL=scratch -ARG PKG_CNI=scratch -ARG PKG_FLANNEL_CNI=scratch +ARG PKG_SD_BOOT=scratch +ARG PKG_SQUASHFS_TOOLS=scratch +ARG PKG_SYSTEMD_UDEVD=scratch ARG PKG_TALOSCTL_CNI_BUNDLE=scratch +ARG PKG_TAR=scratch +ARG PKG_UTIL_LINUX=scratch +ARG PKG_XFSPROGS=scratch +ARG PKG_XZ=scratch +ARG PKG_ZLIB=scratch +ARG PKG_ZSTD=scratch ARG DEBUG_TOOLS_SOURCE=scratch @@ -90,6 +107,9 @@ FROM --platform=arm64 ${PKG_IPTABLES} AS pkg-iptables-arm64 FROM --platform=amd64 ${PKG_IPXE} AS pkg-ipxe-amd64 FROM --platform=arm64 ${PKG_IPXE} AS pkg-ipxe-arm64 +FROM --platform=amd64 ${PKG_LIBATTR} AS pkg-libattr-amd64 +FROM --platform=arm64 ${PKG_LIBATTR} AS pkg-libattr-arm64 + FROM --platform=amd64 ${PKG_LIBINIH} AS pkg-libinih-amd64 FROM --platform=arm64 ${PKG_LIBINIH} AS pkg-libinih-arm64 @@ -157,6 +177,31 @@ FROM ${PKG_KERNEL} AS pkg-kernel FROM --platform=amd64 ${PKG_KERNEL} AS pkg-kernel-amd64 FROM --platform=arm64 ${PKG_KERNEL} AS pkg-kernel-arm64 +FROM ${PKG_CPIO} AS pkg-cpio +FROM ${PKG_DOSFSTOOLS} AS pkg-dosfstools +FROM ${PKG_E2FSPROGS} AS pkg-e2fsprogs +FROM ${PKG_GLIB} AS pkg-glib +FROM ${PKG_KMOD} AS pkg-kmod +FROM ${PKG_LIBATTR} AS pkg-libattr +FROM ${PKG_LIBBURN} AS pkg-libburn +FROM ${PKG_LIBINIH} AS pkg-libinih +FROM ${PKG_LIBISOBURN} AS pkg-libisoburn +FROM ${PKG_LIBISOFS} AS pkg-libisofs +FROM ${PKG_LIBLZMA} AS pkg-liblzma +FROM ${PKG_LIBURCU} AS pkg-liburcu +FROM ${PKG_MTOOLS} AS pkg-mtools +FROM ${PKG_MUSL} AS pkg-musl +FROM ${PKG_OPENSSL} AS pkg-openssl +FROM ${PKG_PCRE2} AS pkg-pcre2 +FROM ${PKG_PIGZ} AS pkg-pigz +FROM ${PKG_QEMU_TOOLS} AS pkg-qemu-tools +FROM ${PKG_SQUASHFS_TOOLS} AS pkg-squashfs-tools +FROM ${PKG_TAR} AS pkg-tar +FROM ${PKG_XFSPROGS} AS pkg-xfsprogs +FROM ${PKG_XZ} AS pkg-xz +FROM ${PKG_ZLIB} AS pkg-zlib +FROM ${PKG_ZSTD} AS pkg-zstd + FROM --platform=amd64 ${TOOLS} AS tools-amd64 FROM --platform=arm64 ${TOOLS} AS tools-arm64 @@ -202,7 +247,7 @@ FROM ${PKG_TALOSCTL_CNI_BUNDLE} AS extras-talosctl-cni-bundle # The tools target provides base toolchain for the build. -FROM --platform=${BUILDPLATFORM} $TOOLS AS tools +FROM --platform=${BUILDPLATFORM} ${TOOLS_PREFIX}:${TOOLS} AS tools ENV GOTOOLCHAIN=local ENV CGO_ENABLED=0 SHELL ["/bin/bash", "-c"] @@ -291,6 +336,7 @@ ARG REGISTRY ARG TAG ARG ARTIFACTS ARG PKGS +ARG TOOLS ARG EXTRAS RUN mkdir -p pkg/machinery/gendata/data && \ echo -n ${NAME} > pkg/machinery/gendata/data/name && \ @@ -299,6 +345,7 @@ RUN mkdir -p pkg/machinery/gendata/data && \ echo -n ${REGISTRY} > pkg/machinery/gendata/data/registry && \ echo -n ${EXTRAS} > pkg/machinery/gendata/data/extras && \ echo -n ${PKGS} > pkg/machinery/gendata/data/pkgs && \ + echo -n ${TOOLS} > pkg/machinery/gendata/data/tools && \ echo -n ${TAG} > pkg/machinery/gendata/data/tag && \ echo -n ${ARTIFACTS} > pkg/machinery/gendata/data/artifacts @@ -311,6 +358,7 @@ RUN echo -n "undefined" > pkg/machinery/gendata/data/sha && \ echo -n ${ABBREV_TAG} > pkg/machinery/gendata/data/tag RUN mkdir -p _out && \ echo PKGS=${PKGS} >> _out/talos-metadata && \ + echo TOOLS=${TOOLS} >> _out/talos-metadata && \ echo TAG=${TAG} >> _out/talos-metadata && \ echo EXTRAS=${EXTRAS} >> _out/talos-metadata @@ -684,6 +732,7 @@ COPY --link --from=pkg-e2fsprogs-amd64 / /rootfs COPY --link --from=pkg-systemd-udevd-amd64 / /rootfs COPY --link --from=pkg-libcap-amd64 / /rootfs COPY --link --from=pkg-iptables-amd64 / /rootfs +COPY --link --from=pkg-libattr-amd64 / /rootfs COPY --link --from=pkg-libinih-amd64 / /rootfs COPY --link --from=pkg-libjson-c-amd64 / /rootfs COPY --link --from=pkg-libmnl-amd64 / /rootfs @@ -761,6 +810,7 @@ COPY --link --from=pkg-e2fsprogs-arm64 / /rootfs COPY --link --from=pkg-systemd-udevd-arm64 / /rootfs COPY --link --from=pkg-libcap-arm64 / /rootfs COPY --link --from=pkg-iptables-arm64 / /rootfs +COPY --link --from=pkg-libattr-arm64 / /rootfs COPY --link --from=pkg-libinih-arm64 / /rootfs COPY --link --from=pkg-libjson-c-arm64 / /rootfs COPY --link --from=pkg-libmnl-arm64 / /rootfs @@ -911,9 +961,6 @@ ARG TARGETARCH RUN --mount=type=cache,target=/.cache GOOS=linux GOARCH=${TARGETARCH} go build ${GO_BUILDFLAGS} -ldflags "${GO_LDFLAGS}" -o /installer RUN chmod +x /installer -FROM alpine:3.20.3 AS unicode-pf2 -RUN apk add --no-cache --update --no-scripts grub - FROM scratch AS install-artifacts-amd64 COPY --from=pkg-kernel-amd64 /boot/vmlinuz /usr/install/amd64/vmlinuz COPY --from=initramfs-archive-amd64 /initramfs.xz /usr/install/amd64/initramfs.xz @@ -934,37 +981,67 @@ FROM install-artifacts-${TARGETARCH} AS install-artifacts-targetarch FROM install-artifacts-${INSTALLER_ARCH} AS install-artifacts -FROM alpine:3.20.3 AS installer-image -ARG SOURCE_DATE_EPOCH -ENV SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} -ARG INSTALLER_PKGS -RUN apk add --no-cache --update --no-scripts \ - ${INSTALLER_PKGS} +FROM tools AS installer-image-gen +COPY --from=installer-build /installer /rootfs/usr/bin/installer +RUN ln -s installer /rootfs/usr/bin/imager + +FROM scratch AS installer-base-image ARG TARGETARCH ENV TARGETARCH=${TARGETARCH} -COPY --from=installer-build /installer /bin/installer -COPY --chmod=0644 hack/extra-modules.conf /etc/modules.d/10-extra-modules.conf -COPY --from=pkg-grub / / -COPY --from=pkg-grub-arm64 /usr/lib/grub /usr/lib/grub -COPY --from=pkg-grub-amd64 /usr/lib/grub /usr/lib/grub -COPY --from=unicode-pf2 /usr/share/grub/unicode.pf2 /usr/share/grub/unicode.pf2 -RUN ln /bin/installer /bin/imager -RUN find /bin /etc /lib /usr /sbin | grep -Ev '/etc/hosts|/etc/resolv.conf' \ - | xargs -r touch --date="@${SOURCE_DATE_EPOCH}" --no-dereference +COPY --link --from=pkg-fhs / / +COPY --link --from=pkg-ca-certificates / / +COPY --link --from=pkg-musl / / -FROM scratch AS installer-image-squashed -COPY --from=installer-image / / +COPY --link --from=pkg-cpio / / +COPY --link --from=pkg-dosfstools / / +COPY --link --from=pkg-grub / / +COPY --link --from=pkg-grub-amd64 /usr/lib/grub /usr/lib/grub +COPY --link --from=pkg-grub-arm64 /usr/lib/grub /usr/lib/grub +COPY --link --from=pkg-kmod / / +COPY --link --from=pkg-libattr / / +COPY --link --from=pkg-libinih / / +COPY --link --from=pkg-liblzma / / +COPY --link --from=pkg-liburcu / / +COPY --link --from=pkg-openssl / / +COPY --link --from=pkg-xfsprogs / / +COPY --link --from=installer-image-gen /rootfs / + +FROM scratch AS installer-base-image-squashed +COPY --from=installer-base-image / / + +FROM installer-base-image-squashed AS installer-base ARG TAG ENV VERSION=${TAG} LABEL "alpha.talos.dev/version"="${VERSION}" LABEL org.opencontainers.image.source=https://github.com/siderolabs/talos ENTRYPOINT ["/bin/installer"] -FROM installer-image-squashed AS installer +FROM installer-base-image-squashed AS imager-image +COPY --link --from=pkg-e2fsprogs / / +COPY --link --from=pkg-glib / / +COPY --link --from=pkg-libburn / / +COPY --link --from=pkg-libisoburn / / +COPY --link --from=pkg-libisofs / / +COPY --link --from=pkg-mtools / / +COPY --link --from=pkg-pcre2 / / +COPY --link --from=pkg-pigz / / +COPY --link --from=pkg-qemu-tools / / +COPY --link --from=pkg-squashfs-tools / / +COPY --link --from=pkg-tar / / +COPY --link --from=pkg-xz / / +COPY --link --from=pkg-zlib / / +COPY --link --from=pkg-zstd / / +COPY --chmod=0644 hack/extra-modules.conf /etc/modules.d/10-extra-modules.conf COPY --from=install-artifacts / / -FROM installer-image-squashed AS imager -COPY --from=install-artifacts / / +FROM scratch AS imager-image-squashed +COPY --from=imager-image / / + +FROM imager-image-squashed AS imager +ARG TAG +ENV VERSION=${TAG} +LABEL "alpha.talos.dev/version"="${VERSION}" +LABEL org.opencontainers.image.source=https://github.com/siderolabs/talos ENTRYPOINT ["/bin/imager"] FROM imager AS iso-amd64-build diff --git a/Makefile b/Makefile index 761541390..a650e02c4 100644 --- a/Makefile +++ b/Makefile @@ -17,54 +17,70 @@ ZSTD_COMPRESSION_LEVEL ?= 18 CI_RELEASE_TAG := $(shell git log --oneline --format=%B -n 1 HEAD^2 -- 2>/dev/null | head -n 1 | sed -r "/^release\(.*\)/ s/^release\((.*)\):.*$$/\\1/; t; Q") ARTIFACTS := _out -TOOLS ?= ghcr.io/siderolabs/tools:v1.10.0-alpha.0-14-g46be459 DEBUG_TOOLS_SOURCE := scratch EMBED_TARGET ?= embed +TOOLS_PREFIX ?= ghcr.io/siderolabs/tools +TOOLS ?= v1.10.0-alpha.0-18-gfcee25b PKGS_PREFIX ?= ghcr.io/siderolabs -PKGS ?= v1.10.0-alpha.0-38-g76a0316 +PKGS ?= v1.10.0-alpha.0-47-g6fb00b4 EXTRAS ?= v1.10.0-alpha.0-3-g4102a78 KRES_IMAGE ?= ghcr.io/siderolabs/kres:latest CONFORMANCE_IMAGE ?= ghcr.io/siderolabs/conform:latest -PKG_FHS ?= $(PKGS_PREFIX)/fhs:$(PKGS) -PKG_CA_CERTIFICATES ?= $(PKGS_PREFIX)/ca-certificates:$(PKGS) PKG_APPARMOR ?= $(PKGS_PREFIX)/apparmor:$(PKGS) -PKG_CRYPTSETUP ?= $(PKGS_PREFIX)/cryptsetup:$(PKGS) +PKG_CA_CERTIFICATES ?= $(PKGS_PREFIX)/ca-certificates:$(PKGS) +PKG_CNI ?= $(PKGS_PREFIX)/cni:$(PKGS) PKG_CONTAINERD ?= $(PKGS_PREFIX)/containerd:$(PKGS) +PKG_CPIO ?= $(PKGS_PREFIX)/cpio:$(PKGS) +PKG_CRYPTSETUP ?= $(PKGS_PREFIX)/cryptsetup:$(PKGS) PKG_DOSFSTOOLS ?= $(PKGS_PREFIX)/dosfstools:$(PKGS) PKG_E2FSPROGS ?= $(PKGS_PREFIX)/e2fsprogs:$(PKGS) -PKG_SYSTEMD_UDEVD ?= $(PKGS_PREFIX)/systemd-udevd:$(PKGS) -PKG_LIBCAP ?= $(PKGS_PREFIX)/libcap:$(PKGS) +PKG_FHS ?= $(PKGS_PREFIX)/fhs:$(PKGS) +PKG_FLANNEL_CNI ?= $(PKGS_PREFIX)/flannel-cni:$(PKGS) +PKG_GLIB ?= $(PKGS_PREFIX)/glib:$(PKGS) PKG_GRUB ?= $(PKGS_PREFIX)/grub:$(PKGS) -PKG_SD_BOOT ?= $(PKGS_PREFIX)/sd-boot:$(PKGS) PKG_IPTABLES ?= $(PKGS_PREFIX)/iptables:$(PKGS) PKG_IPXE ?= $(PKGS_PREFIX)/ipxe:$(PKGS) +PKG_KERNEL ?= $(PKGS_PREFIX)/kernel:$(PKGS) +PKG_KMOD ?= $(PKGS_PREFIX)/kmod:$(PKGS) +PKG_LIBAIO ?= $(PKGS_PREFIX)/libaio:$(PKGS) +PKG_LIBATTR ?= $(PKGS_PREFIX)/libattr:$(PKGS) +PKG_LIBBURN ?= $(PKGS_PREFIX)/libburn:$(PKGS) +PKG_LIBCAP ?= $(PKGS_PREFIX)/libcap:$(PKGS) PKG_LIBINIH ?= $(PKGS_PREFIX)/libinih:$(PKGS) +PKG_LIBISOBURN ?= $(PKGS_PREFIX)/libisoburn:$(PKGS) +PKG_LIBISOFS ?= $(PKGS_PREFIX)/libisofs:$(PKGS) PKG_LIBJSON_C ?= $(PKGS_PREFIX)/libjson-c:$(PKGS) +PKG_LIBLZMA ?= $(PKGS_PREFIX)/liblzma:$(PKGS) PKG_LIBMNL ?= $(PKGS_PREFIX)/libmnl:$(PKGS) PKG_LIBNFTNL ?= $(PKGS_PREFIX)/libnftnl:$(PKGS) PKG_LIBPOPT ?= $(PKGS_PREFIX)/libpopt:$(PKGS) -PKG_LIBSEPOL ?= $(PKGS_PREFIX)/libsepol:$(PKGS) -PKG_LIBSELINUX ?= $(PKGS_PREFIX)/libselinux:$(PKGS) -PKG_PCRE2 ?= $(PKGS_PREFIX)/pcre2:$(PKGS) -PKG_LIBURCU ?= $(PKGS_PREFIX)/liburcu:$(PKGS) -PKG_OPENSSL ?= $(PKGS_PREFIX)/openssl:$(PKGS) PKG_LIBSECCOMP ?= $(PKGS_PREFIX)/libseccomp:$(PKGS) +PKG_LIBSELINUX ?= $(PKGS_PREFIX)/libselinux:$(PKGS) +PKG_LIBSEPOL ?= $(PKGS_PREFIX)/libsepol:$(PKGS) +PKG_LIBURCU ?= $(PKGS_PREFIX)/liburcu:$(PKGS) PKG_LINUX_FIRMWARE ?= $(PKGS_PREFIX)/linux-firmware:$(PKGS) PKG_LVM2 ?= $(PKGS_PREFIX)/lvm2:$(PKGS) -PKG_LIBAIO ?= $(PKGS_PREFIX)/libaio:$(PKGS) +PKG_MTOOLS ?= $(PKGS_PREFIX)/mtools:$(PKGS) PKG_MUSL ?= $(PKGS_PREFIX)/musl:$(PKGS) +PKG_OPENSSL ?= $(PKGS_PREFIX)/openssl:$(PKGS) +PKG_PCRE2 ?= $(PKGS_PREFIX)/pcre2:$(PKGS) +PKG_PIGZ ?= $(PKGS_PREFIX)/pigz:$(PKGS) +PKG_QEMU_TOOLS ?= $(PKGS_PREFIX)/qemu-tools:$(PKGS) PKG_RUNC ?= $(PKGS_PREFIX)/runc:$(PKGS) -PKG_XFSPROGS ?= $(PKGS_PREFIX)/xfsprogs:$(PKGS) -PKG_UTIL_LINUX ?= $(PKGS_PREFIX)/util-linux:$(PKGS) -PKG_KMOD ?= $(PKGS_PREFIX)/kmod:$(PKGS) -PKG_CNI ?= $(PKGS_PREFIX)/cni:$(PKGS) -PKG_FLANNEL_CNI ?= $(PKGS_PREFIX)/flannel-cni:$(PKGS) -PKG_KERNEL ?= $(PKGS_PREFIX)/kernel:$(PKGS) +PKG_SD_BOOT ?= $(PKGS_PREFIX)/sd-boot:$(PKGS) +PKG_SQUASHFS_TOOLS ?= $(PKGS_PREFIX)/squashfs-tools:$(PKGS) +PKG_SYSTEMD_UDEVD ?= $(PKGS_PREFIX)/systemd-udevd:$(PKGS) PKG_TALOSCTL_CNI_BUNDLE ?= $(PKGS_PREFIX)/talosctl-cni-bundle:$(EXTRAS) +PKG_TAR ?= $(PKGS_PREFIX)/tar:$(PKGS) +PKG_UTIL_LINUX ?= $(PKGS_PREFIX)/util-linux:$(PKGS) +PKG_XFSPROGS ?= $(PKGS_PREFIX)/xfsprogs:$(PKGS) +PKG_XZ ?= $(PKGS_PREFIX)/xz:$(PKGS) +PKG_ZLIB ?= $(PKGS_PREFIX)/zlib:$(PKGS) +PKG_ZSTD ?= $(PKGS_PREFIX)/zstd:$(PKGS) # renovate: datasource=github-tags depName=golang/go GO_VERSION ?= 1.24 @@ -128,26 +144,7 @@ SHORT_INTEGRATION_TEST ?= CUSTOM_CNI_URL ?= INSTALLER_ARCH ?= all -INSTALLER_ONLY_PKGS ?= \ - bash \ - cpio \ - dosfstools \ - efibootmgr \ - kmod \ - squashfs-tools \ - xfsprogs \ - xz \ - zstd -IMAGER_EXTRA_PKGS ?= \ - e2fsprogs \ - mtools \ - pigz \ - qemu-img \ - tar \ - xorriso - -INSTALLER_PKGS ?= $(INSTALLER_ONLY_PKGS) $(IMAGER_EXTRA_PKGS) IMAGER_ARGS ?= CGO_ENABLED ?= 0 @@ -192,85 +189,101 @@ COMMON_ARGS := --file=Dockerfile COMMON_ARGS += --progress=$(PROGRESS) COMMON_ARGS += --platform=$(PLATFORM) COMMON_ARGS += --push=$(PUSH) -COMMON_ARGS += --build-arg=TOOLS=$(TOOLS) -COMMON_ARGS += --build-arg=DEBUG_TOOLS_SOURCE=$(DEBUG_TOOLS_SOURCE) -COMMON_ARGS += --build-arg=PKGS=$(PKGS) -COMMON_ARGS += --build-arg=EXTRAS=$(EXTRAS) -COMMON_ARGS += --build-arg=EMBED_TARGET=$(EMBED_TARGET) -COMMON_ARGS += --build-arg=GOFUMPT_VERSION=$(GOFUMPT_VERSION) -COMMON_ARGS += --build-arg=GOIMPORTS_VERSION=$(GOIMPORTS_VERSION) -COMMON_ARGS += --build-arg=STRINGER_VERSION=$(STRINGER_VERSION) -COMMON_ARGS += --build-arg=ENUMER_VERSION=$(ENUMER_VERSION) -COMMON_ARGS += --build-arg=DEEPCOPY_GEN_VERSION=$(DEEPCOPY_GEN_VERSION) -COMMON_ARGS += --build-arg=VTPROTOBUF_VERSION=$(VTPROTOBUF_VERSION) -COMMON_ARGS += --build-arg=IMPORTVET_VERSION=$(IMPORTVET_VERSION) -COMMON_ARGS += --build-arg=PROTOTOOL_VERSION=$(PROTOTOOL_VERSION) -COMMON_ARGS += --build-arg=PROTOC_GEN_DOC_VERSION=$(PROTOC_GEN_DOC_VERSION) -COMMON_ARGS += --build-arg=GOLANGCILINT_VERSION=$(GOLANGCILINT_VERSION) -COMMON_ARGS += --build-arg=DEEPCOPY_VERSION=$(DEEPCOPY_VERSION) -COMMON_ARGS += --build-arg=MARKDOWNLINTCLI_VERSION=$(MARKDOWNLINTCLI_VERSION) -COMMON_ARGS += --build-arg=TEXTLINT_VERSION=$(TEXTLINT_VERSION) -COMMON_ARGS += --build-arg=TEXTLINT_FILTER_RULE_COMMENTS_VERSION=$(TEXTLINT_FILTER_RULE_COMMENTS_VERSION) -COMMON_ARGS += --build-arg=TEXTLINT_RULE_ONE_SENTENCE_PER_LINE_VERSION=$(TEXTLINT_RULE_ONE_SENTENCE_PER_LINE_VERSION) -COMMON_ARGS += --build-arg=TAG=$(TAG) -COMMON_ARGS += --build-arg=SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) + +COMMON_ARGS += --build-arg=ABBREV_TAG=$(ABBREV_TAG) COMMON_ARGS += --build-arg=ARTIFACTS=$(ARTIFACTS) -COMMON_ARGS += --build-arg=TESTPKGS=$(TESTPKGS) -COMMON_ARGS += --build-arg=INSTALLER_ARCH=$(INSTALLER_ARCH) -COMMON_ARGS += --build-arg=INSTALLER_PKGS="$(INSTALLER_PKGS)" COMMON_ARGS += --build-arg=CGO_ENABLED=$(CGO_ENABLED) -COMMON_ARGS += --build-arg=GO_BUILDFLAGS="$(GO_BUILDFLAGS)" +COMMON_ARGS += --build-arg=DEBUG_TOOLS_SOURCE=$(DEBUG_TOOLS_SOURCE) +COMMON_ARGS += --build-arg=DEEPCOPY_GEN_VERSION=$(DEEPCOPY_GEN_VERSION) +COMMON_ARGS += --build-arg=DEEPCOPY_VERSION=$(DEEPCOPY_VERSION) +COMMON_ARGS += --build-arg=EMBED_TARGET=$(EMBED_TARGET) +COMMON_ARGS += --build-arg=ENUMER_VERSION=$(ENUMER_VERSION) +COMMON_ARGS += --build-arg=EXTRAS=$(EXTRAS) COMMON_ARGS += --build-arg=GO_BUILDFLAGS_TALOSCTL="$(GO_BUILDFLAGS_TALOSCTL)" +COMMON_ARGS += --build-arg=GO_BUILDFLAGS="$(GO_BUILDFLAGS)" COMMON_ARGS += --build-arg=GO_LDFLAGS="$(GO_LDFLAGS)" COMMON_ARGS += --build-arg=GOAMD64="$(GOAMD64)" +COMMON_ARGS += --build-arg=GOFUMPT_VERSION=$(GOFUMPT_VERSION) +COMMON_ARGS += --build-arg=GOIMPORTS_VERSION=$(GOIMPORTS_VERSION) +COMMON_ARGS += --build-arg=GOLANGCILINT_VERSION=$(GOLANGCILINT_VERSION) COMMON_ARGS += --build-arg=http_proxy=$(http_proxy) COMMON_ARGS += --build-arg=https_proxy=$(https_proxy) +COMMON_ARGS += --build-arg=IMPORTVET_VERSION=$(IMPORTVET_VERSION) +COMMON_ARGS += --build-arg=INSTALLER_ARCH=$(INSTALLER_ARCH) +COMMON_ARGS += --build-arg=MARKDOWNLINTCLI_VERSION=$(MARKDOWNLINTCLI_VERSION) +COMMON_ARGS += --build-arg=MICROSOFT_SECUREBOOT_RELEASE=$(MICROSOFT_SECUREBOOT_RELEASE) COMMON_ARGS += --build-arg=NAME=$(NAME) -COMMON_ARGS += --build-arg=SHA=$(SHA) -COMMON_ARGS += --build-arg=USERNAME=$(USERNAME) -COMMON_ARGS += --build-arg=REGISTRY=$(REGISTRY) -COMMON_ARGS += --build-arg=PKGS_PREFIX=$(PKGS_PREFIX) -COMMON_ARGS += --build-arg=PKG_FHS=$(PKG_FHS) -COMMON_ARGS += --build-arg=PKG_CA_CERTIFICATES=$(PKG_CA_CERTIFICATES) COMMON_ARGS += --build-arg=PKG_APPARMOR=$(PKG_APPARMOR) -COMMON_ARGS += --build-arg=PKG_CRYPTSETUP=$(PKG_CRYPTSETUP) +COMMON_ARGS += --build-arg=PKG_CA_CERTIFICATES=$(PKG_CA_CERTIFICATES) +COMMON_ARGS += --build-arg=PKG_CNI=$(PKG_CNI) COMMON_ARGS += --build-arg=PKG_CONTAINERD=$(PKG_CONTAINERD) +COMMON_ARGS += --build-arg=PKG_CPIO=$(PKG_CPIO) +COMMON_ARGS += --build-arg=PKG_CRYPTSETUP=$(PKG_CRYPTSETUP) COMMON_ARGS += --build-arg=PKG_DOSFSTOOLS=$(PKG_DOSFSTOOLS) COMMON_ARGS += --build-arg=PKG_E2FSPROGS=$(PKG_E2FSPROGS) -COMMON_ARGS += --build-arg=PKG_SYSTEMD_UDEVD=$(PKG_SYSTEMD_UDEVD) -COMMON_ARGS += --build-arg=PKG_LIBCAP=$(PKG_LIBCAP) +COMMON_ARGS += --build-arg=PKG_FHS=$(PKG_FHS) +COMMON_ARGS += --build-arg=PKG_FLANNEL_CNI=$(PKG_FLANNEL_CNI) +COMMON_ARGS += --build-arg=PKG_GLIB=$(PKG_GLIB) COMMON_ARGS += --build-arg=PKG_GRUB=$(PKG_GRUB) -COMMON_ARGS += --build-arg=PKG_SD_BOOT=$(PKG_SD_BOOT) COMMON_ARGS += --build-arg=PKG_IPTABLES=$(PKG_IPTABLES) COMMON_ARGS += --build-arg=PKG_IPXE=$(PKG_IPXE) +COMMON_ARGS += --build-arg=PKG_KERNEL=$(PKG_KERNEL) +COMMON_ARGS += --build-arg=PKG_KMOD=$(PKG_KMOD) +COMMON_ARGS += --build-arg=PKG_LIBAIO=$(PKG_LIBAIO) +COMMON_ARGS += --build-arg=PKG_LIBATTR=$(PKG_LIBATTR) +COMMON_ARGS += --build-arg=PKG_LIBBURN=$(PKG_LIBBURN) +COMMON_ARGS += --build-arg=PKG_LIBCAP=$(PKG_LIBCAP) COMMON_ARGS += --build-arg=PKG_LIBINIH=$(PKG_LIBINIH) +COMMON_ARGS += --build-arg=PKG_LIBISOBURN=$(PKG_LIBISOBURN) +COMMON_ARGS += --build-arg=PKG_LIBISOFS=$(PKG_LIBISOFS) COMMON_ARGS += --build-arg=PKG_LIBJSON_C=$(PKG_LIBJSON_C) +COMMON_ARGS += --build-arg=PKG_LIBLZMA=$(PKG_LIBLZMA) COMMON_ARGS += --build-arg=PKG_LIBMNL=$(PKG_LIBMNL) COMMON_ARGS += --build-arg=PKG_LIBNFTNL=$(PKG_LIBNFTNL) -COMMON_ARGS += --build-arg=PKG_LIBSEPOL=$(PKG_LIBSEPOL) -COMMON_ARGS += --build-arg=PKG_LIBSELINUX=$(PKG_LIBSELINUX) -COMMON_ARGS += --build-arg=PKG_PCRE2=$(PKG_PCRE2) COMMON_ARGS += --build-arg=PKG_LIBPOPT=$(PKG_LIBPOPT) -COMMON_ARGS += --build-arg=PKG_LIBURCU=$(PKG_LIBURCU) -COMMON_ARGS += --build-arg=PKG_OPENSSL=$(PKG_OPENSSL) COMMON_ARGS += --build-arg=PKG_LIBSECCOMP=$(PKG_LIBSECCOMP) +COMMON_ARGS += --build-arg=PKG_LIBSELINUX=$(PKG_LIBSELINUX) +COMMON_ARGS += --build-arg=PKG_LIBSEPOL=$(PKG_LIBSEPOL) +COMMON_ARGS += --build-arg=PKG_LIBURCU=$(PKG_LIBURCU) COMMON_ARGS += --build-arg=PKG_LINUX_FIRMWARE=$(PKG_LINUX_FIRMWARE) COMMON_ARGS += --build-arg=PKG_LVM2=$(PKG_LVM2) -COMMON_ARGS += --build-arg=PKG_LIBAIO=$(PKG_LIBAIO) +COMMON_ARGS += --build-arg=PKG_MTOOLS=$(PKG_MTOOLS) COMMON_ARGS += --build-arg=PKG_MUSL=$(PKG_MUSL) -COMMON_ARGS += --build-arg=PKG_RUNC=$(PKG_RUNC) -COMMON_ARGS += --build-arg=PKG_XFSPROGS=$(PKG_XFSPROGS) -COMMON_ARGS += --build-arg=PKG_UTIL_LINUX=$(PKG_UTIL_LINUX) -COMMON_ARGS += --build-arg=PKG_KMOD=$(PKG_KMOD) -COMMON_ARGS += --build-arg=PKG_U_BOOT=$(PKG_U_BOOT) +COMMON_ARGS += --build-arg=PKG_OPENSSL=$(PKG_OPENSSL) +COMMON_ARGS += --build-arg=PKG_PCRE2=$(PKG_PCRE2) +COMMON_ARGS += --build-arg=PKG_PIGZ=$(PKG_PIGZ) +COMMON_ARGS += --build-arg=PKG_QEMU_TOOLS=$(PKG_QEMU_TOOLS) COMMON_ARGS += --build-arg=PKG_RASPBERYPI_FIRMWARE=$(PKG_RASPBERYPI_FIRMWARE) -COMMON_ARGS += --build-arg=PKG_CNI=$(PKG_CNI) -COMMON_ARGS += --build-arg=PKG_FLANNEL_CNI=$(PKG_FLANNEL_CNI) -COMMON_ARGS += --build-arg=PKG_KERNEL=$(PKG_KERNEL) +COMMON_ARGS += --build-arg=PKG_RUNC=$(PKG_RUNC) +COMMON_ARGS += --build-arg=PKG_SD_BOOT=$(PKG_SD_BOOT) +COMMON_ARGS += --build-arg=PKG_SQUASHFS_TOOLS=$(PKG_SQUASHFS_TOOLS) +COMMON_ARGS += --build-arg=PKG_SYSTEMD_UDEVD=$(PKG_SYSTEMD_UDEVD) COMMON_ARGS += --build-arg=PKG_TALOSCTL_CNI_BUNDLE=$(PKG_TALOSCTL_CNI_BUNDLE) -COMMON_ARGS += --build-arg=ABBREV_TAG=$(ABBREV_TAG) +COMMON_ARGS += --build-arg=PKG_TAR=$(PKG_TAR) +COMMON_ARGS += --build-arg=PKG_U_BOOT=$(PKG_U_BOOT) +COMMON_ARGS += --build-arg=PKG_UTIL_LINUX=$(PKG_UTIL_LINUX) +COMMON_ARGS += --build-arg=PKG_XFSPROGS=$(PKG_XFSPROGS) +COMMON_ARGS += --build-arg=PKG_XZ=$(PKG_XZ) +COMMON_ARGS += --build-arg=PKG_ZLIB=$(PKG_ZLIB) +COMMON_ARGS += --build-arg=PKG_ZSTD=$(PKG_ZSTD) +COMMON_ARGS += --build-arg=PKGS_PREFIX=$(PKGS_PREFIX) +COMMON_ARGS += --build-arg=PKGS=$(PKGS) +COMMON_ARGS += --build-arg=PROTOC_GEN_DOC_VERSION=$(PROTOC_GEN_DOC_VERSION) +COMMON_ARGS += --build-arg=PROTOTOOL_VERSION=$(PROTOTOOL_VERSION) +COMMON_ARGS += --build-arg=REGISTRY=$(REGISTRY) +COMMON_ARGS += --build-arg=SHA=$(SHA) +COMMON_ARGS += --build-arg=SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) +COMMON_ARGS += --build-arg=STRINGER_VERSION=$(STRINGER_VERSION) +COMMON_ARGS += --build-arg=TAG=$(TAG) +COMMON_ARGS += --build-arg=TESTPKGS=$(TESTPKGS) +COMMON_ARGS += --build-arg=TEXTLINT_FILTER_RULE_COMMENTS_VERSION=$(TEXTLINT_FILTER_RULE_COMMENTS_VERSION) +COMMON_ARGS += --build-arg=TEXTLINT_RULE_ONE_SENTENCE_PER_LINE_VERSION=$(TEXTLINT_RULE_ONE_SENTENCE_PER_LINE_VERSION) +COMMON_ARGS += --build-arg=TEXTLINT_VERSION=$(TEXTLINT_VERSION) +COMMON_ARGS += --build-arg=TOOLS_PREFIX=$(TOOLS_PREFIX) +COMMON_ARGS += --build-arg=TOOLS=$(TOOLS) +COMMON_ARGS += --build-arg=USERNAME=$(USERNAME) +COMMON_ARGS += --build-arg=VTPROTOBUF_VERSION=$(VTPROTOBUF_VERSION) COMMON_ARGS += --build-arg=ZSTD_COMPRESSION_LEVEL=$(ZSTD_COMPRESSION_LEVEL) -COMMON_ARGS += --build-arg=MICROSOFT_SECUREBOOT_RELEASE=$(MICROSOFT_SECUREBOOT_RELEASE) CI_ARGS ?= @@ -390,10 +403,9 @@ sd-boot: ## Outputs the systemd-boot to the artifact directory. sd-stub: ## Outputs the systemd-stub to the artifact directory. @$(MAKE) local-$@ DEST=$(ARTIFACTS) PUSH=false -.PHONY: installer -installer: ## Builds the container image for the installer and outputs it to the registry. - @INSTALLER_ARCH=targetarch INSTALLER_PKGS="$(INSTALLER_ONLY_PKGS)" \ - $(MAKE) registry-$@ +.PHONY: installer-base +installer-base: ## Builds the container image for the installer-base and outputs it to the registry. + @$(MAKE) registry-$@ .PHONY: imager imager: ## Builds the container image for the imager and outputs it to the registry. @@ -444,8 +456,10 @@ image-%: ## Builds the specified image. Valid options are aws, azure, digital-oc docker run --rm -t -v /dev:/dev -v $(PWD)/$(ARTIFACTS):/secureboot:ro -v $(PWD)/$(ARTIFACTS):/out -e SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) --network=host --privileged $(REGISTRY_AND_USERNAME)/imager:$(IMAGE_TAG) $* --arch $$arch $(IMAGER_ARGS) ; \ done -images-essential: image-aws image-azure image-gcp image-metal image-metal-uki secureboot-installer ## Builds only essential images used in the CI (AWS, Azure, GCP, and Metal). +.PHONY: images-essential +images-essential: image-aws image-azure image-gcp image-metal image-metal-uki installer secureboot-installer ## Builds only essential images used in the CI (AWS, Azure, GCP, and Metal). +.PHONY: images images: image-akamai image-aws image-azure image-digital-ocean image-exoscale image-cloudstack image-gcp image-hcloud image-iso image-metal image-metal-uki image-nocloud image-opennebula image-openstack image-oracle image-scaleway image-upcloud image-vmware image-vultr ## Builds all known images (AWS, Azure, DigitalOcean, Exoscale, Cloudstack, GCP, HCloud, Metal, NoCloud, OpenNebula, OpenStack, Oracle, Scaleway, UpCloud, Vultr and VMware). .PHONY: iso @@ -454,9 +468,24 @@ iso: image-iso ## Builds the ISO and outputs it to the artifact directory. .PHONY: secureboot-iso secureboot-iso: image-secureboot-iso ## Builds UEFI only ISO which uses UKI and outputs it to the artifact directory. +IMAGES_LIST := + +.PHONY: installer +installer: ## Builds the installer and outputs it to the artifact directory. + @$(MAKE) image-installer IMAGER_ARGS="--base-installer-image $(REGISTRY_AND_USERNAME)/installer-base:$(IMAGE_TAG) $(IMAGER_ARGS)" + + @crane_args="" + @for platform in $(subst $(,),$(space),$(PLATFORM)); do \ + arch=$$(basename "$${platform}") && \ + image=$$(crane push $(ARTIFACTS)/installer-$${arch}.tar $(REGISTRY_AND_USERNAME)/installer:$(IMAGE_TAG)-$${arch}) && \ + crane_args="$${crane_args} -m $${image}" ; \ + done; \ + crane index append -t "${REGISTRY_AND_USERNAME}/installer:${IMAGE_TAG}" $${crane_args} + + .PHONY: secureboot-installer secureboot-installer: ## Builds UEFI only installer which uses UKI and push it to the registry. - @$(MAKE) image-secureboot-installer IMAGER_ARGS="--base-installer-image $(REGISTRY_AND_USERNAME)/installer:$(IMAGE_TAG) --extra-kernel-arg=console=ttyS0 $(IMAGER_ARGS)" + @$(MAKE) image-secureboot-installer IMAGER_ARGS="--base-installer-image $(REGISTRY_AND_USERNAME)/installer-base:$(IMAGE_TAG) $(IMAGER_ARGS)" @for platform in $(subst $(,),$(space),$(PLATFORM)); do \ arch=$$(basename "$${platform}") && \ crane push $(ARTIFACTS)/installer-$${arch}-secureboot.tar $(REGISTRY_AND_USERNAME)/installer:$(IMAGE_TAG)-$${arch}-secureboot ; \ @@ -651,8 +680,9 @@ release-notes: ARTIFACTS=$(ARTIFACTS) ./hack/release.sh $@ $(ARTIFACTS)/RELEASE_NOTES.md $(TAG) push: ## Pushes the installer, imager, talos and talosctl images to the configured container registry with the generated tag. - @$(MAKE) installer PUSH=true + @$(MAKE) installer-base PUSH=true @$(MAKE) imager PUSH=true + @$(MAKE) installer PUSH=true @$(MAKE) talos PUSH=true @$(MAKE) talosctl-image PUSH=true diff --git a/hack/release.toml b/hack/release.toml index 61eeb7383..80df1caf0 100644 --- a/hack/release.toml +++ b/hack/release.toml @@ -18,7 +18,7 @@ preface = """ [notes.updates] title = "Component Updates" description = """\ -* Linux: 6.12.13 +* Linux: 6.12.16 * CNI plugins: 1.6.2 * runc: 1.2.4 * containerd: 2.0.2 diff --git a/hack/test/e2e-qemu.sh b/hack/test/e2e-qemu.sh index 2d9b719f4..68cd94f04 100755 --- a/hack/test/e2e-qemu.sh +++ b/hack/test/e2e-qemu.sh @@ -133,7 +133,6 @@ case "${WITH_ISO:-false}" in false) ;; *) - INSTALLER_IMAGE=${INSTALLER_IMAGE}-amd64-secureboot # we don't use secureboot part here, but this installer contains UKIs QEMU_FLAGS+=("--iso-path=${ARTIFACTS}/metal-amd64.iso") ;; esac @@ -241,7 +240,6 @@ case "${WITH_UKI_BOOT:-false}" in false) ;; *) - INSTALLER_IMAGE=${INSTALLER_IMAGE}-amd64-secureboot # we don't use secureboot part here, but this installer contains UKIs QEMU_FLAGS+=("--uki-path=_out/metal-amd64-uki.efi") ;; esac diff --git a/pkg/imager/out.go b/pkg/imager/out.go index 178e76a92..1209020ce 100644 --- a/pkg/imager/out.go +++ b/pkg/imager/out.go @@ -417,6 +417,14 @@ func (i *Imager) outInstaller(ctx context.Context, path string, report *reporter newInstallerImg := mutate.MediaType(empty.Image, types.OCIManifestSchema1) newInstallerImg = mutate.ConfigMediaType(newInstallerImg, types.OCIConfigJSON) + newInstallerImg, err = mutate.ConfigFile(newInstallerImg, &v1.ConfigFile{ + Architecture: i.prof.Arch, + OS: "linux", + }) + if err != nil { + return fmt.Errorf("failed to set image architecture: %w", err) + } + newInstallerImg, err = mutate.Config(newInstallerImg, config) if err != nil { return fmt.Errorf("failed to set config: %w", err) diff --git a/pkg/imager/post.go b/pkg/imager/post.go index 29b37be67..5c63e8f18 100644 --- a/pkg/imager/post.go +++ b/pkg/imager/post.go @@ -7,6 +7,7 @@ package imager import ( "fmt" "os" + "os/exec" "path/filepath" "github.com/siderolabs/go-cmd/pkg/cmd" @@ -14,6 +15,7 @@ import ( "github.com/siderolabs/talos/pkg/reporter" ) +//nolint:gocyclo func (i *Imager) postProcessTar(filename string, report *reporter.Reporter) (string, error) { report.Report(reporter.Update{Message: "processing .tar.gz", Status: reporter.StatusRunning}) @@ -26,7 +28,61 @@ func (i *Imager) postProcessTar(filename string, report *reporter.Reporter) (str outPath := filename + ".tar.gz" - if _, err := cmd.Run("tar", "-cvf", outPath, "-C", dir, "--sparse", "--use-compress-program=pigz -6", src); err != nil { + pipeR, pipeW, err := os.Pipe() + if err != nil { + return "", err + } + + cmd1 := exec.Command("tar", "-cvf", "-", "-C", dir, "--sparse", src) + + cmd1.Stdout = pipeW + cmd1.Stderr = os.Stderr + + if err := cmd1.Start(); err != nil { + return "", err + } + + if err = pipeW.Close(); err != nil { + return "", err + } + + destination, err := os.OpenFile(outPath, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0o644) + if err != nil { + return "", err + } + + defer destination.Close() //nolint:errcheck + + cmd2 := exec.Command("pigz", "-6", "-f", "-") + cmd2.Stdin = pipeR + cmd2.Stdout = destination + cmd2.Stderr = os.Stderr + + if err := cmd2.Start(); err != nil { + return "", err + } + + if err = pipeR.Close(); err != nil { + return "", err + } + + errCh := make(chan error, 1) + + go func() { + errCh <- cmd1.Wait() + }() + + go func() { + errCh <- cmd2.Wait() + }() + + for range 2 { + if err = <-errCh; err != nil { + return "", err + } + } + + if err := destination.Sync(); err != nil { return "", err } diff --git a/pkg/imager/profile/input.go b/pkg/imager/profile/input.go index 744e6694c..425f00d4a 100644 --- a/pkg/imager/profile/input.go +++ b/pkg/imager/profile/input.go @@ -207,6 +207,10 @@ func (i *Input) FillDefaults(arch, version string, secureboot bool) { if i.BaseInstaller == zeroContainerAsset { i.BaseInstaller.ImageRef = fmt.Sprintf("%s:%s", images.DefaultInstallerImageRepository, version) + + if quirks.New(version).SupportsUnifiedInstaller() { + i.BaseInstaller.ImageRef = fmt.Sprintf("%s-base:%s", images.DefaultInstallerImageRepository, version) + } } if i.SDStub == zeroFileAsset { diff --git a/pkg/imager/profile/output.go b/pkg/imager/profile/output.go index 243c9475f..15f5df173 100644 --- a/pkg/imager/profile/output.go +++ b/pkg/imager/profile/output.go @@ -5,7 +5,6 @@ package profile import ( - "github.com/siderolabs/talos/internal/pkg/partition" "github.com/siderolabs/talos/pkg/machinery/imager/quirks" ) @@ -154,6 +153,7 @@ func (o *Output) FillDefaults(arch, version string, secureboot bool) { // Default to dual-boot. o.ImageOptions.Bootloader = DiskImageBootloaderDualBoot - o.ImageOptions.DiskSize += partition.BIOSGrubSize + partition.BootSize + // add extra space for BIOS and BOOT partitions + o.ImageOptions.DiskSize += 1*1024*1024 + 1000*1024*1024 } } diff --git a/pkg/imager/profile/testdata/akamai-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/akamai-amd64-1.10.0.yaml index ac5ff5172..e2bd1fe23 100644 --- a/pkg/imager/profile/testdata/akamai-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/akamai-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/akamai-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/akamai-arm64-1.10.0.yaml index ec13c10ce..5e4cf1514 100644 --- a/pkg/imager/profile/testdata/akamai-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/akamai-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/aws-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/aws-amd64-1.10.0.yaml index 1b40b6a4b..5e3eeab63 100644 --- a/pkg/imager/profile/testdata/aws-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/aws-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/aws-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/aws-arm64-1.10.0.yaml index 7c5db43c3..a64154429 100644 --- a/pkg/imager/profile/testdata/aws-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/aws-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/azure-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/azure-amd64-1.10.0.yaml index 5d4496516..239abcd8d 100644 --- a/pkg/imager/profile/testdata/azure-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/azure-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/azure-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/azure-arm64-1.10.0.yaml index ba572cc37..aa43034eb 100644 --- a/pkg/imager/profile/testdata/azure-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/azure-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/cloudstack-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/cloudstack-amd64-1.10.0.yaml index ab75afbd4..aa1a67ee3 100644 --- a/pkg/imager/profile/testdata/cloudstack-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/cloudstack-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/cloudstack-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/cloudstack-arm64-1.10.0.yaml index 9e1075654..71cf539a6 100644 --- a/pkg/imager/profile/testdata/cloudstack-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/cloudstack-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/digital-ocean-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/digital-ocean-amd64-1.10.0.yaml index 2ecb3375e..e9cfb968d 100644 --- a/pkg/imager/profile/testdata/digital-ocean-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/digital-ocean-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/digital-ocean-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/digital-ocean-arm64-1.10.0.yaml index c6dc8709c..25a99da37 100644 --- a/pkg/imager/profile/testdata/digital-ocean-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/digital-ocean-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/exoscale-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/exoscale-amd64-1.10.0.yaml index e728184e8..8c85c0c90 100644 --- a/pkg/imager/profile/testdata/exoscale-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/exoscale-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/exoscale-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/exoscale-arm64-1.10.0.yaml index bc0ea7e45..bd57d719a 100644 --- a/pkg/imager/profile/testdata/exoscale-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/exoscale-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/gcp-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/gcp-amd64-1.10.0.yaml index 962b8654b..681f4e864 100644 --- a/pkg/imager/profile/testdata/gcp-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/gcp-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/gcp-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/gcp-arm64-1.10.0.yaml index 7187f2abc..21a78027c 100644 --- a/pkg/imager/profile/testdata/gcp-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/gcp-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/hcloud-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/hcloud-amd64-1.10.0.yaml index dd08c608b..4e3793128 100644 --- a/pkg/imager/profile/testdata/hcloud-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/hcloud-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/hcloud-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/hcloud-arm64-1.10.0.yaml index e2c5e6b3c..6491655bb 100644 --- a/pkg/imager/profile/testdata/hcloud-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/hcloud-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/installer-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/installer-amd64-1.10.0.yaml index 0ff1b92c6..f6b7e8a05 100644 --- a/pkg/imager/profile/testdata/installer-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/installer-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: installer outFormat: raw diff --git a/pkg/imager/profile/testdata/installer-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/installer-arm64-1.10.0.yaml index e1860429c..c0375f56f 100644 --- a/pkg/imager/profile/testdata/installer-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/installer-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: installer outFormat: raw diff --git a/pkg/imager/profile/testdata/iso-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/iso-amd64-1.10.0.yaml index 6def63548..c8b0c0741 100644 --- a/pkg/imager/profile/testdata/iso-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/iso-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: iso outFormat: raw diff --git a/pkg/imager/profile/testdata/iso-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/iso-arm64-1.10.0.yaml index f7e23a1cb..aa4845921 100644 --- a/pkg/imager/profile/testdata/iso-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/iso-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: iso outFormat: raw diff --git a/pkg/imager/profile/testdata/metal-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/metal-amd64-1.10.0.yaml index 883fcc042..006a7da69 100644 --- a/pkg/imager/profile/testdata/metal-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/metal-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/metal-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/metal-arm64-1.10.0.yaml index de4db446f..ec6725a29 100644 --- a/pkg/imager/profile/testdata/metal-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/metal-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/metal-uki-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/metal-uki-amd64-1.10.0.yaml index 09fd8a9e9..2eea9a674 100644 --- a/pkg/imager/profile/testdata/metal-uki-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/metal-uki-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: uki outFormat: raw diff --git a/pkg/imager/profile/testdata/metal-uki-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/metal-uki-arm64-1.10.0.yaml index 8fe172a97..20900a935 100644 --- a/pkg/imager/profile/testdata/metal-uki-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/metal-uki-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: uki outFormat: raw diff --git a/pkg/imager/profile/testdata/nocloud-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/nocloud-amd64-1.10.0.yaml index b39cb0553..638b6d4c4 100644 --- a/pkg/imager/profile/testdata/nocloud-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/nocloud-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/nocloud-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/nocloud-arm64-1.10.0.yaml index 5d5189a37..984bd86c8 100644 --- a/pkg/imager/profile/testdata/nocloud-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/nocloud-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/opennebula-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/opennebula-amd64-1.10.0.yaml index 8ae7cf887..7d9ce1494 100644 --- a/pkg/imager/profile/testdata/opennebula-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/opennebula-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/opennebula-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/opennebula-arm64-1.10.0.yaml index df3714ec0..4fd625c4b 100644 --- a/pkg/imager/profile/testdata/opennebula-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/opennebula-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/openstack-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/openstack-amd64-1.10.0.yaml index 1b9db7090..bcc4a7547 100644 --- a/pkg/imager/profile/testdata/openstack-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/openstack-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/openstack-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/openstack-arm64-1.10.0.yaml index 92b22c185..007157afd 100644 --- a/pkg/imager/profile/testdata/openstack-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/openstack-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/oracle-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/oracle-amd64-1.10.0.yaml index 6daec0b9b..c74165a3d 100644 --- a/pkg/imager/profile/testdata/oracle-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/oracle-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/oracle-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/oracle-arm64-1.10.0.yaml index 3c7f62e7e..8639fc3e5 100644 --- a/pkg/imager/profile/testdata/oracle-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/oracle-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/scaleway-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/scaleway-amd64-1.10.0.yaml index ec6db7388..c6b21d70d 100644 --- a/pkg/imager/profile/testdata/scaleway-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/scaleway-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/scaleway-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/scaleway-arm64-1.10.0.yaml index 89d1e101f..b734f6566 100644 --- a/pkg/imager/profile/testdata/scaleway-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/scaleway-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/secureboot-installer-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/secureboot-installer-amd64-1.10.0.yaml index eb2066697..e1c6df529 100644 --- a/pkg/imager/profile/testdata/secureboot-installer-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/secureboot-installer-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 secureboot: secureBootSigner: keyPath: /secureboot/uki-signing-key.pem diff --git a/pkg/imager/profile/testdata/secureboot-installer-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/secureboot-installer-arm64-1.10.0.yaml index 3590089b4..b30774a51 100644 --- a/pkg/imager/profile/testdata/secureboot-installer-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/secureboot-installer-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 secureboot: secureBootSigner: keyPath: /secureboot/uki-signing-key.pem diff --git a/pkg/imager/profile/testdata/secureboot-iso-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/secureboot-iso-amd64-1.10.0.yaml index bc4d4efcc..23d1b0971 100644 --- a/pkg/imager/profile/testdata/secureboot-iso-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/secureboot-iso-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 secureboot: secureBootSigner: keyPath: /secureboot/uki-signing-key.pem diff --git a/pkg/imager/profile/testdata/secureboot-iso-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/secureboot-iso-arm64-1.10.0.yaml index f203dca55..4aeaa5f8e 100644 --- a/pkg/imager/profile/testdata/secureboot-iso-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/secureboot-iso-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 secureboot: secureBootSigner: keyPath: /secureboot/uki-signing-key.pem diff --git a/pkg/imager/profile/testdata/secureboot-metal-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/secureboot-metal-amd64-1.10.0.yaml index e2ae46b14..8d0237a96 100644 --- a/pkg/imager/profile/testdata/secureboot-metal-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/secureboot-metal-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 secureboot: secureBootSigner: keyPath: /secureboot/uki-signing-key.pem diff --git a/pkg/imager/profile/testdata/secureboot-metal-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/secureboot-metal-arm64-1.10.0.yaml index 56a8d0d05..c319aebaf 100644 --- a/pkg/imager/profile/testdata/secureboot-metal-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/secureboot-metal-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 secureboot: secureBootSigner: keyPath: /secureboot/uki-signing-key.pem diff --git a/pkg/imager/profile/testdata/secureboot-metal-uki-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/secureboot-metal-uki-amd64-1.10.0.yaml index 384133d8e..4169aaa33 100644 --- a/pkg/imager/profile/testdata/secureboot-metal-uki-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/secureboot-metal-uki-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 secureboot: secureBootSigner: keyPath: /secureboot/uki-signing-key.pem diff --git a/pkg/imager/profile/testdata/secureboot-metal-uki-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/secureboot-metal-uki-arm64-1.10.0.yaml index e2bfe9cbb..3ca948283 100644 --- a/pkg/imager/profile/testdata/secureboot-metal-uki-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/secureboot-metal-uki-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 secureboot: secureBootSigner: keyPath: /secureboot/uki-signing-key.pem diff --git a/pkg/imager/profile/testdata/upcloud-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/upcloud-amd64-1.10.0.yaml index 62a3c141a..b3b496f05 100644 --- a/pkg/imager/profile/testdata/upcloud-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/upcloud-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/upcloud-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/upcloud-arm64-1.10.0.yaml index fc4897a36..cdb648ce8 100644 --- a/pkg/imager/profile/testdata/upcloud-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/upcloud-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/vmware-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/vmware-amd64-1.10.0.yaml index b6b7c38a6..0b2d17488 100644 --- a/pkg/imager/profile/testdata/vmware-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/vmware-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/vmware-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/vmware-arm64-1.10.0.yaml index 47e585da8..a10da68e1 100644 --- a/pkg/imager/profile/testdata/vmware-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/vmware-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/vultr-amd64-1.10.0.yaml b/pkg/imager/profile/testdata/vultr-amd64-1.10.0.yaml index 087c37f4f..6689c0ea1 100644 --- a/pkg/imager/profile/testdata/vultr-amd64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/vultr-amd64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/amd64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/imager/profile/testdata/vultr-arm64-1.10.0.yaml b/pkg/imager/profile/testdata/vultr-arm64-1.10.0.yaml index 55b7245cf..e70573386 100644 --- a/pkg/imager/profile/testdata/vultr-arm64-1.10.0.yaml +++ b/pkg/imager/profile/testdata/vultr-arm64-1.10.0.yaml @@ -12,7 +12,7 @@ input: sdBoot: path: /usr/install/arm64/systemd-boot.efi baseInstaller: - imageRef: ghcr.io/siderolabs/installer:1.10.0 + imageRef: ghcr.io/siderolabs/installer-base:1.10.0 output: kind: image imageOptions: diff --git a/pkg/machinery/constants/constants.go b/pkg/machinery/constants/constants.go index d1e568497..ff47dce9b 100644 --- a/pkg/machinery/constants/constants.go +++ b/pkg/machinery/constants/constants.go @@ -14,7 +14,7 @@ import ( const ( // DefaultKernelVersion is the default Linux kernel version. - DefaultKernelVersion = "6.12.13-talos" + DefaultKernelVersion = "6.12.16-talos" // KernelParamConfig is the kernel parameter name for specifying the URL. // to the config. diff --git a/pkg/machinery/gendata/data/pkgs b/pkg/machinery/gendata/data/pkgs index 975bc50e4..b809ad84f 100644 --- a/pkg/machinery/gendata/data/pkgs +++ b/pkg/machinery/gendata/data/pkgs @@ -1 +1 @@ -v1.10.0-alpha.0-38-g76a0316 \ No newline at end of file +v1.10.0-alpha.0-47-g6fb00b4 \ No newline at end of file diff --git a/pkg/machinery/gendata/data/tools b/pkg/machinery/gendata/data/tools new file mode 100644 index 000000000..001e4a5bd --- /dev/null +++ b/pkg/machinery/gendata/data/tools @@ -0,0 +1 @@ +v1.10.0-alpha.0-18-gfcee25b \ No newline at end of file diff --git a/pkg/machinery/imager/quirks/quirks.go b/pkg/machinery/imager/quirks/quirks.go index 6256ab88d..0e3e77d8c 100644 --- a/pkg/machinery/imager/quirks/quirks.go +++ b/pkg/machinery/imager/quirks/quirks.go @@ -210,3 +210,15 @@ func (q Quirks) SupportsUKIProfiles() bool { return q.v.GTE(minTalosVersionUKIProfiles) } + +var minTalosVersionUnifiedInstaller = semver.MustParse("1.10.0") + +// SupportsUnifiedInstaller returns true if the Talos version supports unified installer. +func (q Quirks) SupportsUnifiedInstaller() bool { + // if the version doesn't parse, we assume it's latest Talos + if q.v == nil { + return true + } + + return q.v.GTE(minTalosVersionUnifiedInstaller) +} diff --git a/pkg/provision/providers/vm/internal/ipxe/data/ipxe/amd64/snp.efi b/pkg/provision/providers/vm/internal/ipxe/data/ipxe/amd64/snp.efi index 931e62652309ead50346228446be23123b4b7e66..085ee58fa05e76823bf8bf098f377ee1cf23bb7f 100644 GIT binary patch delta 85755 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

%n@9BO0*O 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ƕXDh9zF4E4W51WT|ZOcO%PnY`^(EsLBn|E3hF9 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 YIE+{*U~!5F&_~8B!pZC~=>IVMKP#eo5C8xG delta 85667 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 Ceg2pL delta 67470 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 E2aQ*G_W%F@