4037 Commits

Author SHA1 Message Date
Noel Georgi
0ba5e59f69
fix: drone config for renovate PR's
Fix drone config to exclude renovate pushes.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-01-30 19:01:13 +05:30
Noel Georgi
590a393de9
fix: udevd healthcheck
The previous `udevd` healthcheck was incomplete and if `udevd` took more
time to startup the initial `udevadm trigger` would have silently failed
failing to setup proper devices. `udevadm trigger` returns an exit code
of zero even if `udevd` is not running. This PR fixes by first checking
if the `udevd` control socket exists, which is a faster check, then
making sure `udevd` is up by running `udevadm control` command. This
ensures that `udevd` is properly initialized before running any `udevadm
trigger` commands even if `udevd` is restarted/killed.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-01-30 16:12:41 +05:30
Steve Francis
2b6b6deacd
docs: simplify and clarify digital ocean docs
Update Talos install guide for the Digital Ocean cloud platform.

Signed-off-by: Steve Francis <steve.francis@talos-systems.com>
Signed-off-by: Tim Jones <tim.jones@siderolabs.com>
2023-01-27 10:13:05 +01:00
Andrey Smirnov
92bc15f7f1
release(v1.4.0-alpha.1): prepare release
This is the official v1.4.0-alpha.1 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-25 22:16:25 +04:00
Andrey Smirnov
e3da4754e7
feat: update Linux to 6.1.7
Bring in latest pkgs/tools.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-25 21:25:51 +04:00
Andrey Smirnov
006449e464
test: build integration test early in the pipeline
If we don't pre-build, it's getting built each time the `e2e-*` step
runs, and we have some running in parallel.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-24 16:20:51 +04:00
Noel Georgi
09aa712642
fix: renovate config
Add proper `extractVersion` regex.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-01-24 15:49:52 +05:30
Utku Ozdemir
2d136f1879
feat: set markdown and html descriptions in config json schema
Set the additional description fields for vscode/monaco/jetbrains editors.

Strip the markdown formatting from the plain description.

Additionally, fix the description of the field `aescbcEncryptionSecret`.

Related to siderolabs/talos#6705.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2023-01-23 23:45:47 +01:00
Noel Georgi
f0804027a4
fix: renovate config
Fix renovate config

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-01-24 01:11:43 +05:30
Noel Georgi
812a2877cd
chore: bump deps + renovate cleanup
Bump dependencies.
Disable renovate for PR's and skip un-needed update checks.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-01-24 00:42:58 +05:30
Andrey Smirnov
aa9f66c1c8
fix: mark DigitalOcean anchor IP as scope link
This excludes it out of the `NodeAddress`.

Needs extra testing to confirm that it actually still works as anchor
IP.

Fixes #6760

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-23 20:35:52 +04:00
Noel Georgi
bb4937f1b3
feat: enable renovate
Enable renovate for timely dependency updates.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-01-23 20:08:37 +05:30
Andrey Smirnov
3e00571627
fix: unwrap gRPC errors on stop/remove pods check
As the client returns wrapped errors, unwrap them using our own method
which does `errors.As` instead of gRPC one which doesn't do unwrapping.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-23 14:29:04 +04:00
Andrey Smirnov
00e52ae078
fix: build correctly etcd initial cluster URL
The supposed format with multiple adverised URLs is:

`name=u1,name=u2`

Previously Talos generated:

`name=u1,u2`

(which is wrong)

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-20 22:52:47 +04:00
Utku Ozdemir
ae83b10ae8
feat: create JSON schema for v1alpha1.Config
Extend `docgen` tool to generate a JSON schema for `v1alpha1.Config` if a new optional cli arg is provided.

Extend the YAML-structured code comments on config fields to allow overriding the generated schema.

Add custom schemas for complex types.

Related to siderolabs/talos#6705.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2023-01-20 15:39:46 +01:00
Andrey Smirnov
703d965951
feat: update Kubernetes to 1.26.1, etcd to 3.5.7
See:

* https://github.com/etcd-io/etcd/releases/tag/v3.5.7
* https://github.com/kubernetes/kubernetes/releases/v1.26.1

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-20 15:41:55 +04:00
Steve Francis
965e645915
docs: update to use talosctl install script
Signed-off-by: Steve Francis <steve.francis@talos-systems.com>

Replaced multiple curl examples to get the correct talosctl with a curl that executes the install script.
2023-01-20 12:07:00 +01:00
Dmitriy Matrenichev
c5954f4345
chore: bump deps
For some reason `go-mod-outdated` didn't work for me, so I had to do
this manually.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2023-01-19 21:40:00 +03:00
Andrey Smirnov
bb50f6a56d
chore: preallocate disk images for QEMU VMs
This improves the performance of the I/O operations if the underlying
filesystem supports it.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-19 19:09:00 +04:00
Noel Georgi
d4b8b35de7
feat: generate kernel module dependency tree
Run `depmod` during install/upgrades when extensions provide kernel
modules and `modules.dep` needs to be re-generated. This also allows
modules of same name from kernel to co-exist. Modules in `extras`
folder takes precedence over `in-built` ones.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-01-19 18:54:10 +05:30
Andrey Smirnov
18122ae73e
fix: service restart (including extension services)
Fixes #6707

There was a race condition between different parts of the service code:
`Stop` waits for the event which is published before the service is
removed from the `running[id]` map, so if one does `Stop` followed by
`Start` (this is what `services restart` API does), by the time it goes
to `Start` it might be still in the `running[id]` map, so `Start` does
nothing.

Overall this code should be rewritten and simplified, but for now move
out sending these "terminal" events out so that by the time the event is
published, the service is stopped and removed from the `running[id]`
map.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-18 14:52:47 +04:00
Andrey Smirnov
680fd5e452
fix: bump COSI runtime with the panic controller restart fix
See https://github.com/cosi-project/runtime/pull/211

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-18 14:25:50 +04:00
Andrey Smirnov
0b65bbfc87
fix: handle overwriting tags in syslinux ADV
This is (still) being used in Talos to handle upgrade rollbacks.

There were multiple problems with this code, and one of them leads to
panic if the tag is written multiple times without deletion:

```
github.com/siderolabs/talos/internal/app/machined/pkg/runtime/v1alpha1/bootloader/adv/syslinux.ADV.SetTagBytes({0xc00175bc00?, 0x1f11dbe?, 0xed4f4d?}, 0x0?, {0xc000afb7f0?, 0x400?, 0x0?})
/src/internal/app/machined/pkg/runtime/v1alpha1/bootloader/adv/syslinux/syslinux.go:125 +0x270
github.com/siderolabs/talos/internal/app/machined/pkg/runtime/v1alpha1/bootloader/adv/syslinux.ADV.SetTag(...)
/src/internal/app/machined/pkg/runtime/v1alpha1/bootloader/adv/syslinux/syslinux.go:95
github.com/siderolabs/talos/cmd/installer/pkg/install.(*Installer).Install(0xc0004374a0, 0x5)
/src/cmd/installer/pkg/install/install.go
```

The `uint8()` conversion was causing overflow and wrong index when ADV
real length is over 255.

Fix multiple writes of the same tag by deleting previous value first.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-17 23:21:39 +04:00
Serge Logvinov
70d9428a1d
fix: kubespan MSS clamping
Change TCP maximum segment size if it goes through the KubeSpan to match
KubeSpan MTU.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-17 19:02:33 +04:00
Dmitriy Matrenichev
683b4ccb4f
chore: update Go to 1.19.5 and kernel to 6.1.4
Release notes https://go.dev/doc/devel/release#go1.19.5

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2023-01-12 17:28:22 +03:00
Andrey Smirnov
062c7d754b
test: fix integration test on cp endpoint update
As with #6724, controlplane node kubelet doesn't use control plane
endpoint anymore, run the test on the worker node instead of cp node.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-12 15:23:14 +04:00
Dmitriy Matrenichev
8e9fc13d7c
feat: implement enum generator for proto files
`structprotogen` now supports generating enums directly instead of using predeclared file and hardcoded types. To use this functionality, simply put `structprotogen:gen_enum` in the comment above const block, you want to have the proto definitions for.

Closes #6215

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2023-01-11 16:02:21 +03:00
Cees-Jan Kiewiet
771b0dc061
docs: update left over rpi_4 ref to rpi_generic
While following this guide I found that one reference to rpi_4 wasn't
updated to rpi_generic yet, this commit fixes that.

Signed-off-by: Cees-Jan Kiewiet <ceesjank@gmail.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-11 15:57:55 +04:00
Andrey Smirnov
6c04b5f79e
chore: bump dependencies
Dependabot + go-mod-outdated.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-11 15:21:14 +04:00
Andrey Smirnov
0a5a8802e7
feat: use 'localhost' endpoint for controlplane nodes
This switches the last usage of Kubernetes controlplane endpoint to use
`localhost` (itself) for controlplane nodes.

Worker nodes still use cluster-wide controlplane endpoint.

This allows controlplane nodes to boot fully even if the controlplane
endpoint (e.g. loadbalancer) doesn't function.

The process of joining etcd still requires either a discovery service or
a proper functioning controlplane endpoint.

With this fix, Talos controlplane nodes can boot successfully without a
loadbalancer being up, while worker nodes obviously won't join.

This improves Talos behavior in single-node clusters when controlplane
endpoint is not available, the node will still boot just fine and
function properly.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-10 20:50:51 +04:00
Andrey Smirnov
b0775ebf2c
feat: add ISO wipe GRUB boot option
This simply uses existing `talos.experimental.wipe` kernel flag to wipe
the currently installed Talos.

This allows to use Talos ISO to reset the system disk and revert back to
maintenance mode.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-10 16:41:45 +04:00
Andrey Smirnov
29020cb9c7
fix: report fatal sequence errors as reboots
When the sequence fails hard, Talos does automatic reboot, so reflect
this in the machine status properly.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-10 14:24:23 +04:00
Andrey Smirnov
96629d5ba6
feat: implement etcd maintenance commands
This allows to safely recover out of space quota issues, and perform
degragmentation as needed.

`talosctl etcd status` command provides lots of information about the
cluster health.

See docs for more details.

Fixes #4889

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-03 23:25:28 +04:00
Andrey Smirnov
80fed31940
feat: include Kubernetes controlplane endpoint as one of the endpoints
These endpoints are used for workers to find the addresses of the
controlplane nodes to connect to `trustd` to issue certificates of
`apid`.

These endpoints today come from two sources:

* discovery service data
* Kubernetes API server endpoints

This PR adds to the list static entry based on the Kubernetes control
plane endpoint in the machine config.

E.g. if the loadbalancer is used for the controlplane endpoint, and that
loadbalancer also proxies requests for port 50001 (trustd), this static
endpoint will provide workers with connectivity to trustd even if the
discovery service is disabled, and Kubernetes API is not up.

If this endpoint doesn't provide any trustd API, Talos will still try
other endpoints.

Talos does server certificate validation when calling trustd,
so including malicious endpoints doesn't cause any harm, as malicious
endpoint can't provider proper server certificate.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-01-03 21:33:18 +04:00
Tim Jones
c6cb36cc1f
docs: fix auditpolicy example typo
Fixes a simple typo in the Whats New auditPolicy example.

Signed-off-by: Tim Jones <tim.jones@siderolabs.com>
2022-12-29 18:07:38 +01:00
Murtaza Udaipurwala
ba8265bc5c
feat: new talosctl config remove to remove context
Adds a new sub-command to talosctl config. It takes in the context to be
deleted as argument and supports glob matching.

A local flag --noconfirm|-y can be passed to bypass the confirmation
prompt.

It also supports dry run by passing the --dry-run flag similar to
apply-config and edit commands.

Example:

    $ talosctl config remove 'ctx-*'
    Remove context ctx-a? (y/N): y
    Remove context ctx-b? (y/N): y

Signed-off-by: Murtaza Udaipurwala <murtaza@murtazau.xyz>
Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2022-12-29 13:39:12 +03:00
Andrey Smirnov
fcb19ff516
fix: implement upgrade version checks for Talos 1.4
I missed that before cutting 1.4.0-alpha.0 release, which means
unfortunately that Talos 1.4.0-alpha.0 can't upgrade Talos
1.4.0-alpha.0.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-28 19:24:16 +04:00
Serge Logvinov
80f150ac85
feat: enable ipv6 on gcp
Introduce ipv6 to the google cloud.
It also can work with dhcpv6 is on.
But the route receives through RA packages which not working.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-28 14:45:49 +04:00
Tim van Druenen
8db622f3dc
docs: add Vandebron to adopters list
Update ADOPTERs.

Signed-off-by: Tim van Druenen <tim@Vandebrons-MacBook-Pro.local>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-26 15:13:50 +04:00
Serge Logvinov
f6a86ae906
fix: oralce cloud zone
Zone definition misspell.
Native services use uppercase zone.

Signed-off-by: Serge Logvinov <serge.logvinov@sinextra.dev>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-26 14:49:26 +04:00
Andrey Smirnov
89dbb0ecf0
release(v1.4.0-alpha.0): prepare release
This is the official v1.4.0-alpha.0 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-23 22:32:09 +04:00
Andrey Smirnov
31fb905358
feat: update Linux 6.1.1, containerd 1.6.14
Bumps tools/pkgs/extras to the latest.

Bumps Go modules.

Enables adaptive capacity for COSI state.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-23 20:30:09 +04:00
Andrey Smirnov
a0c0352ddc
fix: send diagnostic output to stderr consistently
Fixes #6676

There was a mix of stdout/stderr, move more consistently to stderr.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-23 18:41:56 +04:00
Andrey Smirnov
9a5f4c08a2
fix: default the manifest namespace if not set
This seems to happen specifically for CRDs, regular Kubernetes resources
have some extra magic.

Fixes #6663

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-22 16:20:46 +04:00
Andrey Smirnov
3c6cce5fe4
docs: update last release for Talos 1.2.x
Update support matrix, as Talos 1.3.0 got released.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-20 22:43:16 +04:00
Noel Georgi
703624c43d
docs: fix the 1.3 release date
Fix 1.3 release date.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-12-20 19:25:22 +05:30
Noel Georgi
386c9293a3
docs: update nvidia-container-runtime version
Update nvidia-container-runtime version to v1.11.0

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-12-19 21:21:46 +05:30
Andrey Smirnov
ff83d9fd7b
fix: improve talosctl completion
This got broken with a sequence of changes related to not unmarshalling
resources when using `get`.

Rewrite the completion to be more straightforward and use easier
methods.

Make shell completion work even when `nodes` are not set.

Fixes #6646

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-19 18:55:24 +04:00
Samuel Kees
31ff431fae
chore: add schulz systemtechnik to the list
Add SCHULZ Systemtechnik GmbH to adopters list.

Signed-off-by: Samuel Kees <83597284+samuelkees@users.noreply.github.com>
Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-12-19 19:24:26 +05:30
Rowan Smith
97bef7c47b
docs: vsphere.sh > vmware.sh
The docs at https://www.talos.dev/v1.3/talos-guides/install/virtualized-platforms/vmware/ mentions

>Download the vmware.sh script to your local machine. You can do this by issuing curl -fsSLO "https://raw.githubusercontent.com/siderolabs/talos/master/website/content/v1.3/talos-guides/install/virtualized-platforms/vmware/vmware.sh".

But the command example refers to it as `vsphere.sh`. This changes it to `vmware.sh`

Signed-off-by: Rowan Smith <86935689+rowansmithhc@users.noreply.github.com>
Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-12-19 18:52:18 +05:30