talos/internal/integration/cli/containers.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

44 lines
1.2 KiB
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/.
// +build integration_cli
package cli
import (
"regexp"
"github.com/talos-systems/talos/internal/integration/base"
"github.com/talos-systems/talos/pkg/machinery/config/types/v1alpha1/machine"
)
// ContainersSuite verifies dmesg command.
type ContainersSuite struct {
base.CLISuite
}
// SuiteName ...
func (suite *ContainersSuite) SuiteName() string {
return "cli.ContainersSuite"
}
// TestContainerd inspects containers via containerd driver.
func (suite *ContainersSuite) TestContainerd() {
suite.RunCLI([]string{"containers", "--nodes", suite.RandomDiscoveredNode()},
base.StdoutShouldMatch(regexp.MustCompile(`IMAGE`)),
base.StdoutShouldMatch(regexp.MustCompile(`talos/routerd`)),
)
}
// TestCRI inspects containers via CRI driver.
func (suite *ContainersSuite) TestCRI() {
suite.RunCLI([]string{"containers", "-k", "--nodes", suite.RandomDiscoveredNode(machine.TypeControlPlane)},
base.StdoutShouldMatch(regexp.MustCompile(`kube-system/kube-apiserver`)),
)
}
func init() {
allSuites = append(allSuites, new(ContainersSuite))
}