4250 Commits

Author SHA1 Message Date
Artem Chernyshev
2960f93baa
feat: add readonly information to the disks API response
Forward device readonly info from `go-blockdevice` library.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2023-09-12 18:09:59 +03:00
Andrey Smirnov
735bf9ed08
feat: bring in Google vNIC driver
See https://github.com/siderolabs/pkgs/pull/802

The module is included by default, but loaded on demand.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-12 16:26:45 +04:00
Serge Logvinov
3f52320752
feat: upgrade-k8s without comments
This feature allows us to remove any comments from the machineconfig after
upgrading Kubernetes.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-12 14:50:56 +04:00
Nebula
e44875106e
docs: update deploying-cilium.md
Update cilium docs. `kubeProxyReplacement=strict` is deprecated. From Cilium Helm Chart values

```text
Valid options are "true", "false", "disabled" (deprecated), "partial" (deprecated), "strict" (deprecated).
ref: https://docs.cilium.io/en/stable/network/kubernetes/kubeproxy-free/
kubeProxyReplacement: "false"
```

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-09-11 21:07:39 +02:00
Andrey Smirnov
7046cae43d
chore: update gopacket to reduce init memory allocs
See

* https://github.com/siderolabs/talos/issues/7532
* https://github.com/gopacket/gopacket/pull/24

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-11 14:25:57 +04:00
Andrey Smirnov
da73b563dd
chore: update Go to 1.21.1
See https://go.dev/doc/devel/release#go1.21.minor

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-07 14:31:40 +04:00
Andrey Smirnov
5e11f08a63
fix: trim file path in the container image
When imager generates `installer` image, it should generate a layer
without `/` in front, e.g. `/usr/install` -> `usr/install`.

It works either way, but this seems to be cleaner.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-06 22:55:39 +04:00
Noel Georgi
3d2dad4e69
chore: show securtiystate on dashboard
Show Talos SecurityState and MountStatus on dashboard.

Fixes: #7675

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-09-06 21:46:25 +05:30
Noel Georgi
b485108740
chore: e2e-aws cleanup
Drop all hacky bash, depend on the `cluster_health` from TF code.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-09-05 23:31:55 +05:30
Noel Georgi
1eebbce357
chore: add output flag for talosctl config info
Add output flag for `talosctl config info`.

This allows to programatically gather endpoints for CI tests.

Eg:

```bash
_out/talosctl-linux-amd64 config info --output json | jq '.Contexts[].Endpoints[0]'
```

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-09-05 21:25:21 +04:00
Noel Georgi
3fbed806c4
chore: add tests for util-linux extensions
Add tests for utils-linux extensions.

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

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-09-05 19:29:50 +05:30
Andrey Smirnov
7c514a1a6c
docs: update header links
Replace Sidero Metal with Sidero Omni.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2023-09-05 15:20:59 +04:00
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