4 Commits

Author SHA1 Message Date
Andrey Smirnov
3dc5606053 fix(init): don't close ACPI listen handle too early (#647)
Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-05-13 07:50:21 -07:00
Andrey Smirnov
505b5022c4
feat(init): implement graceful shutdown of 'init' (#562)
Most crucial changes in `init/main.go`: on shutdown now Talos tries
to stop gracefully all the services. All the shutdown paths are unified,
including poweroff, reboot and panic handling on startup.

While I was at it, I also fixed bug with containers failing to start
when old snapshot is still around.

Service lifecycle is wrapped with `ServiceRunner` object now which
handles state transitions and captures events related to state changes.
Every change goes to the log as well.

There's no way to capture service state yet, but that is planned to be
implemented as RPC API for `init` which is exposed via `osd` to `osctl`.

Future steps:

1. Implement service dependencies for correct startup order and
shutdown order.

2. Implement service health, so that we can say "start trustd when
containerd is up and healthy".

3. Implement gRPC API for init, expose via osd (service status, restart,
poweroff, ...)

4. Impement 'String()' for conditions, so that we can see what service
is waiting on right now.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-04-26 16:53:19 +03:00
Matt Layher
72f60b4234 fix: remove redundant netlink connection, use netlink.IsNotExist in init (#511)
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2019-04-10 11:02:51 -07:00
Andrew Rynhard
2e9a7ec0c5
feat: add power off functionality (#462)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-03-24 20:21:41 -07:00