126 Commits

Author SHA1 Message Date
Noel Georgi
5e9d836c3d
chore: add kernel module signtaure verification
Add kernel module signature verification for out of tree kernel modules.

Fixes: #7049

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-04-10 20:05:07 +05:30
Noel Georgi
df9b851fba
chore: load all external artifacts earlier
Load all external artifacts early in the build process so that the
binaries are available for e2e tests.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-03-20 12:29:24 +05:30
Noel Georgi
9933ebb6aa
chore: fix loaded artifacts file permission
Azure skips the file permissions when upload/downloaded from the object
store. Make sure all binaries under `_out` have executable permissions.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-03-17 17:44:59 +05:30
Spencer Smith
e9962bc3ea
chore: update CI to tag azure buckets
This PR updates CI to remove the immutability policy and tags the azure
"containers" (aka buckets) with a ci=true tag. This will allow us to
handle the deletion of buckets with the cloud-cleaner app.

Signed-off-by: Spencer Smith <spencer.smith@talos-systems.com>
2023-03-13 14:09:06 -04:00
Spencer Smith
05b0b721c9
chore: move blob storage to azure for builds
This PR moves blob storage to azure.

Signed-off-by: Spencer Smith <spencer.smith@talos-systems.com>
2023-03-04 15:50:04 -05:00
Noel Georgi
a78281214d
feat: add cilium e2e tests
Add cilium e2e tests. The existing cilium check was very old, update to
latest cilium version and also add a test for KPR strict mode.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-03-03 20:03:25 +05:30
Noel Georgi
5a01d5fd47
chore: run extension build as downstream
Run extensions build as downstream

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-02-27 20:11:10 +05:30
Andrey Smirnov
3d7566ec74
test: update Canal CNI manifest URL
With recent changes to Calico website, old URL returns 404.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-02-08 23:20:56 +04:00
Noel Georgi
0ba5e59f69
fix: drone config for renovate PR's
Fix drone config to exclude renovate pushes.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-01-30 19:01:13 +05:30
Andrey Smirnov
006449e464
test: build integration test early in the pipeline
If we don't pre-build, it's getting built each time the `e2e-*` step
runs, and we have some running in parallel.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-24 16:20:51 +04:00
Noel Georgi
812a2877cd
chore: bump deps + renovate cleanup
Bump dependencies.
Disable renovate for PR's and skip un-needed update checks.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-01-24 00:42:58 +05:30
Andrey Smirnov
260684a930
chore: use build-container image for s3cmd
Looks like s3cmd image is broken now.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-24 16:32:08 +04:00
Andrey Smirnov
1cfb6188bc
feat: implement support for cgroupsv1
Use boot kernel arg `talos.unified_cgroup_hierarchy=0` to force Talos to
use cgroups v1. Talos still defaults to cgroupsv2.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-11 15:49:25 +04:00
Andrey Smirnov
96aa9638f7
chore: rename talos-systems/talos to siderolabs/talos
There's a cyclic dependency on siderolink library which imports talos
machinery back. We will fix that after we get talos pushed under a new
name.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-03 16:50:32 +04:00
Serge Logvinov
29f2195e13
feat: support exoscale cloud
Add Exoscale cloud-init support.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-10-28 17:52:55 +04:00
Kris Reeves
a0151aa13e
feat: add generic rpi u-boot support
This commit adds support for building Talos for the
Compute Module 4 and other generic Raspberry Pi
hardware.

Fixes: #6273

Signed-off-by: Kris Reeves <kris@pressbuttonllc.com>
Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-09-26 21:04:07 +05:30
Andrey Smirnov
276d4175bb
chore: bump extension versions in testing
Test with recent versions.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-21 17:16:31 +04:00
Andrey Smirnov
13fdfaffc4
test: fix up default branch name
master -> main

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-19 15:35:44 +04:00
Andrey Smirnov
f424e53404
fix: stop containers more thoroughly
Don't skip pods which are not ready, try still to stop containers inside
not ready pod sandboxes.

Re-enable the test with Canal CNI (upstream Calico got fixed).

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-12 20:16:40 +04:00
Marvin Drees
cdb6bb2cc7
feat: add Nano Pi R4S support
This commit adds initial support for the Nano Pi
R4S from Friendlyelec. This device is a networking focused
rk3399 based SBC with two 1G ethernet interfaces,
making it perfect for edge or SOHO deployments.

Signed-off-by: Marvin Drees <marvin.drees@9elements.com>
Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-09-02 23:37:07 +05:30
Andrey Smirnov
2f2d97b6b5
fix: don't wait for the hostname in maintenance mode
Fixes #6119

With new stable default hostname feature, any default hostname is
disabled until the machine config is available.

Talos enters maintenance mode when the default config source is empty,
so it doesn't have any machine config available at the moment
maintenance service is started.

Hostname might be set via different sources, e.g. kernel args or via
DHCP before the machine config is available, but if all these sources
are not available, hostname won't be set at all.

This stops waiting for the hostname, and skips setting any DNS names in
the maintenance mode certificate SANs if the hostname is not available.

Also adds a regression test via new `--disable-dhcp-hostname` flag to
`talosctl cluster create`.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-08-23 17:52:20 +04:00
Andrey Smirnov
5dd1b40020
feat: disable Kubernetes discovery backend by default
Fixes #5827

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-08-10 22:25:31 +04:00
Larry Rosenman
c92c90655a
feat: build talosctl for FreeBSD
This PR adds support for building talosctl for FreeBSD on
amd64 and arm64 architectures.

It also pulls in the latest go-blockdevice library to ensure the FreeBSD
stubs are there for proper build.

Signed-off-by: Spencer Smith <spencer.smith@talos-systems.com>
2022-07-14 20:21:14 -04:00
RyanSquared
63caa281ae
fix: create native image format for DigitalOcean
This change replaces the gzipped tar with a gzipped image, which
DigitalOcean natively supports uploading, and means that it can be
linked directly to the image when using, for example, Terraform.

Signed-off-by: Ryan Heywood <me@ryansquared.pub>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-06-23 16:24:00 +04:00
Andrey Smirnov
da2985fe1b
fix: respect local API server port
It wasn't used when building an endpoint to the local API server, so
Talos couldn't talk to the local API server when port was changed from
the default one.

Fixes #5706

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-06-09 00:33:49 +04:00
Tim Jones
0c91c89f4f
chore: revert day-two tests for csi tests
This reverts commit d1294d014f5bee7fc1b5dfd6865f22b22f18f5f1.

Signed-off-by: Tim Jones <tim.jones@siderolabs.com>
2022-06-08 11:04:00 +02:00
Noel Georgi
1e4320b64e
chore: add support for rockpi 4A and 4B
Add support for RockPi 4A and 4B

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-04-06 23:35:16 +05:30
Andrey Smirnov
c26fa4ccc1
test: push GITHUB_TOKEN to the e2e-aws/gcp steps
This should avoid constant GitHub API rate limiting errors.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-03-31 16:55:55 +03:00
Andrey Smirnov
883d401f9f
chore: rename github organization to siderolabs
Go module import paths still use talos-systems, packages use new
siderolabs name.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-03-23 21:07:46 +03:00
Tim Jones
d1294d014f
chore: add day-two tests for e2e-qemu
Uses Sidero Labs d2ctl to install a small sample of
common cluster services to ensure the Talos cluster
is capable.

Signed-off-by: Tim Jones <tim.jones@siderolabs.com>
2022-03-22 20:53:07 +01:00
Andrey Smirnov
18a21b5f24
chore: add dependency images-essential -> images
This is needed to make sure that those steps don't run in parallel on
release builds, as they write same output files.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-03-14 18:32:03 +03:00
Andrey Smirnov
09efa62f68
chore: re-enable kexec and default to UEFI booting in tests
Fixes #4947

It turns out there's something related to boot process in BIOS mode
which leads to initramfs corruption on later `kexec`.

Booting via GRUB is always successful.

Problem with kexec was confirmed with:

* direct boot via QEMU
* QEMU boot via iPXE (bundled with QEMU)

The root cause is not known, but the only visible difference is the
placement of RAMDISK with UEFI and BIOS boots:

```
[    0.005508] RAMDISK: [mem 0x312dd000-0x34965fff]
```

or:

```
[    0.003821] RAMDISK: [mem 0x711aa000-0x747a7fff]
```

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-03-02 21:52:18 +03:00
Andrey Smirnov
b2bf3117ff
feat: implement extension services
Fixes #4694

User services run alongside with Talos system services.
Every user service container root filesystem should be already present
in the Talos root filesystem.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-02-22 23:11:20 +03:00
Andrey Smirnov
063a9e1657
test: pre-fetch CLI tools
As `_out` is a shared volume across Drone steps, we should prefetch CLI
dependencies early, as fetching them concurrently from multiple steps
might lead to surpising results.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-02-22 22:17:11 +03:00
Andrey Smirnov
df0e388a4f
feat: extract firmware part of system extensions into initramfs
Fixes #4816

This changes the way system extensions are packaged into the squashfs
images: `/lib/firmware` is now moved out of the future squashfs images
and becomes part of `initramfs` to make firmware available in the early
boot.

Talos will bind-mount `/lib/firmware` into rootfs as well, so it will be
available in the rootfs as well.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-02-09 22:58:45 +03:00
Noel Georgi
151c9df091
chore: add CSI tests for e2e-qemu
Add tests for using rook as CSI for e2e-qemu
Allow specifying cpu/memory for workers

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-01-27 20:06:10 +05:30
Andrey Smirnov
0bf161dffb
test: add integration test for system extensions
This verifies system extensions via the gVisor system extension.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-01-26 23:29:15 +03:00
Noel Georgi
6d8bea5d55
feat: jetson nano SoC
Support Jetson Nano SoC

Depends on https://github.com/talos-systems/pkgs/pull/380

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-01-18 20:12:54 +05:30
Serge Logvinov
2869b5eeac
feat: add oraclecloud.com platform support
* cloud-init for oraclecloud (IMDSv2)
* amd64/arm64 arch
* set DHCPv6 on if IPv6 subnet allocated

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-01-14 16:56:37 +03:00
Andrey Smirnov
944f13221d
chore: fix release pipeline
Looks like I missed adding new steps.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-12-30 17:46:00 +03:00
Andrey Smirnov
b3fbb2f312
test: don't build all images in the default CI pipeline
Instead, build all images for a release and in the integration pipeline
which is triggered `nightly` and can be promoted to with
`/promote integration-images`.

This saves time and resources on regular builds.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-12-24 22:56:34 +03:00
Andrey Smirnov
a5a6c720e9
chore: remove boot-{arch}.tar.gz artifact
Fixes #3311

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-12-07 17:21:00 +03:00
Andrey Smirnov
2a0da06247
feat: split installer and imager images
The `installer` image is used for initial install and upgrades, so it
contains only Talos artifacts for the same arch as the image

The `imager` image is used to produce Talos images, so it contains artifacts
for all arhitectures, so that it's possible e.g. to build Raspberry PI
Talos image on amd64 machine

Unpacked size comparison for amd64 (before this change, size of
`installer` was same as `imager` size):

```
REPOSITORY                               TAG                                      IMAGE ID       CREATED         SIZE
ghcr.io/smira/installer                  v0.14.0-alpha.2-8-g73293bc2-dirty        264995cf56df   4 minutes ago   176MB
ghcr.io/smira/imager                     v0.14.0-alpha.2-8-g73293bc2-dirty        3ba8e0176565   6 minutes ago   616MB
```

As the `installer` image is pulled into `tmpfs` on upgrade, it's important
to have it as small as possible to avoid putting too much pressure on
node memory.

Both images are generated anyways for both `amd64` and `arm64` target
architectures.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-12-03 14:37:45 +03:00
Andrey Smirnov
6dcce20e6f
test: set proper pod CIDR for Cilium tests
This fixes the issue with kubelet picking up wrong IP on restart, as
Talos doesn't know pod IPs (Cilium is using its own pod CIDR, it doesn't
look up Kubernetes settings).

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-11-15 23:50:00 +03:00
Andrey Smirnov
e4e8e8737f
test: disable e2e-misc test with Canal CNI
Canal latest is broken right now:
https://github.com/projectcalico/cni-plugin/issues/1214

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-11-12 13:25:58 +03:00
Andrey Smirnov
68c420e3c9
feat: enable cluster discovery by default
This enables cluster discovery by default for Talos 0.14. KubeSpan is
not enabled by default.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-10-15 14:46:32 +03:00
Andrey Smirnov
9bd4838ac1
chore: stop using sonobuoy CLI
We already have (better) way to run short conformance tests via
`talosctl`.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-10-15 12:34:53 +03:00
Artem Chernyshev
877a2b6fc0
test: bump CAPI components to v1alpha4
Alpha versions of talos providers for now.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2021-10-12 12:48:15 +03:00
Andrey Smirnov
8fcd421967
chore: fix integration-qemu-race
We don't need to build for arm64, as the test runs on amd64.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-10-08 21:56:28 +03:00
Andrey Smirnov
ce65ca4e4a
chore: build using only amd64 builders
Our CI amd64 builders are 3-4 times faster to build Talos than our arm64
builders when building Talos.

Our Dockerfile was restructured a while ago to support cross-compilation
on all platforms but CI was still using amd64/arm64 workers, so arm64
part was done on arm64 builders.

As our CI runs on Talos, `binfmt_misc` is not enabled in the kernel, but
buildkit has built-in QEMU emulation layer which works just fine for
those small pieces which actually need to run arm64 binaries on amd64
(mostly `apk add` in the installer container). Interesting enough,
buildkit QEMU support fails for `ca-certificates` script which runs
after install. At the same time I believe we don't need
`ca-certificates` in the installer, as installer doesn't download
anything from the network, and `ca-certificates` were added a while ago
when installer was actually downloading configuration on its own.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-10-05 23:02:37 +03:00