320 Commits

Author SHA1 Message Date
Julian Tölle
005c7c17e8
scripts: update hetzner amd64 instance type
The currently used server type (`cpx11`) was deprecated and will be
removed on 2026-01-01.

- https://www.hetzner.com/news/new-cloud-plans/
- https://docs.hetzner.cloud/changelog#2025-10-16-new-server-types-with-categories
- https://docs.hetzner.cloud/changelog#2025-10-16-server-types-deprecated

Signed-off-by: Julian Tölle <julian.toelle@hetzner-cloud.de>
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-12-18 13:36:38 +01:00
Robin Schneider
c1e8523a44
Use a less powerful machine for amd64 tests
Signed-off-by: Robin Schneider <robin.schneider@stackit.cloud>
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-12-18 10:36:06 +01:00
Thilo Fromm
7408886859 ci-automation: fix broken result indicators in test reports
The CI automation test report library used embedded images to indicate
test success / failures. The URL these images were referenced from has
gone AWOL some time ago, resulting in ugly "missing image" references in
test reports.

This change updates the test result indicator code to only use emojis.

Signed-off-by: Thilo Fromm <thilofromm@microsoft.com>
2025-12-17 17:22:04 +01:00
Robin Schneider
ed8c712871
Add STACKIT
Signed-off-by: Robin Schneider <robin.schneider@stackit.cloud>
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-12-11 11:56:53 +01:00
Mathieu Tortuyaux
7795874c22
ci-automation: remove Equinix Metal testing
After years of good services and sponsoring from Equinix Metal, we need
to retire those tests for AMD64 / ARM64 bare metal instances.

As Equinix Metal offering is still around until June 2026, let's
continue to produce and release Flatcar images for any users still using
those images but we won't test them as the Flatcar account won't be
covered by sponsoring.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-11-28 10:47:32 +01:00
Mathieu Tortuyaux
a9e64e07a2
ci-config: use new bincache server
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-11-18 18:00:52 +01:00
Mathieu Tortuyaux
3b67bedc38
ci/config: remove RELEASES_SERVER
This does not seem to be used anywhere here and can be misleading

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-11-13 17:04:16 +01:00
Mathieu Tortuyaux
0ec42cc213
ci/release: copy secondary artifacts from bincache
this logic takes care of copying binary packages, SDK and packages
containers to cloudflare bucket in the `r2:flatcar/mirror/` location

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-11-13 17:04:16 +01:00
Kai Lueke
71b53fca90 ci-automation/release.sh: Skip bucket copy on failure until it works
We got a DNS resolution problem due to UDP packets not going to the
configured server. For now try the host network (and otherwise maybe
a custom DNS server?).
But in any case we should not block the release on that and continue.

Signed-off-by: Kai Lueke <kailuke@microsoft.com>
2025-11-12 16:39:36 +09:00
Kai Lueke
56457118e9 ci-automation/release.sh: Update comment about current state
Signed-off-by: Kai Lueke <kailuke@microsoft.com>
2025-11-11 23:34:57 +09:00
Kai Lueke
41d9c32c30 ci-automation/release: Set up rclone config for mapping into container
The wrong variable was used to set up the mapping of the rclone config
into the rclone container and it wasn't set up in the right function.
Move it into the right function and use the right variable name but also
don't rely on /proc/PID/fd/FD to be mappable into the container but
instead use a regular temp file.

Signed-off-by: Kai Lueke <kailuke@microsoft.com>
2025-11-11 23:34:57 +09:00
Mathieu Tortuyaux
7c7eb2686c ci-automation/release.sh: 'the input device is not a TTY'
This has been raised in current CI.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-11-07 22:16:30 +09:00
Mathieu Tortuyaux
65a3af6dca
ci-automation/release.sh: lift 'experimental' usage
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-10-23 15:56:29 +02:00
Mathieu Tortuyaux
3cd17cc5e4
ci-automation/release.sh: use rclone docker image
rclone was previously called from the Mantle image but it's not the
 case anymore because we need some environment variables (CHANNEL, ARCH,
 etc.)

 Let's switch to the `rclone` Docker image.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-10-23 15:56:29 +02:00
Kai Lueke
126cfcc004 ci-automation/release.sh: Fix upload to R2
The upload to R2 was added experimentally and we now want to make use of
it. The CHANNEL variable wasn't defined and it failed because of that.

Do the upload for all channels and set the variable up first. Existing
releases should get synced from the current Origin server via a FUSE
mount that we anyway want to rely on for the directory listing that
Caddy creates. Left to decide is how we manage the "current" version
but that is done manually anyway as of now.

Signed-off-by: Kai Lueke <kailuke@microsoft.com>
2025-10-07 14:58:51 +09:00
Mathieu Tortuyaux
222cd1e805
release: sync alpha bincache assets to s3 bucket
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-09-11 11:25:52 +02:00
Mathieu Tortuyaux
77d3f65d8c
ci-automation/gc: drop openstack occurences
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-09-04 10:34:42 +02:00
Mathieu Tortuyaux
fd42a17e10
ci_automation_common.sh: use long option name
This helps reading the scripts later.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-07-24 09:33:10 +02:00
Thilo Fromm
923875312a
ci_automation_common.sh: sign commits to adhere to DCO requirements (#3123)
This change makes CI sign commits (which should work because CI uses a "regular" github user) as per our new DCO requirements.
2025-07-17 15:56:29 +02:00
Krzesimir Nowak
782bb560e6 ci-automation: Update sdk-bootstrap, packages-tag and upload functions
- Tighten the patterns used for nightly tags detection.
- Compare hashes instead of names to figure out if we are on top of a
  branch (fixes the issue of no nightly tags reachable from the
  release branches). Jenkins is doing `git fetch origin "${branch}";
  git checkout FETCH_HEAD` and this was confusing the `git rev-parse
  --abbrev-ref HEAD` code (it returned `HEAD` instead of `${branch}`).
- Account for possible multiple tags in a single commit.
- Made the tagging fail in dubious situations.
- Reindent the code, modernize a bit.
2025-07-11 13:48:53 +02:00
Krzesimir Nowak
a1047bbd0c ci-automation: Make tagging code testable through env vars 2025-07-11 13:48:53 +02:00
Krzesimir Nowak
66e381b5dd ci-automation: Use a valid reference
`show_changes_params` is not available in this lexical scope, we
should have been using `show_changes_params_ref`. This has worked so
far only because all the callers of the functions were passing
`show_changes_params` to be referenced by
`show_changes_params_ref`. Just a lucky happenstance.

Spotted by Chewi.
2025-07-10 14:21:33 +02:00
Mathieu Tortuyaux
e699691736
Merge pull request #3018 from stackitcloud/stackit-oem-image
OEM: Provide STACKIT images
2025-06-30 17:44:27 +02:00
Robin Schneider
ad0b524c59
OEM: Provide STACKIT images 2025-06-30 14:40:16 +02:00
Krzesimir Nowak
07be61389a ci-automation: Filter extra sysexts by architecture
It's a recent addition - nvidia sysexts are amd64-only for now, so the
EXTRA_SYSEXTS variable got some new fields to indicate that. Make use
of them for filtering which extra sysexts changes to report.
2025-06-26 08:52:19 +02:00
Jan Bronicki
b0ccb6f096 Update documentation and ebuilds to reference 'main' branch instead of 'flatcar-master' 2025-05-26 18:04:26 +02:00
Daniel Zatovic
820bc74c3b sysext: Change the sysext seperator from : to |
To be able to use the SLOT syntax, which uses : we need to change the
sysext seperator to |.
2025-05-13 11:26:09 +02:00
Mathieu Tortuyaux
c193d0894d
ci-automation: add akamai testing
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-05-06 13:37:34 +02:00
James Le Cuirot
54027d7488
ci-automation: Set the right parameters for Hyper-V Gen 1/2 on Azure
We still perform some tests using Gen 1 on amd64. Standard_D2s_v6 does
not support this, but v5 will presumably be the last version that does,
so hardcode that case.

For Gen 2, you need to set the SKU for amd64 to work, and it has to use
the gallery like arm64 already does.

Using the gallery is possibly slightly slower, so ideally we would only
upload the image once like we do for AWS, but let's just get it working
for now.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2025-04-15 10:57:17 +01:00
James Le Cuirot
a00813ffc1
ci-automation: Bump Azure amd64 and arm64 machine sizes to v6
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2025-04-09 18:27:26 +01:00
Krzesimir Nowak
37496b3131 ci-automation: Pass image version to kola 2025-03-26 15:26:31 +01:00
Mathieu Tortuyaux
d7f8e23345
testing/openstack: clean everything before testing
It happens that we have some leftovers instances running in an "error"
state (the error comes from the OpenStack scheduled deletion). This
leads to instance creation error during the test because quota limits
are hit.

Let's clean-up everything before running the new tests.

This won't impact tests from other channels as OpenStack is limited to
one CI job at a time.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-02-27 13:01:54 +01:00
Mathieu Tortuyaux
0734e0674f
hetzner: use different locations for arm64/amd64
Hetzner is having some capacity issues[^1]:
- amd64: CPX plans (CPX11 to CPX51) - Falkenstein (FSN) and Nuremberg (NBG)
- arm64: CAX plans (CAX11 to CAX41) - Helsinki (HEL) and Nuremberg (NBG)

Let's switch the location:
* Helsinki (hel1) for amd64
* Keep Falkenstein (fsn1) for arm64

[^1]: https://status.hetzner.com/incident/aa5ce33b-faa5-4fd0-9782-fde43cd270cf

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2025-02-11 16:10:57 +01:00
James Le Cuirot
aa70fc929f
Delay generating test update payload in official builds
The update payload needs the kernel, which isn't signed during the image
job. Secure Boot is not currently enabled for update tests, but we may
as well do this properly. The production update upload is generated
manually at the end after everything has already been signed.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2024-12-20 16:29:32 +00:00
James Le Cuirot
bda73d4de3
ci-automation: Give the sbsign_image container a name
Otherwise it uses the default name, which can clash with other
concurrent jobs, especially jobs for the other arches.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2024-12-20 16:29:32 +00:00
Mathieu Tortuyaux
a3434af193
ci-config: do not use OpenStack gzipped image
In the test we should use the unzipped image, which is the one
documented.

This allows us to drop some modifications to our OpenStack instance.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2024-12-19 15:24:19 +01:00
James Le Cuirot
b3183b42c4
Do SB signing for official builds in a separate additional job
We only want to do the signing in Azure, not the whole image job. This
new job downloads the unsigned image, signs it, and replaces it.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2024-12-03 16:01:23 +00:00
James Le Cuirot
2853c77c66
ci-automation: Allow the arm64 tests to run on qemu_uefi_secure
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2024-11-13 12:19:23 +00:00
James Le Cuirot
d1ba9b19fb
Switch from raw (.fd) EDK2 firmware images to QCOW2, plus 4MB on amd64
The new arm64 firmware supporting Secure Boot (see next commit) is in
QCOW2 format only, avoiding the extra space taken up by the 64MB
padding. Supporting both raw and QCOW2 images would be messy, so switch
entirely to QCOW2.

Only the 4MB images are in QCOW2 format on amd64, so also switch away
from the 2MB images. 4MB images are now the default for most
distributions as they are needed to apply certain Windows updates.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2024-11-12 11:59:40 +00:00
James Le Cuirot
d67c395456
ci-automation: Include --qemu-ovmf-vars in qemu_update test for arm64
Kola's logic for choosing BIOS vs EFI isn't too smart, and not
specifying --qemu-ovmf-vars leads to it passing -bios to QEMU. This
doesn't make sense for arm64, but it did work anyway with the old
firmware in raw format. The new firmware in QCOW2 format doesn't work
this way.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2024-11-12 11:59:22 +00:00
Mathieu Tortuyaux
6e674b26d3
oem: provide proxmox images
Co-authored-by: Kai Lüke <pothos@users.noreply.github.com>
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2024-11-12 12:51:36 +01:00
Sayan Chowdhury
5a2c5c61a8 ci-automation: qemu: Support passing OVMF vars and secure-boot flag
Signed-off-by: Sayan Chowdhury <schowdhury@microsoft.com>
Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2024-09-17 11:01:06 +02:00
Mathieu Tortuyaux
ce763ff862
ci-automation: add hetzner testing
No need for garbage collection since one temporary project is allocated with 1h of
lifespan for each run.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Co-authored-by: Julian Tölle <julian.toelle97@gmail.com>
2024-09-06 10:58:51 +02:00
Krzesimir Nowak
f9d68df8dc
Merge pull request #2204 from flatcar/krnowak/add-buildx
Add app-containers/docker-buildx
2024-09-03 15:07:50 +02:00
Mathieu Tortuyaux
16f2327d48
Merge pull request #2213 from flatcar/tormath1/kernel
python: install feedparser for Kernel CVEs fetching
2024-09-02 15:43:38 +02:00
Krzesimir Nowak
9a3e26bf9b build_image,ci-automation: Add app-containers/docker-buildx to docker-flatcar sysext 2024-09-02 14:05:56 +02:00
Mathieu Tortuyaux
f3577f633f
python: install feedparser for Kernel CVEs fetching
packaging is not used with the new version of the show-fixed-kernel-cves
script.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2024-09-02 09:52:06 +02:00
Krzesimir Nowak
248057db13 ci-automation/image-changes: Simplify a bit
We can strip suffixes using an array notation instead of doing it in a
loop. Also drop an unused architecture parameter.
2024-08-15 14:45:40 +02:00
Krzesimir Nowak
d2ce797d6d ci-automation/image-changes: Print changes in extra sysexts 2024-08-15 14:41:50 +02:00
Jeremi Piotrowski
a35bd4cc38 ci-automation/vendor-testing/azure: Allow passing kola vnet
This adds support for providing a value for the newly introduce
--azure-kola-vnet kola parameter through the environment. This parameter is
meant to indicate that kola is running inside of a vnet in Azure and the kola
created storage account will be restricted to being accessed from that vnet.
This lets us disable public access to storage accounts.

Needs a corresponding change to jenkins jobs, because we have no way of
determining what vnet a worker node is connected to programmatically. So it
needs to be defined by the job.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2024-07-05 14:06:49 +02:00