talos/internal/pkg/containers/inspector.go
Andrey Smirnov c7ee239087 fix: show stopped/exited containers via CRI inspector
This fixes output of `talosctl containers` to show failed/exited
containers so that it's possible to see e.g. `kube-apiserver` container
when it fails to start. This also enables using ID from the container
list to see logs of failing containers, so it's easy to debug issues
when control plane pods don't start because of wrong configuration.

Also remove option to use either CRI or containerd inspector, default to
containerd for system namespace and to CRI for kubernetes namespace.

The only side effect is that we can't see `kubelet` container in the
output of `talosctl containers -k`, but `kubelet` itself is available in
`talosctl services` and `talosctl logs kubelet`.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2021-02-26 14:45:13 -08:00

22 lines
765 B
Go

// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
package containers
import "syscall"
// Inspector gather information about pods & containers.
type Inspector interface {
// Pods collects information about running pods & containers.
Pods() ([]*Pod, error)
// Container returns info about a single container.
Container(id string) (*Container, error)
// Close frees associated resources.
Close() error
// Returns path to the container's stderr pipe
GetProcessStderr(ID string) (string, error)
// Kill sends signal to container's process
Kill(ID string, isPodSandbox bool, signal syscall.Signal) error
}