88 Commits

Author SHA1 Message Date
Kai Lueke
a9fbe9bbb5 Cover Equinix Metal m3.small.x86 instances in release test
The new m3.small instance does not have official Flatcar support yet
but we can already cover it in our PXE boot release tests.
The c3.small instances are legacy and m3.small is the new smallest
type.
2022-09-01 13:34:53 +02:00
Dongsu Park
f6c86f95c7 jenkins: fix PACKET_REGION to DC for more servers available
`c3.large.arm64` instances of Equinix Metal are available in metro
either `DA` or `DC`. However, recently arm64 CI builds started to fail
due to too few servers available in the DA metro. As the DC metro has
more servers available, let's change metro to DC.

How to check how many servers are available in a specific metro:

```
curl -X POST \
  -H "Content-Type: application/json" -H "X-Auth-Token: ..." \
  https://api.equinix.com/metal/v1/capacity/metros \
  -d '{"servers": [ { \
    "metro": "dc", \
    "plan": "c3.large.arm64", \
     "quantity": 34 \
  } ] }'
curl -X POST \
  -H "Content-Type: application/json" -H "X-Auth-Token: ..." \
  https://api.equinix.com/metal/v1/capacity/metros \
  -d '{"servers": [ { \
    "metro": "da", \
    "plan": "c3.large.arm64", \
    "quantity": 17 \
  } ] }'
```
2022-07-20 15:22:41 +02:00
Gabriel
94aa4a6c14 Update jenkins/vms.sh
Co-authored-by: Kai Lüke <pothos@users.noreply.github.com>
2022-07-01 14:42:49 +02:00
Gabriel Adrian Samfira
716c15a729 Rename zstd to zst
Rename sztd to zst and amend the changelog. The zstd binary generates a
compressed file with the .zst extension by default.

Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2022-07-01 14:42:49 +02:00
Gabriel Adrian Samfira
43c031ae00 Allow specifying multiple compression formats
Add the ability to specify a comma separated list of compression formats.

Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2022-07-01 14:42:49 +02:00
Gabriel Adrian Samfira
7a7eec19ad Use gzip compression for OpenStack images
This change makes the Jenkins job output openstack images using gzip
compression format. This allows OpenStack users to directly consume images
by simply specifying the URL to the image. Glance will then download the
image, unarchive it and add it to it's catalogue.

Fixes #575

Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2022-07-01 14:42:49 +02:00
Kai Lueke
7bd882326d jenkins/kola/azure.sh: Align the timeout with the GC duration
The kola test run time shouldn't be longer than the GC duration to
prevent failing tests caused by GC interference.
Align the Azure kola timeout with the GC duration.
2022-06-02 20:41:24 +09:00
Kai Lueke
24f9ddb2ad jenkins/kola/packet.sh: Remove hardcoded arm64 parallel test limit
The arm64 tests on EM sometimes hit the timeout.
Remove the hardcoded limit of 3 tests to default to 4 and otherwise
use the overwritten parameter.
2022-06-02 20:41:24 +09:00
Kai Lueke
bb5b7d541e jenkins/kola/packet: try to reduce test time by increasing parallelism
With the limit of 2 parallel tests, meaning 6 machines, the test time
is ~10 hours which is longer than the GC time. It seems that the
regional capacity is not so limited at the moment and we can try to
increase the number of machines.
Adjust the timeout to reflect the GC time and increase the parallel
tests to 3, meaning 9 machines.
2022-05-04 16:55:19 +09:00
Mathieu Tortuyaux
66213edb01 kola/em: increase timeout
number of test increased. While we don't have yet a way to reduce
testing time, let's increase the timeout.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2022-05-04 16:54:52 +09:00
Kai Lueke
434fe19bd3 Remove unused image variants
There is no difference anymore between the regular and Pro images.
Remove the definitions and stop building extra images.
2022-05-03 20:42:49 +09:00
Kai Lueke
366c777caf CI: Support comparing to current LTS and updating from it
When the restriction that the CI can't access the LTS release is gone
we can support to run the image comparison and the kola update test.
2022-04-29 16:35:31 +09:00
Kai Lueke
74576ca2d8 Use gangue compiled from Jenkins
These scripts happened to use the copy of gangue in the SDK which isn't
expected because it should use the binaries complied by Jenkins.
2022-04-26 15:34:31 +09:00
Mathieu Tortuyaux
76002c1452 kola/gce: shrink hostname to be lower than 63 char
GCP Pro is failing because hostname is > 63 char:
```
Apr  5 19:52:27.522820 kubelet[1762]: E0405 19:52:27.522513    1762 kubelet_node_status.go:93] "Unable to register node with API server" err="Node \"jenkins-gce-pro-5-91a967ef5450cb932bc5.c.flatcar-212911.internal\" is invalid: metadata.labels: Invalid value: \"jenkins-gce-pro-5-91a967ef5450cb932bc5.c.flatcar-212911.internal\": must be no more than 63 characters" node="jenkins-gce-pro-5-91a967ef5450cb932bc5.c.flatcar-212911.internal"
```

Let's remove `jenkins` and `gce` from the hostname, these
information are not critical for debugging purposes.

Hostname should now looks like
"basic-5-91a967ef5450cb932bc5.c.flatcar-212911.internal" or
"pro-5-91a967ef5450cb932bc5.c.flatcar-212911.internal"

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2022-04-26 13:02:19 +09:00
Kai Lueke
b625a4e1fd jenkins/images.sh: use correct board for comparison
The output always was about amd64 because the board was not set.
Pass the board along.
2022-03-17 17:07:15 +01:00
Jeremi Piotrowski
be97158f7d jenkins/kola/azure: forward azure private networking parameters to kola
These allow the configuration of virtual network for the created
instances to join, and tell kola to use the private instance IP for
connectivity.
2022-03-14 20:39:49 +01:00
Kai Lueke
4bba569b67 jenkins/kola/packet|aws: silence debug output of concurrent test
The concurrent tests' debug output is not helping and causes confusion.
2022-03-10 18:23:32 +01:00
Kai Lueke
256e131a53 jenkins/kola/aws: run tests on additional instance types
There was a regression for an instance type which could have been
prevented by testing.
Add the same extended test logic used for Equinix Metal to AWS.
2022-03-10 18:23:32 +01:00
Kai Lueke
29631bae7b jenkins/images: print kernel config changes
Sometimes the Linux build system changes and results in unexpected
kernel config results.
Print changes in the kernel config as part of the image diff report.
2022-03-10 12:45:21 +01:00
Kai Lueke
250be82cd8 jenkins/images: find channel from base channel variable
Using the tags on the branch is not enough to find the channel we want
to be the dev build be related to.
Use the base channel variable which was introduced for this.
2022-03-04 14:27:27 +01:00
Kai Lueke
b45f0db9c1 jenkins/images: print out image diff report
Often a change results in unexpected effects on the image, e.g., when
a wrong package version gets chosen or the package installs files under
/etc, or binaries of library dependencies get pulled in. Besides
inspecting the image manually, the package-diff tool also gives
valuable insights.
Run the package-diff tool in a comparison to the last release and print
the image URL alongside for convenience.
2022-02-16 12:11:24 +01:00
Mathieu Tortuyaux
84f1838b26
jenkins/kola/packet: use metro instead of facility
Follow up of: https://github.com/flatcar-linux/mantle/pull/281

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2022-01-26 16:30:03 +01:00
Dongsu Park
6892eaef62 jenkins: make release.sh publish arm64 for Stable
From flatcar-3033 on, arm64 images are available for Stable channel, we
need to also add arm64 to Stable boards.
2021-12-10 14:31:16 +01:00
Dongsu Park
084ceda84f jenkins: make release.sh publish arm64 for Beta
Now that arm64 images are available for Beta channel, we need to also
add arm64 to Beta boards.
2021-12-10 09:51:57 +01:00
Dongsu Park
b2da998bc1 jenkins: override PARALLEL_TESTS for ARM servers in da11
We override `PARALLEL_TESTS`, because kola run with PARALLEL_TESTS >= 4
causes the tests to provision >= 12 ARM servers at the same time. As the
da11 region does not have that many free ARM servers, the whole tests
will fail. With PARALLEL_TESTS=2 the total number of servers stays < 10.
In addition, we override `timeout` to 10 hours, because it takes more
than 8 hours to run all tests only with 2 tests in parallel.
2021-11-26 15:51:42 +01:00
Mathieu Tortuyaux
2cd9ef35de
kola/packet: override EM region for ARM64 server
Equinix Metal ARM server are not yet hourly available in the default `sv15` region
so we override the `PACKET_REGION` to `Dallas` since it's available in this region.
We do not override `PACKET_REGION` for both board on top level because we need to keep proximity
for PXE booting.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2021-11-22 20:01:49 +01:00
Sayan Chowdhury
43f130f15a jenkins/kola/packet: Remove c3.small.x86 to try running cl.internet
Signed-off-by: Sayan Chowdhury <schowdhury@microsoft.com>
2021-10-22 18:26:26 +02:00
Kai Lueke
6fae8cd26a jenkins/kola/aws.sh: use larger arm64 instance type for kubeadm
Currently the kubeadm tests fail on arm64 because the instance type
only offers 1 vCPU:
cluster.go:117: error execution phase preflight: [preflight] Some fatal errors occurred:
cluster.go:117: [ERROR NumCPU]: the number of available CPUs 1 is less than the required 2

Switch to the next larger instance type which has 2 vCPUS.
2021-10-21 14:12:23 +02:00
Sayan Chowdhury
343fc74dc7
packet: Update the base URL to point to bucket.release.f-ln
Signed-off-by: Sayan Chowdhury <schowdhury@microsoft.com>
2021-10-21 17:28:27 +05:30
Sayan Chowdhury
45f5638cf7
do: Update the base URL to point to bucket.release.f-ln
Signed-off-by: Sayan Chowdhury <schowdhury@microsoft.com>
2021-10-21 12:21:11 +05:30
Mathieu Tortuyaux
5c304ffac9
jenkins/kola/qemu: run update_chroot only for amd
if the test is ran for ARM64, there is no need to run `update_chroot`
since there is no SDK.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2021-10-19 11:29:56 +02:00
Kai Lueke
a668d961a9 jenkins: use the SDK_URL_PATH path for DOWNLOAD_ROOT_SDK
The SDK can either be a release SDK or a dev build SDK which are stored
in different paths. DOWNLOAD_ROOT_SDK should be based on the
SDK_URL_PATH value which indicates whether it's a release or dev build
path.
2021-10-15 14:35:08 +02:00
Mathieu Tortuyaux
97de2c4301
Merge pull request #169 from flatcar-linux/tormath1/fix-sdk-download
jenkins/sdk: download SDK Digest to prevent twice downloading
2021-10-14 17:40:45 +02:00
Mathieu Tortuyaux
46a03d3940
jenkins/sdk: download SDK Digest to prevent twice downloading
bootstrap_sdk runs catalyst.sh which will try to download the SDK if the
verify digest fails.
Importing the DIGEST allows to skip this step and to continue with the
previously downloaded SDK.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2021-10-14 17:39:59 +02:00
Jeremi Piotrowski
aae8bdf74b
Merge pull request #167 from flatcar-linux/jepio/simplify-pr-builds
jenkins/manifest: support PR numbers in PORTAGE_REF/OVERLAY_REF variables
2021-10-14 17:36:14 +02:00
Jeremi Piotrowski
824199efea jenkins/manifest: accept PR numbers in PORTAGE_REF/OVERLAY_REF
When PORTAGE_REF or OVERLAY_REF are numbers, we can change the way the refspec
is constructed to allow fetching a PR instead instead of a branch. Checking for
equality using '[' works to detect numbers, bash's '[[' doesn't.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2021-10-14 11:16:11 +02:00
Mathieu Tortuyaux
dcfe4cfa09
jenkins/toolchain: do not use the mantle embedded key to verify
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2021-10-13 18:23:54 +02:00
Mathieu Tortuyaux
4e1e707628
jenkins/kola/container: pass PORTAGE_BINHOST to container
Otherwise, it was failing since we check for unbound variable:
```
/bin/bash: line 1: PORTAGE_BINHOST: unbound variable
```

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2021-10-13 10:57:35 +02:00
Mathieu Tortuyaux
982a26c835
jenkins/sdk: add default DOWNLOAD_ROOT
Otherwise, the variable is empty and it creates errors later. Default
value is `gs://flatcar-jenkins`. Not `GS_DEVEL_ROOT` because if we check
the previous behavior, `DOWNLOAD_ROOT` was hardcoded with:
```shell
DOWNLOAD_ROOT_SDK=https://storage.googleapis.com/flatcar-jenkins/sdk
```

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2021-10-12 17:17:01 +02:00
Mathieu Tortuyaux
47f5feff68
jenkins/kola/container: fix verify-key sharing in systemd container
`$verify_key` actually holds `--verify-key=verify.asc` so of course
`systemd-nspawn` fails since it does not expect `--verify-key` value.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2021-10-12 16:27:29 +02:00
Jeremi Piotrowski
24128594e0
Merge pull request #163 from flatcar-linux/tormath1-jepio/ci-authenticated
jenkins: use private bucket with authentication for fetching binaries.
2021-10-12 13:33:22 +02:00
Jeremi Piotrowski
d9542cec7d jenkins/toolchains: fetch DIGESTS file to allow reusing downloaded SDK as seed
The catalyst build uses the same SDK version as seed as the current SDK, but
will only reuse the cached tarball if a DIGESTS file exists and is correct.
Prefetch this file to prevent the build from trying to access google storage
anonymously.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2021-10-12 13:32:10 +02:00
Mathieu Tortuyaux
46ac63fdee jenkins/vm: remove --sdk-url
`download-image` already holds the remote host with the --root flag.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2021-10-12 13:32:10 +02:00
Jeremi Piotrowski
cbf003e617 jenkins: use 'cork create' instead of 'cork update'
because we need to pass google credentials to update_chroot, and 'cork update'
doesn't support that.

Add --sdk-url-path to sdk.sh for new cork default.
2021-10-12 13:32:07 +02:00
Jeremi Piotrowski
93cf5aa5c3 jenkins: use gs:// uri for DOWNLOAD_ROOT_SDK so that we can apply authentication 2021-10-12 13:31:39 +02:00
Mathieu Tortuyaux
7ef55eb15d
kola/dev-container: override binhost to use private GCS
in this commit we make sure to use GCS bucket for dev container tests by
providing the required credentials and the associated fetch command.

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2021-10-11 14:42:09 +02:00
Mathieu Tortuyaux
998d2f4fc6
jenkins: add --json-key to cork update commands
it pulls https://github.com/flatcar-linux/mantle/pull/239 to be able to
use `--json-key` in order to access private GCS bucket

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2021-10-07 14:41:16 +02:00
Mathieu Tortuyaux
d9bf2e89c5
jenkins/manifest: use gsutil to download SDK version
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2021-10-06 17:27:23 +02:00
Sayan Chowdhury
ccdc52cc15
Merge pull request #155 from flatcar-linux/krnowak/trap-fixes
Fix the traps to align with bash 5.1 upgrade
2021-10-01 21:49:27 +05:30
Kai Lueke
e24c456889 jenkins/kola/packet.sh: fix check for skipping machine type tests
The cl.basic and cl.internet tests are different tests which wasn't
clear before. Also, the grep process returns an exit code of 1 if it
didn't find a match, causing the job to cancel. The list of tests is
space separated and should not be quoted but on the other hand, we
do have to handle a literal *.
Look for the right test and handle the grep exit code, and disable
globs for the subshell for preserving a literal *.
2021-09-30 11:50:30 +02:00