Skip to content

Commit 452a860

Browse files
Nontnwnt
authored andcommitted
Add tests for other resource types
Signed-off-by: Nont <[email protected]>
1 parent cc9b613 commit 452a860

File tree

1 file changed

+101
-67
lines changed

1 file changed

+101
-67
lines changed

test/e2e/managed_resource_vap_test.go

Lines changed: 101 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -45,19 +45,53 @@ var managedByLabelMap = map[string]string{
4545
}
4646

4747
// Helper functions for creating managed resources
48-
func createManagedNamespace(name string) *corev1.Namespace {
48+
func createUnmanagedNamespace(name string) *corev1.Namespace {
4949
return &corev1.Namespace{
5050
ObjectMeta: metav1.ObjectMeta{
51-
Name: name,
52-
Labels: managedByLabelMap,
51+
Name: name,
5352
},
5453
}
5554
}
55+
func createManagedNamespace(name string) *corev1.Namespace {
56+
ns := createUnmanagedNamespace(name)
57+
ns.Labels = managedByLabelMap
58+
return ns
59+
}
5660

57-
func createUnmanagedNamespace(name string) *corev1.Namespace {
58-
return &corev1.Namespace{
61+
func createManagedResourceQuota(ns, name string) *corev1.ResourceQuota {
62+
return &corev1.ResourceQuota{
5963
ObjectMeta: metav1.ObjectMeta{
60-
Name: name,
64+
Name: name,
65+
Namespace: ns,
66+
Labels: managedByLabelMap,
67+
},
68+
}
69+
}
70+
71+
func createManagedNetworkPolicy(ns, name string) *networkingv1.NetworkPolicy {
72+
return &networkingv1.NetworkPolicy{
73+
ObjectMeta: metav1.ObjectMeta{
74+
Name: name,
75+
Namespace: ns,
76+
Labels: managedByLabelMap,
77+
},
78+
}
79+
}
80+
81+
func createManagedCRP(name string) *placementv1beta1.ClusterResourcePlacement {
82+
return &placementv1beta1.ClusterResourcePlacement{
83+
ObjectMeta: metav1.ObjectMeta{
84+
Name: name,
85+
Labels: managedByLabelMap,
86+
},
87+
Spec: placementv1beta1.PlacementSpec{
88+
ResourceSelectors: []placementv1beta1.ResourceSelectorTerm{
89+
{
90+
Group: "",
91+
Version: "v1",
92+
Kind: "Namespace",
93+
},
94+
},
6195
},
6296
}
6397
}
@@ -175,6 +209,67 @@ var _ = Describe("ValidatingAdmissionPolicy for Managed Resources", Label("manag
175209
}, eventuallyDuration, workloadEventuallyDuration).Should(Succeed())
176210
})
177211

212+
Context("For other resources in scope", func() {
213+
214+
It("should deny creating managed resource quotas", func() {
215+
rq := createManagedResourceQuota("default", "default")
216+
err := notMasterUser.Create(ctx, rq)
217+
expectDeniedByVAP(err)
218+
})
219+
220+
It("should deny creating managed network policy", func() {
221+
np := createManagedNetworkPolicy("default", "default")
222+
err := notMasterUser.Create(ctx, np)
223+
expectDeniedByVAP(err)
224+
})
225+
226+
It("should deny creating managed CRP", func() {
227+
crp := createManagedCRP("test-crp")
228+
err := notMasterUser.Create(ctx, crp)
229+
expectDeniedByVAP(err)
230+
})
231+
232+
It("general expected behavior of other resources", func() {
233+
rq := createManagedResourceQuota("default", "default")
234+
np := createManagedNetworkPolicy("default", "default")
235+
crp := createManagedCRP("test-crp")
236+
err := sysMastersClient.Create(ctx, rq)
237+
Expect(err).To(BeNil(), "system:masters user should create managed ResourceQuota")
238+
err = sysMastersClient.Create(ctx, np)
239+
Expect(err).To(BeNil(), "system:masters user should create managed NetworkPolicy")
240+
err = sysMastersClient.Create(ctx, crp)
241+
Expect(err).To(BeNil(), "system:masters user should create managed CRP")
242+
243+
var updateErr error
244+
Eventually(func() error {
245+
var urq corev1.ResourceQuota
246+
if err := sysMastersClient.Get(ctx, types.NamespacedName{Name: "default", Namespace: "default"}, &urq); err != nil {
247+
return err
248+
}
249+
urq.Annotations = map[string]string{"test": "annotation"}
250+
By("expecting denial of UPDATE operation on managed namespace")
251+
updateErr = notMasterUser.Update(ctx, &urq)
252+
if k8sErrors.IsConflict(updateErr) {
253+
return updateErr
254+
}
255+
return nil
256+
}, eventuallyDuration, workloadEventuallyDuration).Should(Succeed())
257+
expectDeniedByVAP(updateErr)
258+
259+
err = notMasterUser.Delete(ctx, np)
260+
expectDeniedByVAP(err)
261+
err = notMasterUser.Delete(ctx, crp)
262+
expectDeniedByVAP(err)
263+
264+
err = sysMastersClient.Delete(ctx, rq)
265+
Expect(err).To(BeNil(), "system:masters user should create managed ResourceQuota")
266+
err = sysMastersClient.Delete(ctx, np)
267+
Expect(err).To(BeNil(), "system:masters user should create managed NetworkPolicy")
268+
err = sysMastersClient.Delete(ctx, crp)
269+
Expect(err).To(BeNil(), "system:masters user should create managed CRP")
270+
})
271+
})
272+
178273
AfterAll(func() {
179274
err := sysMastersClient.Delete(ctx, managedNS)
180275
if err != nil {
@@ -183,65 +278,4 @@ var _ = Describe("ValidatingAdmissionPolicy for Managed Resources", Label("manag
183278
})
184279
})
185280

186-
Context("For other resources in scope", func() {
187-
It("should deny creating managed resource quotas", func() {
188-
Eventually(func() error {
189-
rq := corev1.ResourceQuota{
190-
ObjectMeta: metav1.ObjectMeta{
191-
Name: "default",
192-
Namespace: "default",
193-
Labels: managedByLabelMap,
194-
},
195-
}
196-
err := notMasterUser.Create(ctx, &rq)
197-
if k8sErrors.IsConflict(err) {
198-
return err
199-
}
200-
expectDeniedByVAP(err)
201-
return nil
202-
}, eventuallyDuration, workloadEventuallyDuration).Should(Succeed())
203-
})
204-
It("should deny creating managed network policy", func() {
205-
Eventually(func() error {
206-
np := networkingv1.NetworkPolicy{
207-
ObjectMeta: metav1.ObjectMeta{
208-
Name: "default",
209-
Namespace: "default",
210-
Labels: managedByLabelMap,
211-
},
212-
}
213-
err := notMasterUser.Create(ctx, &np)
214-
if k8sErrors.IsConflict(err) {
215-
return err
216-
}
217-
expectDeniedByVAP(err)
218-
return nil
219-
}, eventuallyDuration, workloadEventuallyDuration).Should(Succeed())
220-
})
221-
It("should deny creating managed CRP", func() {
222-
Eventually(func() error {
223-
crp := placementv1beta1.ClusterResourcePlacement{
224-
ObjectMeta: metav1.ObjectMeta{
225-
Name: "managedcrp",
226-
Labels: managedByLabelMap,
227-
},
228-
Spec: placementv1beta1.PlacementSpec{
229-
ResourceSelectors: []placementv1beta1.ClusterResourceSelector{
230-
{
231-
Group: "",
232-
Version: "v1",
233-
Kind: "Namespace",
234-
},
235-
},
236-
},
237-
}
238-
err := notMasterUser.Create(ctx, &crp)
239-
if k8sErrors.IsConflict(err) {
240-
return err
241-
}
242-
expectDeniedByVAP(err)
243-
return nil
244-
}, eventuallyDuration, workloadEventuallyDuration).Should(Succeed())
245-
})
246-
})
247281
})

0 commit comments

Comments
 (0)