4565 Commits

Author SHA1 Message Date
Noel Georgi
1ec6683e0c
chore: use go-copy
Use go-copy and drop `pkg/copy`.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-03-07 19:51:28 +05:30
Artem Chernyshev
3c8f51d707
chore: move cli formatters and version modules to machinery
To be used in the `go-talos-support` module without importing the whole
Talos repo.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2024-03-07 16:29:15 +03:00
Andrey Smirnov
8152a6dd6b
feat: update Go to 1.22.1
Update Go and other dependencies as well.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-03-07 15:53:29 +04:00
Sebastiaan Gerritsen
8c79539914
docs: update replicated-local-storage-with-openebs-jiva.md
Change the path.

Signed-off-by: Sebastiаan Gerritsen <50165934+sebastiaan-dev@users.noreply.github.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-03-04 14:34:21 +04:00
Noel Georgi
f23bd81448
fix: syslog parser
Fixes a condition when the timestamp contains a single digit day.
This started failing when the month started :sweat_smile.

Also handle a case when `tag` and `hostname` are both missing.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-03-04 11:08:46 +05:30
Andrey Smirnov
bbed07e03a
feat: update Linux to 6.6.18
ZFS extension got re-enabled for 1.7.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-29 20:08:59 +04:00
Noel Georgi
8125e754b8
feat: imager overlay
Support overlays for imager.
The `Install` interface is not wired yet, it will be done as a different
PR.

This should be a no-op for existing imager.

Part of: #8350

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-02-29 20:44:31 +05:30
Andrey Smirnov
0b9b4da12a
feat: update Kubernetes to 1.30.0-alpha.3
See https://github.com/kubernetes/kubernetes/releases/tag/v1.30.0-alpha.3

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-29 14:36:09 +04:00
ebcrypto
3a764029ea
docs: fix typo in word governor
Docs typo.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-28 17:23:45 +04:00
Andrey Smirnov
d81d490003
chore: update CoreDNS renovate source
As we're using a mirrored image from `registry.k8s.io`, use that as a
source instead of GitHub. Mirrored image appears with some delay after
an official CoreDNS release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-27 17:12:25 +04:00
Andrey Smirnov
b2ad5dc5f8
fix: workaround a race in CNI setup (talosctl cluster create)
When provisioning VMs, each launch process sets up CNI network, and from
time to time CNI setup fails with something like:

```
error provisioning CNI network: plugin type="firewall" failed (add): running [/sbin/iptables -t filter -N CNI-ADMIN --wait]: exit status 4: iptables v1.8.10 (nf_tables)
```

This a race condition in the CNI plugins, and it looks like there is no
fix for it (see e.g. https://github.com/hashicorp/nomad/issues/8838).

As a workaround, take a mutex around CNI operation to serialize them.
CNI setup happens in different processes, so use a file-based mutex.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-27 15:28:12 +04:00
Andrey Smirnov
457507803d
fix: provide auth when pulling images in the imager
Use standard Docker/Podman auth methods plus `GITHUB_TOKEN`.

See #8363

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-27 11:50:48 +04:00
Spencer Smith
e707175ab5
docs: update config patch in cilium docs
We missed the `cluster` key in the config patch. Fixed to avoid user confusion.

Signed-off-by: Spencer Smith <spencer.smith@talos-systems.com>
2024-02-26 14:35:08 -05:00
Dmitriy Matrenichev
f8c556a1ce
chore: listen for dns requests on 127.0.0.53
Turns out there is actually no black magic in systemd, they simply listen on 127.0.0.53 and forward dns requests there in resolv.conf.
Reason is the same as ours — to preserve compatibility with other applications. So we do the same in our code.

This PR also does two things:
- Adds `::1` into resolv.conf for IPv6 only resolvers.
- Drops `SO_REUSEPORT` from control options (it works without them).

Closes #8328

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-02-26 20:59:12 +03:00
Andrey Smirnov
8872a7a210
fix: ignore 'no such device' in addition to 'no such file'
This errors pops up when `udevd` rescans the partition table with Talos
trying to mount a device concurrently.

This feels to be something new with Linux 6.6 probably.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-26 20:00:05 +04:00
Noel Georgi
1cb5443530
chore: uki der certs in iso
Add the uki signing cert into iso.

Fixes: #8131

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-02-26 19:35:14 +05:30
Andrey Smirnov
67ac6933d3
fix: handle errors to watch apid/trustd certs
Fixes #8345

Both `apid` and `trustd` services use a gRPC connection back to
`machined` to watch changes to the certificates (new certificates being
issued).

This refactors the code to follow regular conventions, so that a failure
to watch will crash the process, and they have a way to restart and
re-establish the watch.

Use the context and errgroup consistently.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-23 17:38:56 +04:00
Christian WALDBILLIG
c79d69c2e2
fix: only set gateway if set in context (opennebula)
Fix the network config setup.

Signed-off-by: Christian WALDBILLIG <christian@waldbillig.io>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-23 17:05:33 +04:00
Dmitry Sharshakov
4575dd8e74
chore: allow not preallocated disks for QEMU cluster
Preallocation still done by default for correct max usage estimates, but
in development environment it could be beneficial not to use up that
space, so I added a flag to disable preallocation

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-23 16:45:44 +04:00
Kai Hanssen
0bddfea818
chore: add oceanbox.io to adopters
Add [oceanbox.io](oceanbox.io) to adopters list.

Signed-off-by: Kai Hanssen <hanssen.a.kai@outlook.com>
Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-02-23 09:26:52 +05:30
Noel Georgi
1364275926
chore: use proper talos_version_contract for TF tests
Use proper `talos_version_contract` for TF tests.

Depends on: https://github.com/siderolabs/contrib/pull/36

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-02-22 22:35:10 +05:30
Andrey Smirnov
6bf50fdc14
chore: disable x/net/trace in gRPC to enable dead code elimination
See https://github.com/grpc/grpc-go/pull/6954

Before:

```
-rw-r--r-- 1 smira smira 68241300 Feb 20 20:08 _out/initramfs-amd64.xz
```

After:

```
-rw-r--r-- 1 smira smira 66376648 Feb 20 20:08 _out/initramfs-amd64.xz
```

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-22 14:46:35 +04:00
Utku Ozdemir
815a8e9cc5
feat: add partial config support to talosctl cluster create
Allow passing a partial config to the machines using the `--input-dir` flag of `talosctl cluster create`.
With this change, it is not required to have talosconfig inside the input directory, neither for the configuration documents to contain a `v1alpha1` config document. They can solely contain maintenance config, e.g., `KmsgLogConfig`.

This is useful for testing scenarios such as partial machine configs being provided via cloud user data.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2024-02-20 17:08:58 +01:00
Fabiano Fidêncio
64e9703f86
chore: add tests for the Kata Containers extension
Let's add a very basic test for the Kata Containers extension, mimicing
what's already in place for gVisor.

This depends on the work being done in:
https://github.com/siderolabs/extensions/pull/279

Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-02-20 18:49:47 +05:30
Andrey Smirnov
9b62919253
feat: update pkgs
Pulls in following PRs:

* https://github.com/siderolabs/pkgs/pull/893
* https://github.com/siderolabs/pkgs/pull/896
* https://github.com/siderolabs/pkgs/pull/889
* https://github.com/siderolabs/pkgs/pull/899
* https://github.com/siderolabs/pkgs/pull/902

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-20 15:52:41 +04:00
Andrey Smirnov
66f3ffdd4a
fix: ensure that Talos runs in a pod (container)
Drop the Kubernetes manifests as static files clean up (this is only
needed for upgrades from 1.2.x).

Fix Talos handling of cgroup hierarchy: if started in container in a
non-root cgroup hiearachy, use that to handle proper cgroup paths.

Add a test for a simple TinK mode (Talos-in-Kubernetes).

Update the docs.

Fixes #8274

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-20 15:06:48 +04:00
Noel Georgi
9dbc33972a
feat: add basic syslog implementation
Add a basic syslog listening on `/dev/log`.

Fixes: #8087

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-02-20 15:02:06 +05:30
Utku Ozdemir
0b7a27e6a1
feat: allow access to all resources over siderolink in maintenance mode
SideroLink is a secure channel, so we can allow read access to the resources. This will give us more control of the node via Omni and/or other systems using SideroLink.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2024-02-16 16:39:11 +01:00
pardomue
53721883d5
feat: support AWS KMS for the SecureBoot signing
Fixes #8197

Signed-off-by: pardomue <edgar_ruben.pardo_munoz@roche.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-16 18:41:46 +04:00
Andrey Smirnov
7ee999f8a3
fix: disable KubeSpan endpoint harvesting by default
This disables by default (if not specified in the machine config) the
endpoint harvesting for KubeSpan peers.

The idea was to observe Wireguard endpoints as seen by other peers in
the cluster, and add them to the list of endpoints for the node. This
might be helpful only in case of some special type of NATs which are
almost never seen in the wild today.

So disable by default, but keep an option to enable it.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-16 18:18:33 +04:00
Andrey Smirnov
7b87c7fe97
chore: bump Go dependencies
Update to address also some minor security alerts on the repo.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-16 14:53:54 +04:00
Justin Garrison
8e9596d3c6
docs: rpi talosctl install update
Replaces default architecture in install instructions

fixes #8129

Signed-off-by: Justin Garrison <justin.garrison@siderolabs.com>
2024-02-16 14:19:02 +04:00
Utku Ozdemir
493bb60f81
fix: correctly handle partial configs in DNSUpstreamController
Prevent `DNSUpstreamController` from panicking by checking if the `machine` section in the config is `nil`. This is the case when a machine has partial configuration, e.g., when the machine has only a `SideroLinkConfig` in its config.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2024-02-16 10:31:54 +01:00
Noel Georgi
6deb10ae25
chore: deprecate environmentFile for extensions
Deprecate `environmentFile` for extension services in favor of
`ExtensionServiceConfig`.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-02-16 12:07:47 +05:30
Noel Georgi
f8b4ee82ae
chore: update extensions test
Update extensions test to use strategic patches and use
`ExtensionServiceConfig` document.

Depends on: https://github.com/siderolabs/extensions/pull/320

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-02-15 23:50:05 +05:30
Andrey Smirnov
1366ce14a8
feat: update Kubernetes to v1.30.0-alpha.2
Talos Linux 1.7.0 will ship with Kubernetes v1.30.0.

Drop some compatibility for Kubernetes < 1.25, as 1.25 is the minimum
supported version now.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-15 21:56:56 +04:00
Andrey Smirnov
559308ef7e
fix: use MachineStatus resource to check for boot done
The previous implementation used old events API, which had several
issues:

* buffer overruns, and weird checks
* big timeout even if the all nodes are booted up

Replace that with direct reading of `MachineStatus` resource which is
available since Talos 1.2.0.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-15 20:33:56 +04:00
Noel Georgi
15e8bca2b2
feat: support environment in ExtensionServicesConfig
Support setting extension services environment variables in
`ExtensionServiceConfig` document.

Refactor `ExtensionServicesConfig` -> `ExtensionServiceConfig` and move extensions config under `runtime` pkg.

Fixes: #8271

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-02-15 20:16:29 +05:30
Matthieu S
3fe82ec461
feat: custom image settings for k8s upgrade
Allows to use custom registry/images.

Fixes: #8275

Co-authored-by:  @g3offrey
Signed-off-by: Matthieu STROHL <mstrohl@dive-in-it.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-15 17:54:01 +04:00
Dmitriy Matrenichev
fa3b933705
chore: replace fmt.Errorf with errors.New where possible
This time use `eg` from `x/tools` repo tool to do this.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-02-14 17:39:30 +03:00
Andrey Smirnov
d4521ee9c4
feat: update kernel with sfc driver and LSM updates
See:

* https://github.com/siderolabs/pkgs/pull/890
* https://github.com/siderolabs/pkgs/pull/891

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-14 14:48:45 +04:00
Noel Georgi
2f0421b406
fix: run xfs_repair on invalid argument error
Run `xfs_repair` for invalid argument error.

Part of: #8292

Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-02-13 23:01:33 +05:30
Michael Stephenson
f868fb8e8f
docs: update vmware tools url
Fixed URL to point to repository that exists.

Signed-off-by: Michael Stephenson <m.k.stephenson@outlook.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-13 14:35:11 +04:00
Dmitriy Matrenichev
fa2d34dd88
chore: enable v6 support on the same port
Replace `SO_REUSEPORT` with `SO_REUSEPORT`.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-02-13 01:02:27 +03:00
Dmitriy Matrenichev
83e0b0c19a
chore: adjust dns sockets settings
Enable some TCP optimization, set minimal TTL, set socket reuse.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-02-12 17:13:03 +03:00
Andrey Smirnov
a1ec1705bc
chore: update Go to 1.22.0
Finally!

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-12 14:33:38 +04:00
Andrei Kvapil
76b50fcd4a
chore: add Ænix to the Adopters list
Add Ænix to the Adopters list.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
Signed-off-by: Noel Georgi <git@frezbo.dev>
2024-02-12 15:02:08 +05:30
Dmitriy Matrenichev
5324d39167
chore: bump stuff
Also fix .golangci.yml file.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-02-09 19:19:25 +03:00
Andrey Smirnov
087b50f429
feat: support systemd-boot ISO enroll keys option
Fixes #8196

Example (profile excerpt):

```yaml
output:
  kind: iso
  isoOptions:
    sdBootEnrollKeys: force
  outFormat: raw
```

Defaults are still same (`if-safe` unless explicitly overridden).

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-02-09 17:48:13 +04:00
Dmitriy Matrenichev
afa71d6b02
chore: use "handle-like" resource in DNSResolveCacheController
Rework (and simplify) `DNSResolveCacheController` to use `DNSUpstream` "handle-like" resources.

Depends on https://github.com/cosi-project/runtime/pull/400

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2024-02-08 21:40:57 +03:00