Commit Graph

33 Commits

Author SHA1 Message Date
Artem Chernyshev
a50747a64a
fix: align list and diskusage command flags with their Linux analogs
Fixes: https://github.com/talos-systems/talos/issues/3018

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2022-03-02 22:27:56 +03:00
Andrey Smirnov
09efa62f68
chore: re-enable kexec and default to UEFI booting in tests
Fixes #4947

It turns out there's something related to boot process in BIOS mode
which leads to initramfs corruption on later `kexec`.

Booting via GRUB is always successful.

Problem with kexec was confirmed with:

* direct boot via QEMU
* QEMU boot via iPXE (bundled with QEMU)

The root cause is not known, but the only visible difference is the
placement of RAMDISK with UEFI and BIOS boots:

```
[    0.005508] RAMDISK: [mem 0x312dd000-0x34965fff]
```

or:

```
[    0.003821] RAMDISK: [mem 0x711aa000-0x747a7fff]
```

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-03-02 21:52:18 +03:00
Andrey Smirnov
7ddc7f6053
feat: support specifying env vars for control plane pods
Fixes #5055

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-03-01 22:51:57 +03:00
Andrey Smirnov
f81fb9f7cf
feat: implement sysfs
Fixes: https://github.com/talos-systems/talos/issues/4703

Co-authored-by: Dmitriy Matrenichev <lepage+gh@protonmail.com>
Co-authored-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2022-02-28 17:51:02 +03:00
Andrey Smirnov
eb40b9254f
feat: add a way to override kubelet configuration via machine config
Fixes #4629

Note: some fields are enforced by Talos and are not overridable.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-02-25 17:39:01 +03:00
Noel Georgi
dc23715478
chore: update packet to equinix
Update `packet` to `equinix` for `talos.platform` kernel argument

Fixes: #5010

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-02-25 00:50:02 +05:30
Andrey Smirnov
7917b1aca0
feat: support admission control configuration and Pod Security admission
Fixes #5003

This implements a way to configure API server admission plugins via
Talos machine configuration.

If Pod Security admission is enabled, default cluster-wide policy is
generated which enforces baseline policy.

Policy can be overridden per-namespace.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-02-24 16:18:15 +03:00
Noel Georgi
1800b4c707
chore: fix kernel reference errata
Fix kernel `ip=` errata

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-02-22 18:48:53 +05:30
Andrey Smirnov
0fe34b3581
feat: update Kubernetes to 1.23.4
See https://github.com/kubernetes/kubernetes/releases/tag/v1.23.4

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-02-17 23:50:34 +03:00
Andrey Smirnov
00ccaf13fb
feat: update CoreDNS to 1.9.0
See https://github.com/coredns/coredns/blob/master/notes/coredns-1.9.0.md

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-02-16 18:12:33 +03:00
Andrey Smirnov
f1a93d28fb
release(v0.15.0-alpha.2): prepare release
This is the official v0.15.0-alpha.2 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-02-11 18:18:31 +03:00
Charlie Haley
fef99892d5
chore: pin kubernetes version to talosctl gen config
Pin talos default k8s version to `talosctl gen config`

Signed-off-by: Charlie Haley <charlie.haley@hotmail.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-02-11 16:47:49 +03:00
Andrey Smirnov
492b156dab
feat: implement static pods via machine configuration
Fixes #4727

On worker nodes, static pods are injected, but status can't be monitored
by Talos. On control plane nodes full status is available via
`StaticPodStatus`.

Pod definition is left as `Unstructured` in the machine configuration,
and no specific validation is performed to avoid pulling in Kubernetes
libraries into Talos machinery package.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-02-10 18:37:19 +03:00
Andrey Smirnov
6fadfa8dbc
fix: parse properly IPv6 address in the cmdline ip= arg
Fixes #4953

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-02-10 16:57:39 +03:00
Andrey Smirnov
5462f5ed18
feat: update etcd to 3.5.2
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-02-03 17:25:08 +03:00
Andrey Smirnov
5484579c1a
feat: allow link scope routes in the machine config
They were supported internally, but never properly exposed in the
machine configuration.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-02-03 15:08:26 +03:00
Tim Jones
fe40e7b1b3
feat: drain node on shutdown
Cordon & drain a node when the Shutdown message is received.
Also adds a '--force' option to the shutdown command in case the control
plane is unresponsive.

Signed-off-by: Tim Jones <timniverse@gmail.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-02-01 00:06:32 +03:00
Bernard Sébastien
7f0b3aae0a
feat: add multiple config patches, patches from files, YAML support
Include filename content if value begins with @ (see curl for example).

Add multiple config-path option on cmdline to apply them in order.

ex:

```
talosctl-linux-amd64 gen config talos1 https://127.0.0.1:6443 --config-patch-control-plan @cidrs.json --config-patch-worker @sysctls-workders.json --config-path @cluster-name.json
```

Load JSON patch from YAML.

This applies to all commands handling config patches.

Closes: https://github.com/talos-systems/talos/issues/4764

Signed-off-by: Sébastien Bernard <sbernard@nerim.net>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-01-31 22:50:46 +03:00
Florian Klink
4245f72d3f
feat: add --extra-uefi-search-paths option
This allows specifying additional paths to look for UEFI firmware.

Signed-off-by: Florian Klink <flokli@flokli.de>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-01-27 19:55:36 +03:00
Noel Georgi
151c9df091
chore: add CSI tests for e2e-qemu
Add tests for using rook as CSI for e2e-qemu
Allow specifying cpu/memory for workers

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-01-27 20:06:10 +05:30
Artem Chernyshev
ebec5d4a0c
feat: support full disk path in the diskSelector
Fixes: https://github.com/talos-systems/talos/issues/4788

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2022-01-27 15:23:00 +03:00
Andrey Smirnov
85782faa24
feat: update Kubernetes to 1.23.3
Also bumps some dependencies and updates Talos version we use in the
upgrade tests.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-01-26 17:59:21 +03:00
Andrey Smirnov
b3c3ef29bd
feat: install system extensions
Fixes #4815

This implements the following steps:

* machine configuration updates
* pulling and unpacking system extension images
* validating, listing system extensions
* re-packing system extensions
* preserving installed extensions in `/etc/extensions.yaml`

Once extension is enabled, raw information can be queried with:

```
$ talosctl -n 172.20.0.2 cat /etc/extensions.yaml
layers:
    - image: 000.ghcr.io-smira-gvisor-c927b54-dirty.sqsh
      metadata:
        name: gvisor
        version: 20220117.0-v1.0.0
        author: Andrew Rynhard
        description: |
            This system extension provides gVisor using containerd's runtime handler.
        compatibility:
            talos:
                version: '> v0.15.0-alpha.1'
```

This was tested with the `gvisor` system extension.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-01-26 16:24:28 +03:00
Andrey Smirnov
e7379c81b2
release(v0.15.0-alpha.1): prepare release
This is the official v0.15.0-alpha.1 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-01-24 16:08:38 +03:00
Andrey Smirnov
4961d6867c
docs: drop talos.interface kernel arg
It's not supported in recent Talos.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-01-21 15:21:21 +03:00
Andrey Smirnov
d4b8445935
feat: support CRI configuration merging and reimplement registry config
Containerd doesn't support merging plugin configuration from multiple
sources, and Talos has several pieces which configure CRI plugin:
(see https://github.com/containerd/containerd/issues/5837)

* base config
* registry mirror config
* system extensions
* ...

So we implement our own simple way of merging config parts (by simply
concatenating text files) to build a final `cri.toml`.

At the same time containerd migrated to a new format to specify registry
mirror configuration, while old way (via CRI config) is going to be
removed in 1.7.0. New way also allows to apply most of registry
configuration (except for auth) on the fly.

Also, containerd was updated to 1.6.0-rc.0 and runc to 1.1.0.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-01-20 23:05:20 +03:00
Andrey Smirnov
f94c8c6e1c
feat: update Kubernetes to 1.23.2
See https://github.com/kubernetes/kubernetes/releases/tag/v1.23.2

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-01-20 22:12:03 +03:00
Andrey Smirnov
1d8955ebe4
feat: update CoreDNS to 1.8.7
Drop the rewrite rule which seems to be causing issues for
`ingress-nginx` when Kubernetes IPv4-only cluster runs in the
IPv6-enabled environment.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-01-18 17:21:05 +03:00
Artem Chernyshev
2f2bdb26aa
feat: replace flags with --mode in apply, edit and patch commands
Fixes: https://github.com/talos-systems/talos/issues/4588

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2022-01-13 16:09:53 +03:00
Andrey Smirnov
cb548a368a
release(v0.15.0-alpha.0): prepare release
This is the official v0.15.0-alpha.0 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-12-30 16:27:19 +03:00
Artem Chernyshev
da0b36e616
feat: introduce talos.exp.wipe kernel param to wipe system disk
Fixes: https://github.com/talos-systems/talos/issues/4399

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2021-12-29 15:10:52 +03:00
Andrey Smirnov
3623da136b
feat: provide a way to load Linux kernel modules
Fixes #4693

Machine configuration change plus very simple controllers which transform
config into the module spec and finally load modules.

There's no support for advanced features like module params and aliases,
but we can add it later.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-12-23 23:58:37 +03:00
Andrey Smirnov
942c8074fd
docs: fork docs for 0.15
Also updated upgrade guide for 0.14 as I noticed it had some TBD.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-12-22 00:06:34 +03:00