51 Commits

Author SHA1 Message Date
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
Andrew Rynhard
95c9b3f380
chore: add gpt scope (#239) 2018-11-30 15:26:33 -08:00
Andrew Rynhard
ca9719cd72
refactor: rename project to Talos (#211) 2018-11-15 11:33:24 -08:00
Andrew Rynhard
d662791ae4
chore: update artifact destination (#202)
The newest version of Conform now deletes the destination.
2018-11-10 15:43:02 -08:00
Andrew Rynhard
b67f0d84fb
docs: add documention (#158) 2018-10-30 07:26:31 -07:00
Andrew Rynhard
4c4d692eb1
chore(ci): add brigade configuration (#166) 2018-10-17 07:18:21 -07:00
Andrew Rynhard
d542c83403
feat(ami): enable ena support (#164) 2018-10-16 14:59:05 -07:00
Andrew Rynhard
e114026b57
chore(*): update conform commands (#150) 2018-10-04 20:54:58 -07:00
Andrew Rynhard
8f09202228
feat(*): run system services via containerd (#149) 2018-09-20 13:34:26 -07:00
Andrew Rynhard
deea44bc60
feat(hack): add CIS Kubernetes Benchmark script (#134) 2018-08-04 20:31:13 -07:00
Andrew Rynhard
6b661c3abc
feat(conformance): add conformance image (#126) 2018-07-25 05:40:57 -07:00
Andrew Rynhard
80edd4852c
refactor(*): move source code into src directory (#118) 2018-07-05 20:18:10 -07:00
Andrew Rynhard
f6adabe351
feat(image): generate image (#114) 2018-07-04 22:56:51 -07:00
Andrew Rynhard
9321d7ab18
fix(*): create build directory (#108) 2018-06-09 08:10:50 -07:00
Andrew Rynhard
2bd7b898cb
fix(*): use commit SHA on master and tag name on tags (#98) 2018-05-19 23:31:17 -07:00
Andrew Rynhard
1c15d9b12a
chore(*): build AMI (#83) 2018-05-16 19:33:56 -07:00
Andrew Rynhard
05f65c1ab4
refactor(*): move gRPC service to dedicated binary (#73) 2018-05-10 17:02:57 -07:00
Andrew Rynhard
7785d6fc8b
feat(*): use CRI-O as the container runtime (#12) 2018-03-17 21:36:35 -07:00
Andrew Rynhard
6c1038bac7
feat(init): basic process managment (#6) 2018-03-13 19:02:05 -07:00