Skip to content

Commit c54a2e4

Browse files
committed
Add user rolebindings
1 parent 69362af commit c54a2e4

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

support/rbac.go

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,37 @@ func CreateRoleBinding(t Test, namespace string, serviceAccount *corev1.ServiceA
101101
return rb
102102
}
103103

104+
func CreateUserRoleBinding(t Test, namespace string, userName string, role *rbacv1.Role) *rbacv1.RoleBinding {
105+
t.T().Helper()
106+
107+
roleBinding := &rbacv1.RoleBinding{
108+
TypeMeta: metav1.TypeMeta{
109+
APIVersion: rbacv1.SchemeGroupVersion.String(),
110+
Kind: "RoleBinding",
111+
},
112+
ObjectMeta: metav1.ObjectMeta{
113+
GenerateName: "rb-",
114+
},
115+
RoleRef: rbacv1.RoleRef{
116+
APIGroup: rbacv1.SchemeGroupVersion.Group,
117+
Kind: "Role",
118+
Name: role.Name,
119+
},
120+
Subjects: []rbacv1.Subject{
121+
{
122+
Kind: "User",
123+
APIGroup: rbacv1.SchemeGroupVersion.Group,
124+
Name: userName,
125+
},
126+
},
127+
}
128+
rb, err := t.Client().Core().RbacV1().RoleBindings(namespace).Create(t.Ctx(), roleBinding, metav1.CreateOptions{})
129+
t.Expect(err).NotTo(gomega.HaveOccurred())
130+
t.T().Logf("Created User RoleBinding %s/%s successfully", role.Namespace, role.Name)
131+
132+
return rb
133+
}
134+
104135
func CreateClusterRoleBinding(t Test, serviceAccount *corev1.ServiceAccount, role *rbacv1.ClusterRole) *rbacv1.ClusterRoleBinding {
105136
t.T().Helper()
106137

@@ -136,3 +167,38 @@ func CreateClusterRoleBinding(t Test, serviceAccount *corev1.ServiceAccount, rol
136167

137168
return rb
138169
}
170+
171+
func CreateUserClusterRoleBinding(t Test, userName string, role *rbacv1.ClusterRole) *rbacv1.ClusterRoleBinding {
172+
t.T().Helper()
173+
174+
roleBinding := &rbacv1.ClusterRoleBinding{
175+
TypeMeta: metav1.TypeMeta{
176+
APIVersion: rbacv1.SchemeGroupVersion.String(),
177+
Kind: "ClusterRoleBinding",
178+
},
179+
ObjectMeta: metav1.ObjectMeta{
180+
GenerateName: "crb-",
181+
},
182+
RoleRef: rbacv1.RoleRef{
183+
APIGroup: rbacv1.SchemeGroupVersion.Group,
184+
Kind: "ClusterRole",
185+
Name: role.Name,
186+
},
187+
Subjects: []rbacv1.Subject{
188+
{
189+
Kind: "User",
190+
APIGroup: rbacv1.SchemeGroupVersion.Group,
191+
Name: userName,
192+
},
193+
},
194+
}
195+
rb, err := t.Client().Core().RbacV1().ClusterRoleBindings().Create(t.Ctx(), roleBinding, metav1.CreateOptions{})
196+
t.Expect(err).NotTo(gomega.HaveOccurred())
197+
t.T().Logf("Created User ClusterRoleBinding %s/%s successfully", role.Namespace, role.Name)
198+
199+
t.T().Cleanup(func() {
200+
t.Client().Core().RbacV1().ClusterRoleBindings().Delete(t.Ctx(), rb.Name, metav1.DeleteOptions{})
201+
})
202+
203+
return rb
204+
}

0 commit comments

Comments
 (0)