29 Commits

Author SHA1 Message Date
Andrey Smirnov
0ab84c2a15
fix: ignore image digest when doing upgrade-k8s
The `talosctl upgrade-k8s` doesn't support pinning to image digests, but
it should ignore any image digests if they already exist in the
machine configuration.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-03-02 17:26:01 +04:00
Sébastien Masset
87615f5511
feat: implement network policies with Flannel CNI
Align flannel ClusterRole with upstream chart template (cf.
https://github.com/flannel-io/flannel/blob/master/chart/kube-flannel/templates/rbac.yaml)

Add boolean in cluster flannel CNI config to deploy extra resources to
handle network policies. Inspired by flannel Helm chart handling of
netpol.enabled value (cf. https://github.com/flannel-io/flannel/blob/master/Documentation/netpol.md)

Signed-off-by: Sébastien Masset <86793256+smasset-orange@users.noreply.github.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2026-02-10 15:47:49 +04:00
Mateusz Urbanek
080efcbda2
feat: add k8s-version parameter to k8s-bundle
Allow overriding K8s version in the  command.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2026-01-07 10:26:39 +01:00
Andrey Smirnov
ab149750d4
chore: update tools/pkgs to 1.13.0-alpha.0
Also pulls in runc 1.3.4.

Clean up image tags in Talos `main`.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2025-11-28 19:01:14 +04:00
Mateusz Urbanek
c0772b8eda
feat: add airgapped mode to QEMU backed talos
Add new `--airgapped` flag to talos cluster create (qemu)
to disable NAT in the VMs to effectively become airgapped.

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-10-22 18:10:27 +02:00
Mateusz Urbanek
a940e45a7f
feat: generate list of images required to build talos
Add new command that takes Talos version (semver) and generates a list
of images that are used in Image Factory for building talos.

Fixes #11927

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-10-02 16:15:32 +02:00
Mateusz Urbanek
42c0bdbf32
feat: add provisioner flag to images default command
Fixes #11925

Signed-off-by: Mateusz Urbanek <mateusz.urbanek@siderolabs.com>
2025-10-02 10:54:25 +02:00
Andrey Smirnov
c755b6d7e4
fix: update the CRI sandbox image reference
Fix the test, and update the reference.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-10-28 14:52:19 +04:00
Andrey Smirnov
61a1c946bf
feat: bundle (some) CNI plugins with Talos core
Fixes https://github.com/siderolabs/extensions/issues/448

Bundle some CNI standard plugins plus Flannel CNI plugin (as Flannel is
the default CNI in Talos) in the Talos `initramfs`.

With this change, no plugin install is required, so the `install-cni`
step is dropped from the Flannel default manifest.

The bundled plugins:

```
$ talosctl -n 172.20.0.2 ls -lH /opt/cni/bin/
NODE         MODE         UID   GID   SIZE(B)   LASTMOD       NAME
172.20.0.2   drwxr-xr-x   0     0     109 B     7 hours ago   .
172.20.0.2   -rwxr-xr-x   0     0     3.2 MB    7 hours ago   bridge
172.20.0.2   -rwxr-xr-x   0     0     3.3 MB    7 hours ago   firewall
172.20.0.2   -rwxr-xr-x   0     0     2.4 MB    7 hours ago   flannel
172.20.0.2   -rwxr-xr-x   0     0     2.4 MB    7 hours ago   host-local
172.20.0.2   -rwxr-xr-x   0     0     2.4 MB    7 hours ago   loopback
172.20.0.2   -rwxr-xr-x   0     0     2.8 MB    7 hours ago   portmap
```

The `initramfs` for amd64 grows 67 -> 73 MiB with this change.

The path `/opt/cni/bin` is still an overlay mount, so extra plugins can
be dropped to this directory (no change here).

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-08-14 14:33:18 +04:00
Andrey Smirnov
c2b19dcb97
chore: move to containerd 2.0 API
Lots of module moves/renames.

Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
2024-05-24 21:48:55 +04:00
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
0bb7e8a5cf
refactor: split config.Provider into Config & Container
See #7230

This is a step towards preparing for multi-doc config.

Split the `config.Provider` interface into parts which have different
implementation:

* `config.Config` accesses the config itself, it might be implemented by
  `v1alpha1.Config` for example
* `config.Container` will be a set of config documents, which implement
  validation, encoding, etc.

`Version()` method dropped, as it makes little sense and it was almost
not used.

`Raw()` method renamed to `RawV1Alpha1()` to support legacy direct
access to `v1alpha1.Config`, next PR will refactor more to make it
return proper type.

There will be many more changes coming up.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-05-23 16:05:16 +04:00
Andrey Smirnov
02b0ff35ee
feat: generate Flannel CNI manifest from upstream
Fixes #6730

`go generate`-based step downloads the upstream manifest, transforms it
to match our requirements, and it is compiled in as the Flannel
manifest.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-03-13 20:00:35 +04:00
Andrey Smirnov
881b841520
feat: update Flannel to 0.20.2
See https://github.com/flannel-io/flannel/releases/tag/v0.20.2

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-30 19:30:27 +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
96aa9638f7
chore: rename talos-systems/talos to siderolabs/talos
There's a cyclic dependency on siderolink library which imports talos
machinery back. We will fix that after we get talos pushed under a new
name.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-03 16:50:32 +04:00
Andrey Smirnov
7fcb8c6816
feat: update Flannel to v0.20.0
See https://github.com/flannel-io/flannel/releases/tag/v0.20.0

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-10-17 17:51:34 +04:00
Andrey Smirnov
7471d7f017
feat: update Flannel to v0.19.2
See https://github.com/flannel-io/flannel/releases/tag/v0.19.2

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-02 16:12:07 +04:00
Andrey Smirnov
856beb21cc
feat: containerd 1.6.7, Flannel 1.19.1
See

* https://github.com/flannel-io/flannel/releases/tag/v0.19.1
* https://github.com/containerd/containerd/releases/tag/v1.6.7

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-08-05 19:40:32 +04:00
Andrey Smirnov
f3efec4b56
feat: update containerd 1.6.6, Linux 5.15.45, Flannel 0.18.1
See:

* https://github.com/containerd/containerd/releases/tag/v1.6.6
* https://github.com/containerd/containerd/releases/tag/v1.6.5
* https://github.com/flannel-io/flannel/releases/tag/v0.18.1

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-06-06 22:52:41 +04:00
Andrey Smirnov
9c4b7d6e8c
feat: update Flannel to 0.18.0
See https://github.com/flannel-io/flannel/releases/tag/v0.18.0

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-05-26 17:38:09 +04:00
Andrey Smirnov
8af50fcd27
fix: correct cri package import path
Containerd CRI plugin was merged into the main repo, but we were using
old import path, so our constants coming from the module were outdated.

This fixes the image version for the pause container.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-04-14 16:27:45 +03:00
Dmitriy Matrenichev
b315ed9532
chore: use go:embed instead of ldflags
Generate separate file for each variable and assign them during go build using go:embed instead of using ldflags -X.

Resolves #5138

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2022-03-30 18:15:48 +04:00
Andrey Smirnov
a5d64fc814
feat: update Flannel to 0.17.0
See https://github.com/flannel-io/flannel/releases/tag/v0.17.0

Flannel image was copied without any changes to `ghcr.io` to avoid
Docker Hub download limits.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-03-30 16:42:44 +03:00
Andrey Smirnov
883d401f9f
chore: rename github organization to siderolabs
Go module import paths still use talos-systems, packages use new
siderolabs name.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-03-23 21:07:46 +03:00
Andrey Smirnov
99338e5ffd
feat: update Flannel to 0.15.1
https://github.com/flannel-io/flannel/releases/tag/v0.15.1

Also updates CNI plugins to 1.0.1.

See:

* https://github.com/talos-systems/pkgs/pull/363
* https://github.com/talos-systems/extras/pull/31

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-12-02 17:48:41 +03:00
Andrey Smirnov
e0a0f58801 feat: use multi-arch images for k8s and Flannel CNI
Flannel got updated to 0.13 version which has multi-arch image.

Kubernetes images are multi-arch.

Fixes #3049

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2021-01-28 08:26:02 -08:00
Andrey Smirnov
0aaf8fa968 feat: replace bootkube with Talos-managed control plane
Control plane components are running as static pods managed by the
kubelets.

Whole subsystem is managed via resources/controllers from os-runtime.

Many supporting changes/refactoring to enable new code paths.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2021-01-26 14:22:35 -08:00
Andrey Smirnov
d3ccb3d1e0 fix: move installer image variables out of machinery
Machinery is supposed to be consumed without special build instructions,
so move images to "main" talos tree.

As config implementation is in the machinery, I had to drop the default
installer image there.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-09-24 15:05:49 -07:00