...
1
16
17 package node
18
19 import (
20 "context"
21 "fmt"
22
23 "k8s.io/kubernetes/test/e2e/framework"
24 e2enode "k8s.io/kubernetes/test/e2e/framework/node"
25 e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
26 "k8s.io/kubernetes/test/e2e/storage/utils"
27 admissionapi "k8s.io/pod-security-admission/api"
28
29 "github.com/onsi/ginkgo/v2"
30 )
31
32 var _ = SIGDescribe("crictl", func() {
33 f := framework.NewDefaultFramework("crictl")
34 f.NamespacePodSecurityLevel = admissionapi.LevelPrivileged
35
36 ginkgo.BeforeEach(func() {
37
38 e2eskipper.SkipUnlessProviderIs("gce", "gke")
39 })
40
41 ginkgo.It("should be able to run crictl on the node", func(ctx context.Context) {
42 nodes, err := e2enode.GetBoundedReadySchedulableNodes(ctx, f.ClientSet, maxNodes)
43 framework.ExpectNoError(err)
44
45 testCases := []string{
46 "crictl version",
47 "crictl info",
48 }
49
50 hostExec := utils.NewHostExec(f)
51
52 for _, testCase := range testCases {
53 for _, node := range nodes.Items {
54 ginkgo.By(fmt.Sprintf("Testing %q on node %q ", testCase, node.GetName()))
55
56 res, err := hostExec.Execute(ctx, testCase, &node)
57 framework.ExpectNoError(err)
58
59 if res.Stdout == "" && res.Stderr == "" {
60 framework.Fail("output is empty")
61 }
62 }
63 }
64 })
65 })
66
View as plain text