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  // }