go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/kubelet_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package resources_test 5 6 // TODO: tests need to be migrated 7 // import ( 8 // "testing" 9 10 // "github.com/stretchr/testify/assert" 11 // "go.mondoo.com/cnquery/resources/packs/k8s" 12 // "go.mondoo.com/cnquery/resources/packs/os" 13 // "go.mondoo.com/cnquery/resources/packs/testutils" 14 // ) 15 16 // func TestResource_K8sKubelet(t *testing.T) { 17 // combinedRegistry := k8s.Registry 18 // combinedRegistry.Add(os.Registry) 19 // x := testutils.InitTester(testutils.KubeletMock(), combinedRegistry) 20 21 // t.Run("k8s.kubelet resource", func(t *testing.T) { 22 // res := x.TestQuery(t, "k8s.kubelet") 23 // assert.NotEmpty(t, res) 24 // assert.NoError(t, res[0].Data.Error) 25 // }) 26 27 // t.Run("kubelet configFile path", func(t *testing.T) { 28 // res := x.TestQuery(t, "k8s.kubelet.configFile.path") 29 // assert.NotEmpty(t, res) 30 // assert.NoError(t, res[0].Data.Error) 31 // }) 32 33 // t.Run("kubelet process executable", func(t *testing.T) { 34 // res := x.TestQuery(t, "k8s.kubelet.process.executable") 35 // assert.NotEmpty(t, res) 36 // assert.NoError(t, res[0].Data.Error) 37 // assert.Equal(t, "/var/lib/minikube/binaries/v1.24.3/kubelet", res[0].Data.Value) 38 // }) 39 40 // t.Run("kubelet config file flag", func(t *testing.T) { 41 // res := x.TestQuery(t, "k8s.kubelet.configuration[\"config\"]") 42 // assert.NotEmpty(t, res) 43 // assert.Empty(t, res[0].Result().Error) 44 // assert.Equal(t, "/var/lib/kubelet/config.yaml", res[0].Data.Value) 45 // }) 46 47 // t.Run("check for default value", func(t *testing.T) { 48 // res := x.TestQuery(t, "k8s.kubelet.configuration[\"volumePluginDir\"]") 49 // assert.NotEmpty(t, res) 50 // assert.Empty(t, res[0].Result().Error) 51 // assert.Equal(t, "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/", res[0].Data.Value) 52 // }) 53 54 // t.Run("check for config file param", func(t *testing.T) { 55 // res := x.TestQuery(t, "k8s.kubelet.configuration[\"healthzBindAddress\"]") 56 // assert.NotEmpty(t, res) 57 // assert.Empty(t, res[0].Result().Error) 58 // assert.Equal(t, "127.0.0.1", res[0].Data.Value) 59 // }) 60 61 // t.Run("check for cli flag overwrite", func(t *testing.T) { 62 // res := x.TestQuery(t, "k8s.kubelet.process.flags[\"runtime-request-timeout\"]") 63 // assert.NotEmpty(t, res) 64 // assert.Empty(t, res[0].Result().Error) 65 // assert.Equal(t, "15m", res[0].Data.Value) 66 67 // res = x.TestQuery(t, "k8s.kubelet.configFile.content") 68 // assert.NotEmpty(t, res) 69 // assert.Empty(t, res[0].Result().Error) 70 // assert.Contains(t, res[0].Data.Value, "runtimeRequestTimeout: 0s") 71 72 // res = x.TestQuery(t, "k8s.kubelet.configuration[\"runtimeRequestTimeout\"]") 73 // assert.NotEmpty(t, res) 74 // assert.Empty(t, res[0].Result().Error) 75 // assert.Equal(t, "15m", res[0].Data.Value) 76 // }) 77 // } 78 79 // func TestResource_K8sKubeletAKS(t *testing.T) { 80 // // AKS is special in that regard, that it does not have a kubelet config file 81 // // everything is configured via the kubelet process flags 82 // combinedRegistry := k8s.Registry 83 // combinedRegistry.Add(os.Registry) 84 // x := testutils.InitTester(testutils.KubeletAKSMock(), combinedRegistry) 85 86 // t.Run("k8s.kubelet resource", func(t *testing.T) { 87 // res := x.TestQuery(t, "k8s.kubelet") 88 // assert.NotEmpty(t, res) 89 // assert.NoError(t, res[0].Data.Error) 90 // }) 91 92 // t.Run("kubelet configFile path", func(t *testing.T) { 93 // res := x.TestQuery(t, "k8s.kubelet.configFile") 94 // assert.NotEmpty(t, res) 95 // assert.NoError(t, res[0].Data.Error) 96 // assert.Equal(t, nil, res[0].Data.Value) 97 // }) 98 99 // t.Run("kubelet process executable", func(t *testing.T) { 100 // res := x.TestQuery(t, "k8s.kubelet.process.executable") 101 // assert.NotEmpty(t, res) 102 // assert.NoError(t, res[0].Data.Error) 103 // assert.Equal(t, "/usr/local/bin/kubelet", res[0].Data.Value) 104 // }) 105 106 // t.Run("kubelet config file flag", func(t *testing.T) { 107 // res := x.TestQuery(t, "k8s.kubelet.configuration[\"config\"]") 108 // assert.NotEmpty(t, res) 109 // assert.Empty(t, res[0].Result().Error) 110 // assert.Equal(t, nil, res[0].Data.Value) 111 // }) 112 113 // t.Run("kubelet flag anonymous-auth", func(t *testing.T) { 114 // res := x.TestQuery(t, "k8s.kubelet.configuration[\"authentication\"][\"anonymous\"][\"enabled\"]") 115 // assert.NotEmpty(t, res) 116 // assert.Empty(t, res[0].Result().Error) 117 // assert.Equal(t, "false", res[0].Data.Value) 118 // }) 119 120 // t.Run("kubelet flag tls-cipher-suites", func(t *testing.T) { 121 // res := x.TestQuery(t, "k8s.kubelet.configuration[\"tlsCipherSuites\"]") 122 // assert.NotEmpty(t, res) 123 // assert.Empty(t, res[0].Result().Error) 124 // assert.Equal(t, 8, len(res[0].Data.Value.([]interface{}))) 125 // assert.Contains(t, res[0].Data.Value.([]interface{}), "TLS_RSA_WITH_AES_128_GCM_SHA256") 126 // }) 127 128 // t.Run("kubelet flag eviction-hard", func(t *testing.T) { 129 // res := x.TestQuery(t, "k8s.kubelet.configuration[\"evictionHard\"][\"memory.available\"]") 130 // assert.NotEmpty(t, res) 131 // assert.Empty(t, res[0].Result().Error) 132 // assert.Equal(t, "750Mi", res[0].Data.Value) 133 // }) 134 135 // t.Run("check for cli flag overwrite", func(t *testing.T) { 136 // res := x.TestQuery(t, "k8s.kubelet.process.flags[\"read-only-port\"]") 137 // assert.NotEmpty(t, res) 138 // assert.Empty(t, res[0].Result().Error) 139 // assert.Equal(t, "0", res[0].Data.Value) 140 141 // // default is 10250 142 // res = x.TestQuery(t, "k8s.kubelet.configuration[\"readOnlyPort\"]") 143 // assert.NotEmpty(t, res) 144 // assert.Empty(t, res[0].Result().Error) 145 // assert.Equal(t, "0", res[0].Data.Value) 146 // }) 147 // }