4448 Commits

Author SHA1 Message Date
Kai Lueke
e4aaa43ef3 Merge pull request #176 from flatcar-linux/scripts
jenkins/kola/packet: Remove c3.small.x86 to try running cl.internet
stable-2905.2.6
2021-10-22 18:26:10 +02:00
Sayan Chowdhury
9828bfe68c 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:10 +02:00
Kai Lueke
f305e9d85f Merge pull request #175 from flatcar-linux/scripts
jenkins/kola/aws.sh: use larger arm64 instance type for kubeadm
2021-10-21 14:13:12 +02:00
Kai Lueke
f6e75e4f13 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:13:12 +02:00
Sayan Chowdhury
4a838603bb
Merge pull request #174 from flatcar-linux/scripts
packet: Update the base URL to point to bucket.release.f-ln
2021-10-21 17:29:17 +05:30
Sayan Chowdhury
888729346a
packet: Update the base URL to point to bucket.release.f-ln
Signed-off-by: Sayan Chowdhury <schowdhury@microsoft.com>
2021-10-21 17:29:17 +05:30
Sayan Chowdhury
a04d6d130d
Merge pull request #173 from flatcar-linux/scripts
do: Update the base URL to point to bucket.release.f-ln
2021-10-21 12:21:45 +05:30
Sayan Chowdhury
11a9e7ac52
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:45 +05:30
Kai Lueke
ebd356ade7 Merge pull request #170 from flatcar-linux/scripts
jenkins: use the SDK_URL_PATH path for DOWNLOAD_ROOT_SDK
2021-10-15 16:10:01 +02:00
Kai Lueke
5550d6905e 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 16:10:01 +02:00
Kai Lueke
ebc4c588a7 Merge pull request #169 from flatcar-linux/scripts
jenkins/sdk: download SDK Digest to prevent twice downloading
2021-10-15 15:38:54 +02:00
Mathieu Tortuyaux
0c2f89a269 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-15 15:38:54 +02:00
Mathieu Tortuyaux
29b9306b41
jenkins/toolchain: do not use the mantle embedded key to verify
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2021-10-14 09:57:32 +02:00
Mathieu Tortuyaux
4f3db2c4b7 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 14:47:26 +02:00
Mathieu Tortuyaux
5d74a34dd1 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-13 14:47:26 +02:00
Mathieu Tortuyaux
8feab1f52b 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-13 14:47:26 +02:00
Jeremi Piotrowski
08f1270980 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-13 14:47:26 +02:00
Mathieu Tortuyaux
5a1c7b4fbc 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-13 14:47:26 +02:00
Jeremi Piotrowski
75ea008003 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-13 14:47:26 +02:00
Jeremi Piotrowski
dec4722b76 jenkins: use gs:// uri for DOWNLOAD_ROOT_SDK so that we can apply authentication 2021-10-13 14:47:26 +02:00
Mathieu Tortuyaux
450ef36f75 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-13 14:47:26 +02:00
Mathieu Tortuyaux
c9bccac9a6 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-13 14:47:26 +02:00
Thilo Fromm
6018822518 set_version: safely iterate over argv
Co-authored-by: Kai Lüke <pothos@users.noreply.github.com>
2021-10-13 14:47:26 +02:00
Thilo Fromm
fc4731c6af build_image: add binhost option for dev container
Signed-off-by: Thilo Fromm <thilo@kinvolk.io>
2021-10-13 14:47:26 +02:00
Thilo Fromm
f508dec3a1 setup_board, update_chroot, dev container: use new bincache mirror
This updates the default settings in build scripts to use
https://mirror.release.flatcar-linux.net/
instead of the google storage bucket if no binhost or FLATCAR_DEV_BUILDS
is specified.

Defaults are updated for
* update_chroot (runs at SDK initialisation time)
* setup_board (creates /boards/[ARCH]/) chroots
* the development container
* set_version
2021-10-13 14:47:26 +02:00
Thilo Fromm
bf3005e872 build_library/release_util.sh: improve ssh opts for rsync
Co-authored-by: Kai Lüke <pothos@users.noreply.github.com>
2021-10-13 14:47:26 +02:00
Thilo Fromm
c176410f05 release_util.sh: script improvements
Co-authored-by: Krzesimir Nowak <knowak@microsoft.com>
2021-10-13 14:47:26 +02:00
Thilo Fromm
cbe348e481 release_util.sh: add rsync:// upload 2021-10-13 14:47:26 +02:00
Mathieu Tortuyaux
3861fda249 jenkins/manifest: use gsutil to download SDK version
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
2021-10-13 14:47:26 +02:00
Kai Lueke
c65ace1225 Merge pull request #156 from flatcar-linux/scripts
jenkins/kola/packet.sh: fix check for skipping machine type tests
2021-09-30 11:55:10 +02:00
Kai Lueke
0b74f0144e 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:55:10 +02:00
Kai Lueke
157706eb46 Merge pull request #153 from flatcar-linux/scripts
jenkins: run simple network test on different hardware
stable-2905.2.5
2021-09-29 13:56:58 +02:00
Kai Lueke
c6aa80f14b jenkins: run simple network test on different hardware
The Linux 5.10 stable kernel introduced a regression that we didn't
catch because we only run kola on one hardware type in Equinix Metal.
Validate that a simple network test works on various instance types of
the current hardware generation.
2021-09-29 13:56:58 +02:00
Jeremi Piotrowski
fce1c57533 Merge pull request #150 from kinvolk/flatcar-scripts
jenkins: add script to run kola arm64 tests under docker
stable-2905.2.4
2021-09-08 10:53:15 +02:00
Jeremi Piotrowski
acab1a4e2b jenkins: add script to run kola arm64 tests under docker
Included is a dockerfile that installs system deps of kola in an debian:11
image. For the test script, the control flow is:

qemu_uefi.sh
  qemu_uefi_arm64.sh
    (docker)
      qemu_common.sh

qemu_common uses the 'NATIVE_ARM64' variable passed by the jenkins job to control the behavior.
The differences are:

* use git directly to fetch (and verify) the manifest
* setup some symlinks so that /var/tmp is on the same BTRFS partition as $PWD/tmp
* setup symlinks so that we don't have to fixup installation of mantle to chroot
* run things directly instead of in chroot through cork

The whole script is executed as root, because kola requires root privileges
anyway and making kvm and sudo work with an arbitrary host user inside the
container would require a custom entrypoint to setup groups.

Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
2021-09-08 10:53:15 +02:00
Kai Lüke
1e5062e7ed Merge pull request #135 from kinvolk/flatcar-scripts
jenkins/kola/qemu(_uefi): run update test from previous release
stable-2905.2.3 stable-2905.2.2 stable-2905.2.1
2021-07-27 12:53:00 +02:00
Kai Lüke
617951b782 jenkins/kola/qemu(_uefi): run update test from previous release
The newly enabled update test performs an update from the built image
to itself. This is useful to test that the update mechanism didn't
break but it doesn't say if the built image will be accepted as update
from the previous official release.

Introduce an additional kola run that begins from the previous official
release and tests to update to the built image. Since the test does two
updates it also covers the case of updating from the built image to the
built image. Thus, we can skip the test in the normal run.
This new kola run is done first to keep the qemu-latest symlink valid
for the main test suite.
2021-07-27 12:53:00 +02:00
Kai Lüke
fce3d8090d jenkins/kola: share a single qemu script file 2021-07-27 12:53:00 +02:00
Kai Lüke
6b5b0d0493 Merge pull request #130 from kinvolk/flatcar-scripts
Generate test update payload and run the kola update test
stable-2905.2.0
2021-07-14 20:51:26 +02:00
Kai Lüke
1abca123db Generate test update payload and run the kola update test
The kola update tests need a dev-key-signed update payload. This was
lacking and caused the update tests to be skipped.
Generate the test update payload for both dev builds and release builds
and run the kola tests for both. The test update payload has a special
name to not confuse it with the real update payload for releases, and
we keep the previous behavior to sign releases. Therefore, the
generate_update function wasn't used but the extract_update function
extended with generating the additional test payload.
2021-07-14 20:51:26 +02:00
Kai Lüke
28fc861261 Merge pull request #128 from kinvolk/flatcar-scripts
jenkins/systemd-run-wrap.sh: randomize unit name suffix
2021-07-14 13:45:59 +02:00
Kai Lüke
fcda469ff2 jenkins/systemd-run-wrap.sh: randomize unit name suffix
The timestamp alone was not enough to prevent unit name clashes.
Add a random suffix to greater reduce the chance of hitting a clash.
2021-07-14 13:45:59 +02:00
Kai Lüke
4a5932be8a Merge pull request #127 from kinvolk/flatcar-scripts
jenkins: move all inline bash scripts to flatcar-scripts
2021-07-05 20:07:08 +02:00
Kai Lüke
5a790a07e2 jenkins: move all inline bash scripts to flatcar-scripts
The logic of the inline bash scripts of each job was sometimes
separated into the flatcar-scripts/jenkins/*.sh helpers but mostly
part of the Groovy file. This coupling had its advantages but also
downsides when special cases needed to be added for different release
versions. Other issues were that the inline scripts needed the
backslash character to be escaped twice and Jenkins was not good in
terminating the child processes when stopping a job. Having inline
bash scripts in Groovy also mandated the use of Jenkins to build and
release Flatcar Container Linux which hinders test builds in other CI
platforms.
Move the inline bash scripts fully to to the files in
flatcar-scripts/jenkins/ and create new ones for job that didn't have
a script there yet. Also invoke them through a systemd-run wrapper
script which ensures that all child processes are terminated and also
sets up /opt/bin as additional path for the static lbzcat binary.
A workaround for bash 4 was needed to use a temporary file instead of
the <(cmd) bash feature which caused a strange syntax error, otherwise
the bash commands are moved as they are.
2021-07-05 20:07:08 +02:00
Krzesimir Nowak
3cf5d83056
Merge pull request #121 from kinvolk/krnowak/jobs-be-gone
Drop `--jobs` parameter
beta-2905.1.0 alpha-2905.0.0 alpha-2879.0.1 alpha-2879.0.0
2021-05-05 19:25:20 +02:00
Thilo Fromm
95ae4c90b7
Merge pull request #124 from kinvolk/t-lo/fix-sdk-bootstrap-part-2
bootstrap_sdk: use local SDK ebuilds for stage1 (part 2)
alpha-2857.0.0
2021-04-23 16:24:21 +02:00
Thilo Fromm
11e862e2d5 jenkins/sdk.sh: add stage1 portage and overlay refs
Signed-off-by: Thilo Fromm <thilo@kinvolk.io>
2021-04-23 16:23:10 +02:00
Thilo Fromm
8877d7adcd bootstrap_sdk: use local SDK ebuilds for stage1
This change uses portage-stable and coreos-overlay from the local SDK
chroot (from /var/lib/gentoo/repos) in the stage 1 SDK bootstrap build.
This is part 2 of the SDK bootstrap stage 1 fix (part 1 is covered in
64d8a73ac09853a4b9b813b53299d37569c35071), which ensures stage 1 does
not introduce any changes in its ebuilds over the seed SDK.

The change also introduces an option to consciously divert from the
above enforcement by use of command line parameters:

--stage1_overlay_ref <gitref> will check out coreos-overlay and use
                                <gitref> for stage 1 instead of the
                                local SDK's
                                /var/lib/gentoo/repos/coreos-overlay

--stage1_portage_ref <gitref> will check out portage-stable and use
                                <gitref> for stage 1 instead of the
                                local SDK's
                                /var/lib/gentoo/repos/gentoo

Signed-off-by: Thilo Fromm <thilo@kinvolk.io>
2021-04-23 16:23:03 +02:00
Thilo Fromm
64d8a73ac0
Merge pull request #123 from kinvolk/t-lo/fix-sdk-bootstrap
Fix SDK bootstrap in bootstrap_sdk: no package updates in stage 1
beta-2823.1.3 beta-2823.1.2 beta-2823.1.1 beta-2823.1.0 alpha-2823.0.0
2021-03-15 15:06:13 +01:00
Thilo Fromm
659d4bf484
bootstrap_sdk: fix typo in top-level stage1 description
Co-authored-by: Sayan Chowdhury <sayan@kinvolk.io>
2021-03-05 12:11:18 +01:00