...
1
16
17 package kubeadm
18
19 import (
20 "context"
21
22 rbacv1 "k8s.io/api/rbac/v1"
23 "k8s.io/kubernetes/test/e2e/framework"
24 admissionapi "k8s.io/pod-security-admission/api"
25
26 "github.com/onsi/ginkgo/v2"
27 "github.com/onsi/gomega"
28 )
29
30 const (
31 kubeletConfigConfigMapKey = "kubelet"
32 )
33
34 var (
35 kubeletConfigConfigMapName string
36 kubeletConfigRoleName string
37 kubeletConfigRoleBindingName string
38 )
39
40
41
42
43 var _ = Describe("kubelet-config ConfigMap", func() {
44
45
46 f := framework.NewDefaultFramework("kubelet-config")
47 f.NamespacePodSecurityLevel = admissionapi.LevelPrivileged
48
49
50
51 f.SkipNamespaceCreation = true
52
53
54
55 ginkgo.BeforeEach(func() {
56
57 if kubeletConfigConfigMapName != "" {
58 return
59 }
60
61 kubeletConfigConfigMapName = "kubelet-config"
62 kubeletConfigRoleName = "kubeadm:kubelet-config"
63 kubeletConfigRoleBindingName = kubeletConfigRoleName
64 })
65
66 ginkgo.It("should exist and be properly configured", func(ctx context.Context) {
67 cm := GetConfigMap(f.ClientSet, kubeSystemNamespace, kubeletConfigConfigMapName)
68 gomega.Expect(cm.Data).To(gomega.HaveKey(kubeletConfigConfigMapKey))
69 })
70
71 ginkgo.It("should have related Role and RoleBinding", func(ctx context.Context) {
72 ExpectRole(f.ClientSet, kubeSystemNamespace, kubeletConfigRoleName)
73 ExpectRoleBinding(f.ClientSet, kubeSystemNamespace, kubeletConfigRoleBindingName)
74 })
75
76 ginkgo.It("should be accessible for bootstrap tokens", func(ctx context.Context) {
77 ExpectSubjectHasAccessToResource(f.ClientSet,
78 rbacv1.GroupKind, bootstrapTokensGroup,
79 kubeadmConfigConfigMapResource,
80 )
81 })
82
83 ginkgo.It("should be accessible for nodes", func(ctx context.Context) {
84 ExpectSubjectHasAccessToResource(f.ClientSet,
85 rbacv1.GroupKind, nodesGroup,
86 kubeadmConfigConfigMapResource,
87 )
88 })
89 })
90
View as plain text