Commit Graph

69 Commits

Author SHA1 Message Date
Andrey Smirnov
eba8185642
release(v1.5.0-alpha.0): prepare release
This is the official v1.5.0-alpha.0 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2023-05-19 18:38:24 +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
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
Andrey Smirnov
022581d809
release(v1.2.0-alpha.0): prepare release
This is the official v1.2.0-alpha.0 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-06-30 19:01:07 +04:00
Andrey Smirnov
25d19131d3
release(v1.1.0-alpha.0): prepare release
This is the official v1.1.0-alpha.0 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-04-01 18:23:19 +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
77158a61fd
chore: rename v0.15 to v1.0
Next release of Talos will be v1.0 🎉

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-03-03 00:25:43 +03:00
Andrey Smirnov
d02d944ec7
chore: provide umarshal from YAML methods for network resource specs
This will be required to preserve platform network configuration in a
cache across boots. Network configuration will be marshaled to YAML and
unmarshaled back.

Changes are pretty simple and most of the code is auto-generated:
replace `stringer` codegen with `enumer` which produces also methods
which convert from string back to enum values.

Added tests to verify YAML marshaling/unmarshaling.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2022-01-10 17:00: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
Andrey Smirnov
01b0f0abb3
release(v0.14.0-alpha.0): prepare release
This is the official v0.14.0-alpha.0 release.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-10-25 22:44:31 +03:00
Andrey Smirnov
d69bd2af3e
chore: enable GPG identity check for Talos
This check enforces that commit should not only be signed by GPG
signature, but also signature identity should be one of the
`talos-systems` organization members.

Talos welcomes all external contributions, this check just means that
the commit will be signed with one of the org members before merge.

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-09-02 17:04:02 +03:00
Andrey Smirnov
c9af8f7ff1
docs: fork docs for 0.13
s/0.12/0.13/ mostly

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
2021-08-25 21:43:05 +03:00
Andrew Rynhard
62242f979e
chore: require GPG signatures
GPG signatures are now required.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2021-08-11 17:49:31 +00:00
Andrey Smirnov
d930a26502 chore: implement DeepCopy for machine configuration
Resources code extensively uses DeepCopy to prevent in-memory copy of
the resource to be mutated outside of the resource model.

Previous implementation relied on YAML serialization to copy the
machine configuration which was slow, potentially might lead to panics
and it generates pressure on garbage collection.

This implementation uses k8s code generator to generate DeepCopy methods
with some manual helpers when code generator can't handle it.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2021-07-08 07:21:24 -07:00
Alexey Palazhchenko
2ba8ac9ab4 docs: add documentation directory for 0.12
Plus, convert a few absolute URLs with a version number to relative URLs without versions.

Signed-off-by: Alexey Palazhchenko <alexey.palazhchenko@gmail.com>
2021-07-08 04:44:51 -07:00
Andrey Smirnov
5811f4dda1 feat: implement link (interface) controllers
The structure of the controllers is really similar to addresses and
routes:

* `LinkSpec` resource describes desired link state
* `LinkConfig` controller generates `LinkSpecs` based on machine
configuration and kernel cmdline
* `LinkMerge` controller merges multiple configuration sources into a
single `LinkSpec` paying attention to the config layer priority
* `LinkSpec` controller applies the specs to the kernel state

Controller `LinkStatus` (which was implemented before) watches the
kernel state and publishes current link status.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2021-06-01 09:36:25 -07:00
Andrey Smirnov
3c1213596c feat: implement LinkStatusController
This is the first PR of many which implement new COSI network
configuration. This controller provides low-level status of the network
interfaces (links) not touching on the addresses of the interface.

The information gathered resembles output of `ip link show` command.

Examples:

```
$ talosctl -n 172.20.0.2 get links
NODE         NAMESPACE   TYPE         ID             VERSION   TYPE       KIND     HW ADDR                                           OPER STATE   LINK STATE
172.20.0.2   net         LinkStatus   bond0          1         ether      bond     fe:c4:d6:4c:04:05                                 down         false
172.20.0.2   net         LinkStatus   cni0           5         ether      bridge   22:cc:25:7e:64:19                                 up           true
172.20.0.2   net         LinkStatus   dummy0         1         ether      dummy    0e:f6:f3:ef:53:29                                 down         false
172.20.0.2   net         LinkStatus   eth0           4         ether               ae:1b:9c:19:6b:47                                 up           true
172.20.0.2   net         LinkStatus   flannel.1      2         ether      vxlan    be:c5:4f:eb:da:5c                                 unknown      true
172.20.0.2   net         LinkStatus   ip6tnl0        1         tunnel6    ip6tnl   00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00   down         false
172.20.0.2   net         LinkStatus   lo             4         loopback            00:00:00:00:00:00                                 unknown      true
172.20.0.2   net         LinkStatus   sit0           1         sit        sit      00:00:00:00                                       down         false
172.20.0.2   net         LinkStatus   teql0          1         void                                                                  down         false
172.20.0.2   net         LinkStatus   tunl0          1         ipip       ipip     00:00:00:00                                       down         false
172.20.0.2   net         LinkStatus   veth1c1422df   2         ether      veth     6a:2d:68:be:8e:8f                                 up           true
172.20.0.2   net         LinkStatus   veth2ce7ce8d   1         ether      veth     52:fc:98:82:f7:29                                 up           true
```

```
$ talosctl -n 172.20.0.2 get links eth0 -o yaml
node: 172.20.0.2
metadata:
    namespace: net
    type: LinkStatuses.net.talos.dev
    id: eth0
    version: 4
    owner: network.LinkStatusController
    phase: running
spec:
    index: 4
    type: ether
    linkIndex: 0
    flags: UP,BROADCAST,RUNNING,MULTICAST,LOWER_UP
    hardwareAddr: ae:1b:9c:19:6b:47
    broadcastAddr: ff:ff:ff:ff:ff:ff
    mtu: 1500
    queueDisc: pfifo_fast
    operationalState: up
    kind: ""
    slaveKind: ""
    linkState: true
    speedMbit: 4294967295
    port: Other
    duplex: Unknown
```

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2021-05-07 10:08:21 -07:00
Andrey Smirnov
f98185408d chore: fix conform with scopes
In recent versions of conform, scope is regexp so `*` is not a valid
regexp.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2021-04-13 15:00:36 -07:00
Andrey Smirnov
2ea20f598a feat: replace timed with time sync controller
This is a complete rewrite of time sync process.

Now the time sync process starts early at boot time, and it adapts to
configuration changes:

* before config is available, `pool.ntp.org` is used
* once config is available, configured time servers are used

Controller updates same time sync resource as other controllers had
dependency on, so they have a chance to wait for the time sync event.

Talos services which depend on time now wait on same resource instead of
waiting on timed health.

New features:

* time sync now sticks to the particular time server unless there's an
error from that server, and server is changed in that case, this
improves time sync accuracy

* time sync acts on config changes immediately, so it's possible to
reconfigure time sync at any time

* there's a new 'epoch' field in time sync resources which allows
time-dependent controllers to regenerate certs when there's a big enough
jump in time

Features to implement later:

* apid shouldn't depend on timed, it should be started early and it
should regenerate certs on time jump

* trustd should be updated in same way

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2021-03-29 09:29:43 -07:00
Andrey Smirnov
b0209fd29d refactor: move networkd, timed APIs to machined, remove routerd
This moves implementation of the user-facing APIs to the machined, and
as now all the APIs are implemented by machined, remove routerd and
adjust apid to proxy to machined.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2021-03-24 00:00:28 -07:00
Andrew Rynhard
c1472e2b87 chore: fix conform for releases
Updates the allowed scope for releases.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-12-04 16:58:04 -08:00
Andrew Rynhard
98976602f7 fix(security): update Containerd to v1.4.3
This brings in the the latest Containerd to address a CVE.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-11-30 17:40:01 -08:00
Andrew Rynhard
fca19cb8be release(v0.7.0-alpha.0): prepare release
This is the official v0.7.0-alpha.0 release.

Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
2020-08-17 10:29:14 -07:00
Andrey Smirnov
cbb7ca8390 refactor: merge osd into machined
This merges `osd` API into `machined`. API was copied from `osd` into
`machined`, and `osd` API was deprecated.

For backwards compatibility, `machined` still implements `osd` API, so
older Talos API clients can still talk to the node without changes.

Docs were updated. No functional changes.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-07-13 12:50:00 -07:00
Andrew Rynhard
0e61977ebf release(v0.6.0-alpha.0): prepare release
This is the official v0.6.0-alpha.0 release.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-05-15 21:14:54 -07:00
Andrew Rynhard
3332ca58d3 release(v0.5.0-alpha.1): prepare release
This is the official v0.5.0-alpha.1 release.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-04-21 11:52:29 -07:00
Andrew Rynhard
7cf28dc805 refactor: rename ntpd to timed
This renames the ntpd application to timed.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-04-13 15:02:26 -07:00
Andrew Rynhard
a10acd592a chore: address random CI nits
This PR does the following:

- updates the conform config
- cleans up conform scopes
- moves slash commands to the talos-bot
- adds a check list to the pull request template
- disables codecov comments
- uses `BOT_TOKEN` so all actions are performed as the talos-bot user
- adds a `make conformance` target to make it easy for contributors to
check their commit before creating a PR
- bumps golangci-lint to v1.24.0

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-04-13 13:01:14 -07:00
Andrew Rynhard
5dbc26c7a3 feat: rename osctl to talosctl
This is a rename of the osctl binary. We decided that talosctl is a
better name for the Talos CLI. This does not break any APIs, but does
make older documentation only accurate for previous versions of Talos.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-03-20 19:07:39 -07:00
Brad Beam
defbcf3856 docs(apid): Add apid docs
Describes apid and introduces some workflows to illustrate what apid does.

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2020-01-28 11:36:13 -08:00
Andrey Smirnov
d3d011c8d2 chore: replace /* */ comments with // comments in license header
This fixes issues with `// +build` directives not being recognized in
source files.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-10-25 14:15:17 -07:00
Andrew Rynhard
80e3876df5 feat: remove proxyd
We have decided that proxyd is not the best architectue for HA
Kubernetes. Our recommendation to users will be to create a load
balancer instead.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-10-14 08:11:00 -07:00
Brad Beam
a0ace6881b refactor(ntpd): Improvements to the robustness of ntp
- Use the Validate method to ensure we get an appropriate time back
- Hard set the clock initially, adjust clock by offsets afterwards
- Introduce functional opts to configure ntp client
- Add additional test coverage

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-09-05 21:52:29 -05:00
Brad Beam
313c118ad0 refactor(networkd): Replace networkd with a standalone app
This is a major rewrite of our network subsystem.

- This changes networkd to run as a standalone app versus internal goroutine
- This changes out the netlink package with the more idiomatic netlink/rtnetlink
  packages
- This changes the initial network bootstrap/discovery from using a single
  interface to attempting to bring up all interfaces
- This moves us back on to the upstream dhcp library

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-08-21 13:24:51 -05:00
Brad Beam
da1f73249f fix(machined): Clean up installation process
This also includes a fix for #955 which had the unintended side effect
of breaking image creation ( since it would attempt to grow the filesystem
always ).

The refactor standardizes around looking for the DATA and ESP labels to
discover any existing installations/filesystems. If none are found, an
installation will proceed -- for both image creation and bare metal.
During bootup, the DATA partition will always attempt to expand/grow.

This also introduces a new phase to verify the installation through the
existance of /boot/installed ( migrated from install stage ).

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-08-08 22:10:14 -05:00
Andrew Rynhard
fd84d975f4 chore: upgrade conform to v0.1.0-alpha.15
This PR also makes use of two new options:

- maximumOfOneCommit: enforces that a commit is only one commit ahead of master
- requireCommitBody: requires that a commit contains a body

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-07-04 16:43:18 -07:00
Brad Beam
c88b6fc422 fix(proxyd): Fix backend deletion (#729)
Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-06-07 14:34:47 -07:00
Andrew Rynhard
f0e162a7f5
refactor: move osinstall into osctl (#629)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-05-09 08:49:32 -07:00
Andrew Rynhard
ea99788ef1
feat(trustd): use a token instead of username and password (#586)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-04-28 12:18:56 -07:00
Andrey Smirnov
2ea253ac38 chore: keep buildkitd cache as local volume (#522)
Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-04-12 09:52:16 -07:00
Andrey Smirnov
b36bf3e178 chore: use protobuf compiler from the toolchain image (#468)
Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-03-27 16:33:03 -07:00
Andrew Rynhard
07942543e2
chore: upgrade conform (#440)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-03-04 19:52:52 -08:00
Brad Beam
8ee9022b71 feat: add osinstall cli utility (#368) 2019-02-23 13:18:52 -08:00
Andrew Rynhard
e6b0e1ab3c
chore: remove GPG requirement (#341)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-02-15 09:32:32 -08:00
Andrew Rynhard
cfd6721b4c
chore: update conform config (#322)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-01-21 21:11:16 -08:00
Andrew Rynhard
ee226dddac
chore: enforce commit and license policies (#304)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-01-13 16:10:49 -08:00
Andrew Rynhard
72eb1b34f5
chore: use buildkit for builds (#295) 2018-12-19 22:22:05 -08:00
Andrew Rynhard
2ae2b527eb
chore: remove toolchain and kernel builds (#290)
This PR uses external builds of the toolchain and the kernel.
2018-12-15 19:52:03 -08:00
Andrew Rynhard
c502ca87f3
chore(ci): fix build script (#248) 2018-12-01 15:44:24 -08:00
Andrew Rynhard
e74f4c19e7
fix(init): use the correct blkid lookup values (#243)
Fixes an issue where the block devices were not detected properly.
2018-12-01 14:39:02 -08:00