653 Commits

Author SHA1 Message Date
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
Serge Logvinov
18c377a4d1
feat: customize audit policy
Add resource `AuditPolicyConfigs.kubernetes.talos.dev`.
It can be changed through machine config `cluster.apiServer.auditPolicy`

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-28 13:46:44 +04:00
Philipp Sauter
f17cdee167
feat: jsonpath filter for talosctl get outputs
We add a filter to the `talosctl get` command that allows users to
specify a jsonpath filter. Now they can reduce the information that is
printed to only the parts they are interested in.

Fixes #6109

Signed-off-by: Philipp Sauter <philipp.sauter@siderolabs.com>
2022-09-27 20:47:11 +02:00
Noel Georgi
6bd3cca1a8
chore: generic raspberry pi images
Use generic Raspberry Pi images. Deprecate the RPi4 specific image.

Ref: https://github.com/siderolabs/pkgs/pull/596

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-09-27 16:39:12 +05:30
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
0b2767c164
feat: implement 'permanent addr' in link statuses
Permanent address is only available for physical links, and it might be
different from the 'hardware address': when bonding, 'hardware address'
gets overridden from the bond master, while 'permanent address' still
shows MAC of the interface.

This part of the fix for incorrect bonding issue on Equinix Metal.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-26 14:45:46 +04:00
Andrey Smirnov
8b09bd4b04
feat: update Kubernetes to v1.26.0-alpha.1
Talos 1.3.0 will ship with Kubernetes 1.26.0.

See https://github.com/kubernetes/kubernetes/releases/tag/v1.26.0-alpha.1

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-21 18:42:31 +04:00
Andrey Smirnov
ce12c7b380
chore: update COSI runtime to v0.2.0-alpha.1
This adds metadata annotations and fixes some hanging watch loops.

There should be no functional changes for Talos.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-20 22:02:57 +04:00
Tim Jones
18e041f1ec
docs: fix typo in patching example
Fix missing 'mc' in talosctl patch example command.

Signed-off-by: Tim Jones <tim.jones@siderolabs.com>
2022-09-20 15:03:31 +02:00
Andrey Smirnov
0ad6452ca1
feat: update CoreDNS to v1.10.0
See https://github.com/coredns/coredns/blob/master/notes/coredns-1.10.0.md

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-19 18:29:54 +04:00
Andrey Smirnov
e07c6ae99e
feat: update Kubernetes to v1.25.1
See https://github.com/kubernetes/kubernetes/releases/tag/v1.25.1

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-19 16:23:00 +04:00
Sander Maijers
ef181321a5
docs: add component diagram; K8s & Talos Linux
- Provide editable component diagram
  (diagrams.net).
- Document for both 1.2 and 1.3.

Signed-off-by: Sander Maijers <3374183+sanmai-NL@users.noreply.github.com>
Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-09-19 12:08:11 +05:30
Andrey Smirnov
aade736435
docs: fix missing variable in OpenEBS docs
With misisng variable it rendered as empty creating confusion for our
users.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-15 22:24:13 +04:00
Andrey Smirnov
69124f1026
feat: update etcd to v3.5.5
See https://github.com/etcd-io/etcd/releases/tag/v3.5.5

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-15 17:09:02 +04:00
Pau Campana
1985a796c0
docs: update docs for pod security
Add new section to see how to disable admission control in control
plane.

Signed-off-by: Pau Campana <pau.campanya.soler@gmail.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-15 14:41:26 +04:00
Noel Georgi
93809017c5
docs: cpu scaling governor knowledgebase
Add docs on setting cpu scaling governor across all CPUs.

Thanks to @nberlee for the [suggestion](https://github.com/siderolabs/talos/issues/4508#issuecomment-1245633679)

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-09-14 13:20:28 +05:30
Noel Georgi
4367491247
feat: environment vars for extension service
This allows setting environment variables for the extension service.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-09-13 14:06:55 +05:30
Andrey Smirnov
9beee92e71
docs: fix double vv in Kubernetes version
Fixes #6242

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-12 15:36:26 +04:00
Andrey Smirnov
161a52a9ef
feat: check apid client certificate extended key usage
This is enabled via a machine config feature/version contract, as
`talosconfig` certificate generated previously didn't have proper key
usage set, so we need to keep backwards compatibility on upgrades.

New v1.3+ clusters will include this check.

This check prevents even potential mis-use of server certificates as a
client certificate.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-09 16:37:21 +04:00
Andrey Smirnov
71bfd3e43c
feat: update CoreDNS to 1.9.4
See https://github.com/coredns/coredns/blob/master/notes/coredns-1.9.4.md

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-08 21:59:58 +04:00
Noel Georgi
5e21cca52d
feat: support setting kernel parameters
Support setting kernel parameters via machine config.

Fixes: #6206

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-09-05 23:45:51 +05:30
Dmitriy Matrenichev
bd56621cdf
feat: add structprotogen tool
This commit adds structprotogen tool which is used to generate proto file from Go structs.

Closes #6078.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2022-09-05 16:54:00 +03: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
cd6c53a979
docs: fork docs for v1.3
Now master docs are generate for v1.3.0.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-02 18:35:05 +04:00
Steve Francis
148c75cfb9
docs: consolidate the control-plane documentation
Also fix some typos.

Signed-off-by: Steve Francis <steve.francis@talos-systems.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-02 00:35:55 +04:00
Andrey Smirnov
1369afea85
docs: make 1.2.0 docs default ones
Update latest release to 1.2.0.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-01 15:26:53 +04:00
Andrey Smirnov
7627cb0e30
docs: add new talosctl gen secrets
I forgot to mention that in the docs update.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-01 00:51:04 +04:00
Andrey Smirnov
a798dbd5d2
docs: update docs for upcoming 1.2.0 release
Update what's new, upgrading docs.

Fix up instances of `master` leftover in the docs.

Fix the formatting of kernel params reference.

Fixes #6150

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-08-31 21:54:45 +04:00
Utku Ozdemir
0b339a9dc5
feat: track progress of action API calls
Track the progress of the long-running actions `reboot`, `reset`, `upgrade` and `shutdown` on the client side by default, unless `--no-wait=true` is specified.

Use the events API to follow the events using the actor ID of the action and display it using an stderr reporter with a spinner.

Closes siderolabs/talos#5499.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2022-08-29 22:54:40 +02:00
Noel Georgi
b500d0aa90
chore: bump k8s to v1.25.0
Bump k8s to
[v1.25.0](https://github.com/kubernetes/kubernetes/releases/tag/v1.25.0)

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-08-24 18:58:44 +05:30
Noel Georgi
29e574be74
docs: update to v1.2.0-beta.1
Update Talos version in docs to v1.2.0-beta.1

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-08-24 18:21:36 +05:30
Noel Georgi
cfe6c2bc2d
docs: nvidia oss drivers
Add docs on using NVIDIA OSS drivers

Part of #6127

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-08-23 20:34:39 +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
Noel Georgi
faf92ce016
chore: bump kubernetes to v1.25.0-rc.1
Bump kubernetes to v1.25.0-rc.1

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-08-19 00:21:23 +05:30
Philipp Sauter
f37da96ef3
feat: enable talos client to connect to Talos through an auth proxy
Talos client can connect to Talos API via a proxy with basic auth.
Additionally it is now optional to specify a TLS CA,key or crt. Optionally
Developers can build talosctl with WITH_DEBUG=1 to allow insecure
connections when http:// endpoints are specified.

Fixes #5980

Signed-off-by: Philipp Sauter <philipp.sauter@siderolabs.com>
2022-08-15 18:05:26 +02:00
Utku Ozdemir
586e29dfca
feat: add event actor id to client api and events cmd
Add the missing actor id on the event and a way to filter by it to the events cli command.

Related to siderolabs/talos#5499.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2022-08-12 22:01:34 +02:00
Steve Francis
f88d08e21b
docs: clarification of AWS set up process
AWS documentation fixes.

Signed-off-by: Steve Francis <steve.francis@talos-systems.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-08-12 19:34:14 +04:00
Dmitriy Matrenichev
e422ea63d0
chore: add proto definitions for common types
This commit adds proto definitions for this types;
- *url.URL
- netaddr.IP
- netaddr.IPPort
- netaddr.IPPrefix
- *x509.PEMEncodedKey
- *x509.PEMEncodedCertificateAndKey

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2022-08-12 15:38:31 +03:00
Andrey Smirnov
dce923f747
feat: allow configuring etcd listen addresses
This introduces new configuration settings to configure
advertised/listen subnets. For backwards compatibility when using no
settings or old 'subnet' argument, etcd still listens on all addresses.

If new `advertisedSubnets` is being used, this automatically limits etcd
listen addresses to the same value. `listenSubnets` can be configured
also explicitly e.g. to listen on additional addresses for some other
scenarios (e.g. accessing etcd from outside of the cluster).

See #5668

One more thing left (for a separate PR) is to update etcd advertised
URLs on the fly.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-08-12 14:57:54 +04:00
Andrey Smirnov
4c3485ae3f
feat: update Kubernetes to 1.25.0-rc.0
See https://github.com/kubernetes/kubernetes/releases/tag/v1.25.0-rc.0

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-08-12 00:17:45 +04:00
Trevor Sullivan
f1de478943
docs: verbiage in Digital Ocean tutorial
Fix veribage in DigitalOcean tutorial.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-08-11 21:03:11 +05:30
Noel Georgi
07cd0924ea
fix: recursive seccomp mounts
Since `/var/lib/kubelet` was mounted with `rbind` and `rshared`, the
seccomp profile mount from the host at `/var/lib/seccomp/profiles` when
mounted at `/var/lib/kubelet/seccomp/profiles` would create a mount back
to the host creating an extra mount everytime kubelet starts/restarts.

Fix the issue by using the same path for the seccomp profiles on both
host and kubelet.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-08-11 19:48:45 +05:30
Utku Ozdemir
b5da686a7b
feat: add actor ID to events & emit an initial empty event
Add a new field `actorID` to the events and populate it with a UUID for the lifecycle actions `reboot`, `reset`, `upgrade` and `shutdown`. This actor ID will be present on all events emitted by this triggered action. We can use this ID later on the client side to be able to track triggered actions.

We also emit an event with an empty payload on the events streaming GRPC endpoint when a client connects. The purpose of this event is to signal to the client that the event streaming has actually started.

Server-side part of siderolabs/talos#5499.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2022-08-11 15:14:11 +02:00
Artem Chernyshev
13499fc302
feat: support patching the machine config in the apply-config cmd
Fixes: https://github.com/siderolabs/talos/issues/6045

`talosctl apply-config` now supports `--config-patch` flag that takes
machine config patches as the input.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2022-08-11 13:56:23 +03:00
Andrey Smirnov
be351dcb99
release(v1.2.0-alpha.2): prepare release
This is the official v1.2.0-alpha.2 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-08-10 23:03:53 +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