748 Commits

Author SHA1 Message Date
Michael Vorburger
4c31b9b1a3
docs: clarify what the deal is with /var
Explain when EPHEMERAL gets wiped.

Signed-off-by: Michael Vorburger ⛑️ <mike@vorburger.ch>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-07 00:05:22 +04:00
Andrey Smirnov
f0dddca2a3
docs: expand help for 'talosctl get'
Make it more obvious how to get list of all resources.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-05 17:42:28 +04:00
Andrey Smirnov
5b2960efff
fix: introduce 'overridePath' setting and fix Talos resolver
There was inconsistency in the way `/v2` was appended to registry
endpoint path between containerd (CRI) and Talos:

* Talos only appended `/v2` to empty paths
* containerd appended `/v2` if it's not the suffix already

Fix Talos to act same as containerd, and introduce a setting
`overridePath` which stops both Talos and `containerd` from appending
`/v2` (should be required with e.g. Harbor registry mirror).

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-05 12:50:53 +04:00
Utku Ozdemir
7ab140a94a
feat: add talosctl machineconfig patch command
Add talosctl machineconfig patch command which accepts a machine config as input and a list of patches, applying the patches and writing the result to a file or to stdout.

Link `talosctl machineconfig gen` to `talosctl gen config`, so they work the same way.

Closes siderolabs/talos#6562.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2022-12-02 15:42:48 +01:00
Utku Ozdemir
44e2799b8c
feat: add stdout and single config type support to talosctl gen config
Add support to specify the types of outputs to be generated by talosctl gen config.

Add support for writing a single type of output to stdout instead of a file.

Related to siderolabs/talos#6562.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2022-12-01 16:55:22 +01:00
Noel Georgi
4452f0e179
docs: bump talos version
Bump last released Talos version.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-12-01 20:00:26 +05:30
Andrey Smirnov
38e57bd12b
feat: update Kubernetes to v1.26.0-rc.1
See https://github.com/kubernetes/kubernetes/releases/tag/v1.26.0-rc.1

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-01 14:53:36 +04:00
Andrey Smirnov
fdbd380f60
feat: use 'registry.k8s.io' for Kubernetes images
See https://kubernetes.io/blog/2022/11/28/registry-k8s-io-faster-cheaper-ga/

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-28 14:13:54 +04:00
Andrey Smirnov
732c459ecf
fix: parse and apply DHCP settings properly from cmdline
This allows multiple `ip=` parameters, and fixes setting DHCP for any
link on the cmdline.

Fixes #6475

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-24 21:47:29 +04:00
Andrey Smirnov
e85e64d6f8
docs: document metal-iso configuration method
This exists in the code, but it's not documented properly.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-24 19:48:20 +04:00
Steve Francis
c27adbe541
docs: update getting started
Fixed typos, added info about how to detect disks, simplified.

Signed-off-by: Steve Francis <steve.francis@talos-systems.com>
2022-11-24 14:09:41 +01:00
Michael Vorburger ⛑️
49a4b14947
docs: clarify talosctl apply-config & talosctl get machineconfig
Fixes: #6522

Signed-off-by: Michael Vorburger ⛑️ <mike@vorburger.ch>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-22 23:25:23 +04:00
Andrey Smirnov
6bce06f622
feat: update etcd 3.5.6
See https://github.com/etcd-io/etcd/blob/main/CHANGELOG/CHANGELOG-3.5.md

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-21 20:35:52 +04:00
Serge Logvinov
e432579d48
feat: kubespan node endpoints filter
This feature allows us to use only IPv4 or IPv6 stack to reach the peers.
Also, it can help to not share the node-specific IPs,
which cannot be accessible at all.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
2022-11-18 19:55:42 +04:00
Dmitriy Matrenichev
1f1128028a
chore: add flag to force talos cluster folder deletion
This is handy when the node with qemu went down, so you had to manually delete the folder after it restarted.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2022-11-17 20:15:50 +03:00
Utku Ozdemir
3d30ce6d7a
feat: add util function to extract GRPC status from error
Add a function to the machinery to extract GRPC status.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2022-11-16 23:24:31 +01:00
Andrey Smirnov
9e44341c44
release(v1.3.0-alpha.2): prepare release
This is the official v1.3.0-alpha.2 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-16 22:00:33 +04:00
Andrey Smirnov
9382443baa
feat: update Kubernetes to v1.26.0-rc.0
Removed deprecated arg from the kubelet spec, as the arg is going to be
removed completely in v1.27 (kubelet defaults to remote CRI anyways).

Go modules not updated due to https://github.com/kubernetes/kubernetes/issues/113951

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-16 17:07:06 +04:00
Andrey Smirnov
6ffc381c59
feat: implement CRI configuration customization
This is tricky, as containerd doesn't merge itself plugin configuration
across multiple files. TOML can't load configuration correctly from
concatenated files.

Fixes #6390

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-16 15:38:44 +04:00
Philipp Sauter
e1e340bdd9
feat: expose Talos node labels as a machine configuration field
We add the `nodeLabels` key to the machine config to allow users to add
node labels to the kubernetes Node object. A controller
reads the nodeLabels from the machine config and applies them via the
kubernetes API.
Older versions of talosctl will throw an unknown keys error if `edit mc`
 is called on a node with this change.

Fixes #6301

Signed-off-by: Philipp Sauter <philipp.sauter@siderolabs.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-15 21:25:40 +04:00
Martin Stone
c78bbbfda3
docs: specify that only XFS partitions are detected
See #6483. Also fix a minor typo.

Signed-off-by: Martin Stone <martin@d7415.co.uk>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-14 23:55:55 +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
3866d0e334
feat: update Kubernetes to v1.26.0-beta.0
See https://github.com/kubernetes/kubernetes/releases/tag/v1.26.0-beta.0

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-11 15:06:34 +04:00
Utku Ozdemir
804762c597
feat: add timeout to cli action tracking, track by default & refactor
Add a timeout of 15 minutes to the trackable CLI actions reboot, reset, shutdown and upgrade and refactor the action tracking.
Make waiting for these operations the default behavior (set `--wait` to `true` by default).

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2022-11-10 17:10:26 +01:00
Philipp Sauter
4e114ca120
feat: use the etcd member id for etcd operations instead of hostname
We add a controller that provides the etcd member id as a resource
and change the etcd related commands to support member ids next to
hostnames.

Fixes: #6223

Signed-off-by: Philipp Sauter <philipp.sauter@siderolabs.com>
2022-11-10 19:17:56 +04:00
Serge Logvinov
06fea24414
feat: expand platform metadata resources
* add IPv6 to the ExternalIPs resource.
* platformMetadata can define Spot instances.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-07 18:57:17 +04:00
Noel Georgi
6b771bc739
chore: bump deps
Bump kernel to 5.15.77
Bump Flannel to 0.20.1
Bump Kubernetes to v1.26.0-alpha.3

Bump go deps

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-11-04 21:48:12 +05:30
Andrey Smirnov
30bbf6463a
refactor: use siderolabs/net version with netip.Addr
Replace most of `net.IP` usage in Talos with `netip.Addr`, refactor code
accordingly.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-02 14:21:03 +04:00
Andrey Smirnov
d7070f5e74
release(v1.3.0-alpha.1): prepare release
This is the official v1.3.0-alpha.1 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-10-31 16:43:11 +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
Serge Logvinov
8bfa7ac1d6
feat: platform metadata resource
This resource stores common platform metadata information.
Such as:

* Hostname
* Region
* Zone
* InstanceType (SKU)
* InstanceID
* ProviderID (CCM cloud native magic string)

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-10-28 14:32:39 +04:00
Andrey Smirnov
6c3d11b49e
docs: admission control patch note
This shows how to patch Pod Security config.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-10-27 16:36:37 +04:00
Philipp Sauter
23842114f0
feat: support encryption with secretbox
We add support for encryption with secretbox. While AESCBC is still
supported secretbox will take precedence if both are configured.
Secretbox is not the default encryption for new clusters.

Fixes: #6362

Signed-off-by: Philipp Sauter <philipp.sauter@siderolabs.com>
2022-10-26 19:06:53 +02:00
Steve Francis
f6773c472c
docs: talos support on equinix metal
Update docs to reflect Talos is a supported OS on Equinix Metal.

Signed-off-by: Steve Francis <steve.francis@talos-systems.com>
Signed-off-by: Tim Jones <tim.jones@siderolabs.com>
2022-10-26 16:06:52 +02:00
Philipp Sauter
c6e1702eca
feat: use URL-based manifests to present static pods to the kubelet
Previously static pod manifests were written to and read from a folder
on the disk. We add a controller that cleans up the default static pod
manifests on the disk and serves them as a PodList manifest via HTTP.
The to the manifest is injected into the kubelet. File based static pod
manifests are still supported and may be enabled by setting the key
kubelet -> enableManifestsDirectory in the machine config.

Fixes #5494

Signed-off-by: Philipp Sauter <philipp.sauter@siderolabs.com>
2022-10-25 14:30:19 +02:00
Steve Francis
136a795e55
docs: update system requirements to mention dedicated disk usage
Mention minimum requirmeents.

Signed-off-by: Steve Francis <steve.francis@talos-systems.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-10-24 21:38:05 +04:00
Tim Jones
e6fba7d3bc
chore: update dependencies
Updates:
* pkgs v1.3.0-alpha.0-33-g8fe5cbc
* tools v1.3.0-alpha.0-20-g3b5f89a
* aws-sdk-go v1.44.120
* docker v20.10.20+incompatible
* fsnotify v1.6.0
* nftables v0.0.0-20221015190445-4f5cd5826fbd
* gen v0.4.0
* grpc-proxy v0.4.0
* spf13/cobra v1.6.0
* u-root v0.10.0
* x/net v0.1.0
* x/sync v0.1.0
* x/sys v0.1.0
* x/term v0.1.0
* x/time v0.1.0
* grpc v1.50.1
* genproto v0.0.0-20221018160656-63c7b68cfc55
* Linux kernel 5.15.74

Signed-off-by: Tim Jones <tim.jones@siderolabs.com>
2022-10-21 15:20:01 +04:00
Serge Logvinov
dc70d892a3
fix: support setting KubeSpan link MTU
Kubespan creates package size more than MTU external interface size.

This PR adds capabilities to change MTU size through machine config.
And sets MTU of the default kubespan route.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-10-17 14:39:15 +04:00
Andrey Smirnov
9c78b3aff4
feat: update Kubernetes to v1.26.0-alpha.2
See
https://github.com/kubernetes/kubernetes/releases/tag/v1.26.0-alpha.2

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-10-12 22:23:03 +04:00
Andrew Rynhard
b7b1d4fd6a
feat: use readonly containers
Containers created with `talosctl cluster create` are ran with readonly
filesystem. This more accurately mimics standard Talos.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2022-10-11 15:24:38 +00:00
Andrey Smirnov
993743f634
fix: skip hostname via DHCP on OpenStack platform
Introduce new DHCP operator option to skip hostname request/response,
and use that in OpenStack platform.

OpenStack configures interface with DHCP, while providing dummy hostname
over DHCP and proper hostname over metadata. As operators override
platform settings, DHCP hostname takes over OpenStack hostname. As a
fix, ignore DHCP hostname while on OpenStack.

Fixes #6350

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-10-10 14:18:46 +04:00
Serge Logvinov
db076e7b5a
feat: pin interface by mac address in cmdline args
Example, set interface IP address by MAC:

```cmdline: ip=172.20.0.2::172.20.0.1:255.255.255.0::enx001122aabbcc```

Interface MAC is `00:11:22:aa:bb:cc`.

Source: https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-10-10 13:56:42 +04:00
Steve Francis
c7372144de
docs: add constraints to upgrade docs
This PR clarifies the upgrade docs a bit.

Signed-off-by: Steve Francis <steve.francis@talos-systems.com>
2022-10-05 21:12:59 -04:00
Steve Francis
c71c8ca18f
docs: consolidate, simplify and correct various docs
This PR updates various docs to clarify them.

Signed-off-by: Steve Francis <steve.francis@talos-systems.com>
2022-10-04 12:14:35 -04:00
Steve Francis
195c40ab59
docs: add information about applicable use cases of disk encryption
This PR clarifies the docs on disk encryption.

Signed-off-by: Steve Francis <steve.francis@talos-systems.com>
2022-10-03 21:17:07 -04:00
Steve Francis
54a687fb8e
docs: consolidate and expand on discovery service
This PR expands the explanation of the discover service.

Signed-off-by: Steve Francis <steve.francis@talos-systems.com>
2022-10-03 20:53:24 -04:00
Andrey Smirnov
139c62d762
feat: allow upgrades in maintenance mode (only over SideroLink)
This implements a simple way to upgrade Talos node running in
maintenance mode (only if Talos is installed, i.e. if `STATE` and
`EPHEMERAL` partitions are wiped).

Upgrade is only available over SideroLink for security reasons.

Upgrade in maintenance mode doesn't support any options, and it works
without machine configuration, so proxy environment variables are not
available, registry mirrors can't be used, and extensions are not
installed.

Fixes #6224

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-30 21:16:15 +04:00
Noel Georgi
48dee48057
feat: support mtu for routes
Support setting MTU for routes.

Fixes: #6324

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-09-30 16:38:22 +05:30
Noel Georgi
1c43c72aeb
docs: fix talos required kernel params
Fix Talos required kernel parameters. `talos.config` is optional.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-09-29 01:53:55 +05:30
Andrey Smirnov
67cc45ae3f
release(v1.3.0-alpha.0): prepare release
This is the official v1.3.0-alpha.0 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-28 17:45:28 +04:00