Commit Graph

420 Commits

Author SHA1 Message Date
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
Utku Ozdemir
f55f5df739
feat: move dashboard package & run it in tty2
Move dashboard package into a common location where both Talos and talosctl can use it.

Add support for overriding stdin, stdout, stderr and ctt in process runner.

Create a dashboard service which runs the dashboard on /dev/tty2.

Redirect kernel messages to tty1 and switch to tty2 after starting the dashboard on it.

Related to siderolabs/talos#6841, siderolabs/talos#4791.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2023-02-28 12:00:25 +01:00
Dmitriy Matrenichev
36e077ead4
chore: bump deps
- github.com/aws/aws-sdk-go to v1.44.209
- github.com/stretchr/testify to v1.8.2
- github.com/jsimonetti/rtnetlink to v1.3.1
- google.golang.org/genproto to v0.0.0-20230223222841-637eb2293923
- github.com/emicklei/dot to v1.3.1
- github.com/gdamore/tcell/v2 to v2.6.0
- github.com/insomniacslk/dhcp to v0.0.0-20230220063916-5369909a5de7
- github.com/jsimonetti/rtnetlink to v1.3.1
- github.com/opencontainers/runtime-spec to v1.1.0-rc.1.0.20230215090456-58ec43f9fc39
- github.com/rivo/tview to v0.0.0-20230226195229-47e7db7885b4

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2023-02-28 00:14:59 +03:00
Noel Georgi
5a01d5fd47
chore: run extension build as downstream
Run extensions build as downstream

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-02-27 20:11:10 +05:30
Noel Georgi
ed5af3f780
chore: bump deps
Bump Go to 1.20.1
Bump containerd to 1.6.18
Bump kernel to 6.1.12
Bump go deps and enable renovate updates for markdown lint tools.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-02-16 19:08:57 +05:30
Andrey Smirnov
da2edb9de0
chore: bump dependencies
CoreDNS: v1.10.1

And many other small bumps.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-02-15 17:29:15 +04:00
Andrey Smirnov
e51a110f0e
chore: bump dependencies
Go modules, container images.

Fixup for new COSI version: `ResourceDefinition` signature.

Update for new gRPC version: endpoints interface.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-02-15 15:26:55 +04:00
Andrey Smirnov
dcbcf5a93c
fix: wait for network and retry in platform get config funcs
Wait for the network before trying to access the metadata service.

Retry the calls when appropriate (most platforms use `download.Download`
function which does proper retries).

Co-authored-by: Noel Georgi <git@frezbo.dev>
Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-02-09 21:04:43 +04:00
Noel Georgi
5cb2915d8e
feat: use wrapper for starting processes
Use a wrapper for starting processes which can setup proper cgroups,
OOMscore, and also drop capabilities for the process, then it calls
`execve`.

The containerd tests is also fixed to support cgroups when
running tests in buildkit. It used to pass previously as we did not
error if cgroup setup failed.

Signed-off-by: Noel Georgi <git@frezbo.dev>
2023-02-03 18:32:09 +05:30
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
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
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
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
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
40761e17db
docs: fork docs for Talos 1.4
Start new docs for v1.4.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-14 22:43:56 +04:00
Andrey Smirnov
f7a9a90db2
chore: update pkgs/tools (Go 1.19.4, containerd 1.6.11)
Update to the latest pkgs/tools to fix the build due to vulncheck.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-12-09 17:25:47 +04:00
Andrey Smirnov
00388651b2
chore: bump pkgs and Go dependencies
Update Linux to 5.15.80, final tagged versions of pkgs/tools/extras for
Talos 1.3.0.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-29 15:20:09 +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
Andrey Smirnov
b881a9a795
chore: bump dependencies
Dependabot, go-mod-outadated.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-11-14 20:31:56 +04:00
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
Artem Chernyshev
b307160f61
chore: bump dependencies
Via renovate bot.

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
2022-10-25 19:53:25 +03: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
Dmitriy Matrenichev
93e55b85f2
chore: bump golangci-lint to v1.50.0
I had to do several things:
- contextcheck now supports Go 1.18 generics, but I had to disable it because of this https://github.com/kkHAIKE/contextcheck/issues/9
- dupword produces to many false positives, so it's also disabled
- revive found all packages which didn't have a documentation comment before. And tehre is A LOT of them. I updated some of them, but gave up at some point and just added them to exclude rules for now.
- change lint-vulncheck to use `base` stage as base

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2022-10-20 18:33:19 +03: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
d914ab8bb4
chore: add vulncheck tool as a linter
See https://go.dev/security/vuln/

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-09-27 14:40:50 +04:00
Noel Georgi
1b435c0b36
chore: bump kernel + ice drivers
Bump kernel to [5.15.69](https://github.com/siderolabs/pkgs/pull/592)
Add Intel ice drivers

Signed-off-by: Noel Georgi <git@frezbo.dev>
2022-09-20 22:05:02 +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
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
Andrey Smirnov
2e9be4af8b
chore: bump dependencies
go-mod-outdated + dependabot

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-08-30 15:26:22 +04:00
Andrey Smirnov
2c482936bb
chore: bump dependencies
dependabot + go-mod-tidy

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-08-15 15:03:07 +04:00
Andrey Smirnov
9baca49662
refactor: implement COSI resource API for Talos
Overview: deprecate existing Talos resource API, and introduce new COSI
API.

Consequences:

* COSI API can only go via one-2-one proxy (`client.WithNode`)
* client-side API access is way easier with `state.State` wrappers
* lots of small changes on the client side to use new APIs

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-08-12 22:31:54 +04:00
Dmitriy Matrenichev
7b80a747bc
feat: add protobuf encoding/decoding for Go structs
This commit adds the support for encoding/decoding Go structs with `protobuf:<n>` tags.

Closes #5940

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2022-08-10 16:04:08 +03:00
Andrey Smirnov
a6b010a8b4
chore: update Go to 1.19, Linux to 5.15.58
See https://go.dev/doc/go1.19

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-08-03 17:03:58 +04:00
Andrey Smirnov
670d274c45
chore: bump dependencies
Dependabot + go-mod-outdated

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-08-01 17:37:43 +04:00
Dmitriy Matrenichev
c3c3e14db5
chore: add gotagsrewrite tool and use it to add tags to resources
This commit adds gotagsrewrite tool, which is used to add `protobuf:"<n>"` tags to structs with //gotagsrewrite:gen comment. This will be used in conjunction with github.com/siderolabs/protoenc.

Closes #5941

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2022-07-29 14:51:02 +03:00
Andrey Smirnov
86820c33f1
chore: bump dependencies
dependabot + go-mod-outdated

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-07-25 18:14:49 +04:00
Andrey Smirnov
a2aea97263
fix: write etcd PKI files in a controller
Instead of writing PKI "once" around the startup time, keep writing PKI
files as the certificates get updated. `etcd` is able to reload
certificates, so we should keep updating them e.g. if the hostname/IPs
change over time.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-07-21 18:37:45 +04:00
Andrey Smirnov
551290195c
chore: bump dependencies
dependabot + go-mod-outdated

Kubernetes 1.24.3 will go as a separate PR.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-07-18 21:22:01 +04:00
Larry Rosenman
c92c90655a
feat: build talosctl for FreeBSD
This PR adds support for building talosctl for FreeBSD on
amd64 and arm64 architectures.

It also pulls in the latest go-blockdevice library to ensure the FreeBSD
stubs are there for proper build.

Signed-off-by: Spencer Smith <spencer.smith@talos-systems.com>
2022-07-14 20:21:14 -04:00
Andrey Smirnov
551887528c
chore: bump dependencies
go-mod-outdated + dependabot

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-07-11 17:55:20 +04:00
Andrey Smirnov
36c44a6511
fix: provide CA certificates in /etc/ssl/certs/ca-certificates.crt
This adds a symlink to improve compatibility.

Fixes #5523

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-06-29 16:51:56 +04:00
Andrey Smirnov
3c263bb446
chore: bump dependencies
dependabot + go-mod-outdated

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-06-20 18:43:36 +04:00
Philipp Sauter
f54d907871
fix: enable orderly poweroff in hyper-v on Azure
Previously Talos would not shutdown gracefully if hyper-v issued the
'perform_shutdown' call. Said call would execute '/sbin/poweroff' which
did not exist in Talos. We hardlink machined to '/sbin/poweroff' and
make it send a shutdown API call to PID 1 machined.

Fixes #5641

Signed-off-by: Philipp Sauter <philipp.sauter@siderolabs.com>
2022-06-15 12:49:17 +02:00
Andrey Smirnov
90bf34fed9
docs: fork docs for Talos 1.2
Now master generates docs for the future v1.2.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-06-10 22:21:39 +04:00
Andrey Smirnov
7b9dfcb852
chore: add 'make go-mod-outdated'
This provides an easy target to find outdated `go.mod` dependencies.

Sample output:

```
>>>> pkg/machinery:
+---------------------------------+------------------------------------+------------------------------------+--------+------------------+
|             MODULE              |              VERSION               |            NEW VERSION             | DIRECT | VALID TIMESTAMPS |
+---------------------------------+------------------------------------+------------------------------------+--------+------------------+
| github.com/cosi-project/runtime | v0.0.0-20220426184241-e22a85955e81 | v0.0.0-20220527181155-95d06feaf8b5 | true   | true             |
| google.golang.org/genproto      | v0.0.0-20220505152158-f39f71e6c8f3 | v0.0.0-20220531173845-685668d2de03 | true   | true             |
| gopkg.in/yaml.v3                | v0.0.0-20220527175918-f17b0f05cf2c |                                    | true   | true             |
+---------------------------------+------------------------------------+------------------------------------+--------+------------------+

>>>> .:
+---------------------------------+--------------------------------------+------------------------------------+--------+------------------+
|             MODULE              |               VERSION                |            NEW VERSION             | DIRECT | VALID TIMESTAMPS |
+---------------------------------+--------------------------------------+------------------------------------+--------+------------------+
| github.com/aws/aws-sdk-go       | v1.44.19                             | v1.44.24                           | true   | true             |
| github.com/containerd/cgroups   | v1.0.4-0.20220301195952-2e502f6b9e43 | v1.0.4                             | true   | true             |
| github.com/cosi-project/runtime | v0.0.0-20220426184241-e22a85955e81   | v0.0.0-20220527181155-95d06feaf8b5 | true   | true             |
| github.com/google/nftables      | v0.0.0-20220515211605-06687b6e34eb   | v0.0.0-20220516205333-a9775fb167d2 | true   | true             |
| github.com/safchain/ethtool     | v0.0.0-20210803160452-9aa261dae9b1   | v0.2.0                             | true   | true             |
| golang.org/x/net                | v0.0.0-20220513224357-95641704303c   | v0.0.0-20220526153639-5463443f8c37 | true   | true             |
| golang.org/x/sys                | v0.0.0-20220517195934-5e4e11fc645e   | v0.0.0-20220520151302-bc2c85ada10a | true   | true             |
| golang.org/x/term               | v0.0.0-20220411215600-e5f449aeb171   | v0.0.0-20220526004731-065cf7ba2467 | true   | true             |
| gopkg.in/yaml.v3                | v0.0.0-20220527175918-f17b0f05cf2c   |                                    | true   | true             |
+---------------------------------+--------------------------------------+------------------------------------+--------+------------------+

>>>> hack/cloud-image-uploader:
+---------------------------+------------------------------------+------------------------------------+--------+------------------+
|          MODULE           |              VERSION               |            NEW VERSION             | DIRECT | VALID TIMESTAMPS |
+---------------------------+------------------------------------+------------------------------------+--------+------------------+
| github.com/aws/aws-sdk-go | v1.44.19                           | v1.44.24                           | true   | true             |
| golang.org/x/sync         | v0.0.0-20210220032951-036812b2e83c | v0.0.0-20220513210516-0976fa681c29 | true   | true             |
+---------------------------+------------------------------------+------------------------------------+--------+------------------+
```

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-05-31 23:52:22 +04:00
Andrey Smirnov
98bbab12ea
chore: bump dependencies
dependabot + go-mod-outdated

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-05-31 22:42:52 +04:00
Andrey Smirnov
a1b6f21a82
chore: bump dependencies
dependabot-based, go-mod-outdated is broken due to sum issue with Azure
SDK package :(

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-05-23 21:25:04 +04:00
Dmitriy Matrenichev
a6e4365823
feat: implement DeepCopy using code generation
Refactor every typed.Resource except KubeletConfigSpec to use deep-copy tool for generating DeepCopy method.

KubeletConfigSpec is excluded because its DeepCopy method is not trivial.

Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
2022-05-13 04:39:36 +08:00
Andrey Smirnov
b52962c440
chore: bump dependencies
dependabot + go-mod-outdated

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-05-11 20:30:03 +03:00
Andrey Smirnov
45464412e0
chore: bump dependencies
dependabot + go-mod-outdated

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-04-25 16:26:41 +03:00