4238 Commits

Author SHA1 Message Date
Andrey Smirnov
6058c36023
fix: shorten VLAN link names to fit into the limit of 15 characters
Fixes #7679

This should be no-op if the link name is <= 10 chars, but with
predictable interface names based on MAC addresses, they have to be
shortened to make some space for VLAN ID.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-05 14:51:09 +04:00
Andrey Smirnov
9c2f765c86
fix: allow network device selector to match multiple links
Fixes #7673

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-04 20:37:04 +04:00
Andrey Smirnov
a04b986376
fix: update kubernetes library for 1.28 upgrade pre-checks
See https://github.com/siderolabs/go-kubernetes/pull/7

Fixes #7697

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-04 18:12:55 +04:00
Andrey Smirnov
f7473e4778
feat: update default Kubernetes to 1.28.1
See https://github.com/kubernetes/kubernetes/releases/tag/v1.28.1

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-04 16:07:03 +04:00
Andrey Smirnov
d693604a1d
chore: fix default image list in the release notes
The `talosctl images` command was renamed.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-04 15:44:04 +04:00
Andrey Smirnov
d91b5b3a31
feat: set environment variables early in the boot
Fixes #7696

This allows to set env variables from `talos.environment=` command line
arg.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-04 15:12:10 +04:00
Andrey Smirnov
c918c0855d
fix: set correct (1 year) talosconfig expiration
Fixes #7698

Also fix `talosctl config info` for `talosconfig` without a client
certificate (e.g. Omni-generated one).

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-04 14:46:28 +04:00
Andrey Smirnov
79bbdf454e
fix: set proper timeouts for KubePrism loadbalancer
The default timeouts are very aggressive, and we should use explicit
timeouts so that healh checks don't run that often.

Fixes #7690

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-01 00:16:09 +04:00
Andrey Smirnov
b8fb55d5c2
fix: use a mount prefix when installing a bootloader
This is not a problem in general, but when running multiple image
generation procedures using the same mount point is a problem.

This is a no-op if `MountPrefix` is not set (when installing/upgrading
vs. creating an image).

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-31 22:21:41 +04:00
Andrey Smirnov
44f59a8049
feat: improve imager APIs
* report the final output path of the asset
* allow 'cmdline' output (just to get the kernel cmdline, e.g. for PXE
  booting)
* support pre-pulled container images for extensions

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-31 20:52:58 +04:00
Andrey Smirnov
2d3ac925ea
refactor: update NTP spike detector
See https://github.com/siderolabs/talos/issues/7080#issuecomment-1696105986

The NTP spike detector code was refactored out of the main NTP code so
that it can be unit-tested.

I dropped one check which I think is causing false-positives in the
spike detector (when NTP offset is higher than the RTT of the best
packet received so far).

The overall flow resembles the one in systemd-timesync, the current
implementation has this check:

6639ac474e/src/timesync/timesyncd-manager.c (L357-L360)

This check was introduced in the initial release, after some
refactoring:

3dbc762003 (diff-4aa9995f07bb31b9884d40a7634f5f6d30245dfd26ac27b89cd5fd3bd4eef56aR429-R431)

There is no equivalent of it in the RFC:

https://datatracker.ietf.org/doc/html/rfc5905#appendix-A.5.2

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-29 20:56:42 +04:00
Spencer Smith
af0cc70e37
test: update e2e-aws to use worker groups
This PR updates the e2e-aws flow to use worker groups and an updated control plane variable setup.

Signed-off-by: Spencer Smith <spencer.smith@talos-systems.com>
2023-08-25 13:12:10 -04:00
Noel Georgi
d03dc7a8af
chore: validate new system extensions
Validate the amdgpu and intel-ice firmware extensions.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-08-25 17:18:19 +05:30
Noel Georgi
bbeb489aa8
chore: drop firmware from initramfs
Drop firmware from initramfs. Extra firmware can be added as system
extensions enabled through imager service.

Before:

```bash
❯ du -sh _out/initramfs-amd64.xz
58M	_out/initramfs-amd64.xz
```

After:

```bash
❯ du -sh _out/initramfs-amd64.xz
56M	_out/initramfs-amd64.xz
```

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-08-25 15:34:51 +05:30
Andrey Smirnov
3c9f7a7de6
chore: re-enable nolintlint and typecheck linters
Drop startup/rand.go, as since Go 1.20 `rand.Seed` is done
automatically.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-25 01:05:41 +04:00
Andrey Smirnov
c51e2c9b48
feat: update CoreDNS to 1.11.1
See https://github.com/coredns/coredns/releases/tag/v1.11.1

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-24 21:32:06 +04:00
Andrey Smirnov
8670450d28
release(v1.6.0-alpha.0): prepare release
This is the official v1.6.0-alpha.0 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-24 17:09:34 +04:00
Noel Georgi
6778ded29d
feat: add e2e-aws for nvidia extensions
Add e2e tests for nvidia

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-08-24 17:43:36 +05:30
Andrey Smirnov
74c07ed714
chore: update Go to 1.21
This fixes a problem in the `RouteSpecController` which is due to a
subtle (but correct) change in the behavior in the `stdlib`.

Also some small (but should be safe) bumps.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-23 22:52:04 +04:00
Andrey Smirnov
a28d72e9c2
fix: ova contents to be named disk.*
It looks like while our code accepted any random name for the contents
of `.ova`, it should be named `disk.*`.

Change the code accordingly.

Fixes #7663

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-23 22:05:39 +04:00
Andrey Smirnov
c0ea4d7ba5
fix: properly calculate overal of node address with subnet filters
Example: host has address `10.0.0.1/8`, while Kubernetes pod CIDR is
`10.244.0.0/16`. These two subnets overlap, but the address `10.0.0.1`
isn't contained in the `10.244.0.0/16` subnet.

This change fixes the check to make sure address is not contained vs.
the address subnet overlaps with the filter.

NB: this is still a bad idea to have host network subnet to overlap with
Kubernetes pod/service CIDRs.

Also refactor the unit-tests to use new (better ways) to do assertions.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-23 21:16:58 +04:00
Noel Georgi
d6b2719e2e
chore: drone: move extensions step to a function
Move drone extensions integration to a function. This allows us to
re-use the code and just depend on a single step rather than explicitly
defining all dependencies.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-08-23 20:56:43 +05:30
Andrey Smirnov
9608ef56dc
chore: allow bridge traffic with DHCP broadcast traffic
This is required for https://github.com/siderolabs/sidero/pull/1070, as
we need to allow DHCP traffic from Sidero controller running in a VM
through the bridge to other VMs.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-23 18:37:37 +04:00
Andrey Smirnov
c993164576
docs: fix the installing system extensions doc
Fixes #7658

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-23 16:50:56 +04:00
Noel Georgi
833895940b
chore: add tests for zfs extension
Add tests for ZFS and btrfs extensions.
Also fix the e2e-aws cron pipeline.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-08-23 11:16:25 +05:30
Andrey Smirnov
cb468c41cb
fix: copy proper modules to arm64 squashfs
Due to a mistake, the amd64 modules were copied 🤦

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-22 19:41:40 +04:00
Utku Ozdemir
ea0d6e8c6a
fix: prevent dashboard crashes when process info is not available
Processes and their info are not guaranteed to be present on the api-based data gathered by the dashboard. Therefore, we switch to using nil-safe access to the CPU time when rendering the process table.

Closes siderolabs/talos#7645.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2023-08-22 12:55:36 +02:00
Andrey Smirnov
e9077a6fb9
feat: filter the hostname to produce nodename
Fixes #7615

This extends the previous handling when Talos did `ToLower()` on the
hostname to do the full filtering as expected.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-22 12:41:57 +04:00
Andrey Smirnov
dc8361c1d5
fix: properly GC images supplied with both tag and digest
This is a follow-up fix for #7640

I noticed that image cleanup controller cleans up the images if
specified with both tag and digest.

The problem was incorrectly building image references in the expected
set of images, so they were incorrectly marked as unused.

Refactor the code to make the core part testable.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-21 21:04:24 +04:00
Andrey Smirnov
ccfa8de117
fix: automatically change rpi_4 board on upgrade
As `rpi_4` was removed in Talos 1.5, automatically migrate to
`rpi_generic`.

Fixes #7632

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-21 18:05:42 +04:00
Andrey Smirnov
b56e8b7d9b
fix: support 'List' type manifests
Fixes #7636

This support a `List`-type manifests by unwrapping them into individual
objects.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-21 16:48:37 +04:00
Andrey Smirnov
574d48e540
fix: use image digest when starting a container
First of all, it seems to be "right way", as it makes sure the image is
looked up by the digest.

Second, it fixes the case when image is specified with both tag and
digest (which is not supposed to be the correct ref, but it is used
frequently).

Talos since 1.5.0 stores images with the following aliases:

```
gcr.io/etcd-development/etcd:v3.5.9
gcr.io/etcd-development/etcd@sha256:8c956d9b0d39745fa574bb4dbacd362ffdc1109479432f54094859d4cf984b17
ghcr.io/siderolabs/kubelet:v1.28.0
ghcr.io/siderolabs/kubelet@sha256:50710f2cd3328c23f57dfc7fb00940d8cfd402315e33fc7cb8184fc660650a5c
sha256:50710f2cd3328c23f57dfc7fb00940d8cfd402315e33fc7cb8184fc660650a5c
sha256:8c956d9b0d39745fa574bb4dbacd362ffdc1109479432f54094859d4cf984b17
```

This change pulls the digest format (the last in this list) and uses it
to start a container.

Fixes #7640

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-21 15:48:59 +04:00
Andrey Smirnov
175747cea5
fix: ntp query error with bare IPv6 address
Fixes #7637

See 196f2d4b71

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-21 15:18:14 +04:00
Tim Jones
c8b507fb26
docs: fix kubeprism typo
Fix a small typo ion the KubePrism howto.

Signed-off-by: Tim Jones <tim.jones@siderolabs.com>
2023-08-18 12:40:32 +02:00
Sascha Desch
0cdcb2e0e8
docs: restructure docs for nvidia drivers for v1.4
Re-structure docs for proprietary NVIDIA docs for Talos v1.4.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-08-18 11:14:52 +05:30
Andrey Smirnov
676db97684
docs: fork docs for Talos 1.6
Create a copy of documentation for Talos 1.6.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-17 19:37:38 +04:00
Andrey Smirnov
92ad18c18f
fix: write correct capacity to the ovf
With the refactoring to 1.5, the confusion between bytes and megabytes
introduced this bug.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-17 18:54:28 +04:00
Noel Georgi
6b0373ebef
chore: move bash tests to integration
move extensions and secureboot tests to integration.
Makes it easier to test.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-08-17 19:58:35 +05:30
Andrey Smirnov
52b3d8d37c
docs: make Talos 1.5 documentation the default one
This matches upcoming Talos 1.5.0 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-17 15:08:44 +04:00
Andrey Smirnov
dc873df9b4
chore: fix the filenames of openstack images
They weren't picked up as release artifacts.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-17 13:36:35 +04:00
Noel Georgi
b5c0e7b24c
docs: update nvidia docs
Update NVIDIA docs to point to use pre-built extensions.

Ref: https://github.com/siderolabs/extensions/pull/201

Fixes: #7611

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-08-16 21:08:17 +05:30
Henry Sachs
9606e871e4
docs: update Jiva Pod Security Policy
Update pod security requirements.

Signed-off-by: Henry Sachs <henrysachs@gmail.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-16 17:25:05 +04:00
Andrey Smirnov
a86ed4362c
chore: update Kubernetes Go modules to 0.28.0
Follow-up for #7617.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-16 15:38:25 +04:00
Andrey Smirnov
97b4e3e91c
feat: update Kubernetes to 1.28.0
See https://github.com/kubernetes/kubernetes/releases/tag/v1.28.0

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-15 22:05:49 +04:00
Noel Georgi
79ca1a3dfb
feat: e2e-aws using tf code
e2e-aws using TF code.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-08-11 19:58:14 +05:30
Andrey Smirnov
bf3a5e0119
chore: add version compatibility for Talos 1.6
This will be backported to 1.5, so that Talos 1.5 machinery will still
provide compatibility for (future) Talos 1.6.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-11 16:09:08 +04:00
Andrey Smirnov
969e8097ce
feat: update Kubernetes to 1.28.0-rc.1
See https://github.com/kubernetes/kubernetes/releases/tag/v1.28.0-rc.1

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-11 15:39:58 +04:00
Noel Georgi
ca41b611e9
chore: drone jsonnet cleanup
Drone jsonnet cleanup.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-08-11 01:52:43 +05:30
Nico Berlee
bc198e98ef
docs: retain cilium autoMount pending upstream hostPath fix
Partial rollback of 76fa45a.

The cilium helm chart requires an fix to handle the hostPath
at /sys/fs/bpf when bpf.autoMount.enabled=false. The earlier commit
disabled bpf automount, removing the init container's mount. Helm
missed adding the hostPath, and neither /sys nor /sys/fs got added.
This made cilium wrongly mount /sys/fs/bpf.

Fixes error message at: https://github.com/siderolabs/talos/pull/7565#issuecomment-1671063014

Signed-off-by: Nico Berlee <nico.berlee@on2it.net>
Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-08-11 01:13:16 +05:30
Andrey Smirnov
86c94eff8d
refactor: docgen and config examples
Short version is: move from global variables/`init()` function into
explicit functions.

`docgen` was updated to skip creating any top-level global variables,
now `Doc` information is generated on the fly when it is accessed.
Talos itself doesn't marshal the configuration often, so in general it
should never be accessed for Talos (but will be accessed e.g. for
`talosctl`).

Machine config examples were changed manually from variables to
functions returning a value and moved to a separate file.

There are no changes to the output of `talosctl gen config`.

There is a small change to the generated documentation, which I believe
is a correct one, as previously due to value reuse it was clobbered with
other data.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-08-10 14:56:01 +04:00