6 Commits

Author SHA1 Message Date
Andrey Smirnov
bddd4f1bf6 refactor: move external API packages into machinery/
This moves `pkg/config`, `pkg/client` and `pkg/constants`
under `pkg/machinery` umbrella.

And `pkg/machinery` is published as Go module inside Talos repository.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-08-17 09:56:14 -07:00
Andrey Smirnov
47608fb874 refactor: make pkg/config not rely on machined/../internal/runtime
This makes `pkg/config` directly importable from other projects.

There should be no functional changes.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-07-29 12:40:12 -07:00
Andrey Smirnov
686dcc6743 chore: enable 'testpackage' linter
This linter makes sure tests are excercising only public package API.

I fixed all the tests which touch only public API of the packages. For
other test packages I added proper `//nolint` directive.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2020-06-30 16:42:28 -07:00
Andrew Rynhard
49307d554d refactor: improve machined
This is a rewrite of machined. It addresses some of the limitations and
complexity in the implementation. This introduces the idea of a
controller. A controller is responsible for managing the runtime, the
sequencer, and a new state type introduced in this PR.

A few highlights are:

- no more event bus
- functional approach to tasks (no more types defined for each task)
  - the task function definition now offers a lot more context, like
    access to raw API requests, the current sequence, a logger, the new
    state interface, and the runtime interface.
- no more panics to handle reboots
- additional initialize and reboot sequences
- graceful gRPC server shutdown on critical errors
- config is now stored at install time to avoid having to download it at
  install time and at boot time
- upgrades now use the local config instead of downloading it
- the upgrade API's preserve option takes precedence over the config's
  install force option

Additionally, this pulls various packes in under machined to make the
code easier to navigate.

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2020-04-28 08:20:55 -07:00
Niklas Wik
0824e500b2 feat: initial work for supporting vlans
Adding VLAN as option to machine config under devices.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

feat: Add addressing support for VLAN devices.

- Refactors static addressing to not be dependent on machine.Device

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

feat: Add addressing support for VLAN devices.

- Support of VLAN being the default network to use by removing need of addressing on master device.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: Fix the fmt of go files

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: refactor based on review comment.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: remove unused function

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

feat: initial work for supporting vlans

Adding VLAN as option to machine config under devices.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

feat: Add addressing support for VLAN devices.

- Refactors static addressing to not be dependent on machine.Device

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

feat: Add addressing support for VLAN devices.

- Support of VLAN being the default network to use by removing need of addressing on master device.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: Fix the fmt of go files

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: refactor based on review comment.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: fix test case function arguments

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: Add log for debugging address configuration failures

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: fix lint issues.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: fix the lint error.

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>

fix: Fix when addressing set with kernel options

Signed-off-by: Niklas Wik <niklas.wik@nokia.com>
2020-03-23 17:08:39 -07:00
Brad Beam
119bf3e7bb feat(networkd): Add support for bonding
This includes a healthy refactor of the networkd code as well.
- Move netlink functionality to nic package
- Networkd facilitates the orchestration of the underlying interface configuration
- Networkd now stores the state of each interface configuration. This
  should allow us to expose this information via api in the future.

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-11-26 20:08:31 -08:00