@@ -21,13 +21,14 @@ import (
21
21
22
22
. "github.com/onsi/ginkgo/v2"
23
23
. "github.com/onsi/gomega"
24
+ infrav1 "sigs.k8s.io/cluster-api-provider-cloudstack/api/v1beta2"
24
25
dummies "sigs.k8s.io/cluster-api-provider-cloudstack/test/dummies/v1beta2"
25
26
)
26
27
27
28
var _ = Describe ("CloudStackCluster webhooks" , func () {
28
29
var ctx context.Context
29
30
forbiddenRegex := "admission webhook.*denied the request.*Forbidden\\ : %s"
30
- // requiredRegex := "admission webhook.*denied the request.*Required value\\: %s"
31
+ requiredRegex := "admission webhook.*denied the request.*Required value\\ : %s"
31
32
32
33
BeforeEach (func () { // Reset test vars to initial state.
33
34
ctx = context .Background ()
@@ -41,18 +42,18 @@ var _ = Describe("CloudStackCluster webhooks", func() {
41
42
Ω (k8sClient .Create (ctx , dummies .CSCluster )).Should (Succeed ())
42
43
})
43
44
44
- // TODO update for failure domains.
45
- // It("Should reject a CloudStackCluster with missing Zones.Network attribute", func() {
46
- // dummies.CSCluster.Spec.Zones = []infrav1.Zone{{}}
47
- // dummies.CSCluster.Spec.Zones[0].Name = "ZoneWNoNetwork"
48
- // Ω(k8sClient.Create(ctx, dummies.CSCluster)).Should(
49
- // MatchError(MatchRegexp(requiredRegex, "each Zone requires a Network specification")))
50
- // })
45
+ It ("Should reject a CloudStackCluster with missing Zones.Network attribute" , func () {
46
+ dummies .CSCluster .Spec .FailureDomains = []infrav1.CloudStackFailureDomainSpec {{}}
47
+ dummies .CSCluster .Spec .FailureDomains [0 ].Zone .Name = "ZoneWNoNetwork"
48
+ Ω (k8sClient .Create (ctx , dummies .CSCluster )).Should (
49
+ MatchError (MatchRegexp (requiredRegex , "each Zone requires a Network specification" )))
50
+ })
51
51
52
- // It("Should reject a CloudStackCluster with missing Zones attribute", func() {
53
- // dummies.CSCluster.Spec.Zones = []infrav1.Zone{}
54
- // Ω(k8sClient.Create(ctx, dummies.CSCluster)).Should(MatchError(MatchRegexp(requiredRegex, "Zones")))
55
- // })
52
+ It ("Should reject a CloudStackCluster with missing Zone attribute" , func () {
53
+ dummies .CSCluster .Spec .FailureDomains [0 ].Zone = infrav1.Zone {}
54
+ Ω (k8sClient .Create (ctx , dummies .CSCluster )).Should (MatchError (MatchRegexp (requiredRegex ,
55
+ "each Zone requires a Network specification" )))
56
+ })
56
57
57
58
It ("Should reject a CloudStackCluster with IdentityRef not of kind 'Secret'" , func () {
58
59
dummies .CSCluster .Spec .IdentityRef .Kind = "NewType"
@@ -66,15 +67,14 @@ var _ = Describe("CloudStackCluster webhooks", func() {
66
67
Ω (k8sClient .Create (ctx , dummies .CSCluster )).Should (Succeed ())
67
68
})
68
69
69
- // TODO update for failure domains.
70
- // It("Should reject updates to CloudStackCluster Zones", func() {
71
- // dummies.CSCluster.Spec.Zones = []infrav1.Zone{dummies.Zone1}
72
- // Ω(k8sClient.Update(ctx, dummies.CSCluster)).Should(MatchError(MatchRegexp(forbiddenRegex, "Zones and sub")))
73
- // })
74
- // It("Should reject updates to Networks specified in CloudStackCluster Zones", func() {
75
- // dummies.CSCluster.Spec.Zones[0].Network.Name = "ArbitraryUpdateNetworkName"
76
- // Ω(k8sClient.Update(ctx, dummies.CSCluster)).Should(MatchError(MatchRegexp(forbiddenRegex, "Zones and sub")))
77
- // })
70
+ It ("Should reject updates to CloudStackCluster FailureDomains" , func () {
71
+ dummies .CSCluster .Spec .FailureDomains [0 ].Zone .Name = "SomeRandomUpdate"
72
+ Ω (k8sClient .Update (ctx , dummies .CSCluster )).Should (MatchError (MatchRegexp (forbiddenRegex , "Zones and sub" )))
73
+ })
74
+ It ("Should reject updates to Networks specified in CloudStackCluster Zones" , func () {
75
+ dummies .CSCluster .Spec .FailureDomains [0 ].Zone .Network .Name = "ArbitraryUpdateNetworkName"
76
+ Ω (k8sClient .Update (ctx , dummies .CSCluster )).Should (MatchError (MatchRegexp (forbiddenRegex , "Zones and sub" )))
77
+ })
78
78
It ("Should reject updates to CloudStackCluster controlplaneendpoint.host" , func () {
79
79
dummies .CSCluster .Spec .ControlPlaneEndpoint .Host = "1.1.1.1"
80
80
Ω (k8sClient .Update (ctx , dummies .CSCluster )).
0 commit comments