@@ -26,25 +26,35 @@ import (
26
26
)
27
27
28
28
var _ = Describe ("CloudStackCluster webhooks" , func () {
29
+ const (
30
+ apiVersion = "infrastructure.cluster.x-k8s.io/v1beta1"
31
+ clusterKind = "CloudStackCluster"
32
+ clusterName = "test-cluster"
33
+ clusterNamespace = "default"
34
+ identitySecretName = "IdentitySecret"
35
+ zone = "Zone"
36
+ network = "Network"
37
+ )
38
+
29
39
Context ("When creating a CloudStackCluster with all validated attributes" , func () {
30
40
It ("Should succeed" , func () {
31
41
ctx := context .Background ()
32
42
cloudStackCluster := & CloudStackCluster {
33
43
TypeMeta : metav1.TypeMeta {
34
- APIVersion : "infrastructure.cluster.x-k8s.io/v1beta1" ,
35
- Kind : "CloudStackCluster" ,
44
+ APIVersion : apiVersion ,
45
+ Kind : clusterKind ,
36
46
},
37
47
ObjectMeta : metav1.ObjectMeta {
38
- Name : "test-cluster" ,
39
- Namespace : "default" ,
48
+ Name : clusterName ,
49
+ Namespace : clusterNamespace ,
40
50
},
41
51
Spec : CloudStackClusterSpec {
42
52
IdentityRef : & CloudStackIdentityReference {
43
53
Kind : defaultIdentityRefKind ,
44
- Name : "IdentitySecret" ,
54
+ Name : identitySecretName ,
45
55
},
46
- Zone : "Zone" ,
47
- Network : "Network" ,
56
+ Zone : zone ,
57
+ Network : network ,
48
58
},
49
59
}
50
60
Expect (k8sClient .Create (ctx , cloudStackCluster )).Should (Succeed ())
@@ -56,19 +66,19 @@ var _ = Describe("CloudStackCluster webhooks", func() {
56
66
ctx := context .Background ()
57
67
cloudStackCluster := & CloudStackCluster {
58
68
TypeMeta : metav1.TypeMeta {
59
- APIVersion : "infrastructure.cluster.x-k8s.io/v1beta1" ,
60
- Kind : "CloudStackCluster" ,
69
+ APIVersion : apiVersion ,
70
+ Kind : clusterKind ,
61
71
},
62
72
ObjectMeta : metav1.ObjectMeta {
63
- Name : "test-cluster" ,
64
- Namespace : "default" ,
73
+ Name : clusterName ,
74
+ Namespace : clusterNamespace ,
65
75
},
66
76
Spec : CloudStackClusterSpec {
67
77
IdentityRef : & CloudStackIdentityReference {
68
78
Kind : defaultIdentityRefKind ,
69
- Name : "IdentitySecret" ,
79
+ Name : identitySecretName ,
70
80
},
71
- Zone : "Zone" ,
81
+ Zone : zone ,
72
82
},
73
83
}
74
84
Expect (k8sClient .Create (ctx , cloudStackCluster ).Error ()).Should (MatchRegexp ("admission webhook.*denied the request.*Required value\\ : Network" ))
@@ -80,44 +90,49 @@ var _ = Describe("CloudStackCluster webhooks", func() {
80
90
ctx := context .Background ()
81
91
cloudStackCluster := & CloudStackCluster {
82
92
TypeMeta : metav1.TypeMeta {
83
- APIVersion : "infrastructure.cluster.x-k8s.io/v1beta1" ,
84
- Kind : "CloudStackCluster" ,
93
+ APIVersion : apiVersion ,
94
+ Kind : clusterKind ,
85
95
},
86
96
ObjectMeta : metav1.ObjectMeta {
87
- Name : "test-cluster" ,
88
- Namespace : "default" ,
97
+ Name : clusterName ,
98
+ Namespace : clusterNamespace ,
89
99
},
90
100
Spec : CloudStackClusterSpec {
91
101
IdentityRef : & CloudStackIdentityReference {
92
102
Kind : defaultIdentityRefKind ,
93
- Name : "IdentitySecret" ,
103
+ Name : identitySecretName ,
94
104
},
95
- Network : "Network" ,
105
+ Network : network ,
96
106
},
97
107
}
98
108
Expect (k8sClient .Create (ctx , cloudStackCluster ).Error ()).Should (MatchRegexp ("admission webhook.*denied the request.*Required value\\ : Zone" ))
99
109
})
100
110
})
101
111
102
112
Context ("When creating a CloudStackCluster with the wrong kind of IdentityReference" , func () {
113
+ const (
114
+ configMapKind = "ConfigMap"
115
+ configMapName = "IdentityConfigMap"
116
+ )
117
+
103
118
It ("Should be rejected by the validating webhooks" , func () {
104
119
ctx := context .Background ()
105
120
cloudStackCluster := & CloudStackCluster {
106
121
TypeMeta : metav1.TypeMeta {
107
- APIVersion : "infrastructure.cluster.x-k8s.io/v1beta1" ,
108
- Kind : "CloudStackCluster" ,
122
+ APIVersion : apiVersion ,
123
+ Kind : clusterKind ,
109
124
},
110
125
ObjectMeta : metav1.ObjectMeta {
111
- Name : "test-cluster" ,
112
- Namespace : "default" ,
126
+ Name : clusterName ,
127
+ Namespace : clusterNamespace ,
113
128
},
114
129
Spec : CloudStackClusterSpec {
115
130
IdentityRef : & CloudStackIdentityReference {
116
- Kind : "ConfigMap" ,
117
- Name : "IdentityConfigMap" ,
131
+ Kind : configMapKind ,
132
+ Name : configMapName ,
118
133
},
119
- Zone : "Zone" ,
120
- Network : "Network" ,
134
+ Zone : zone ,
135
+ Network : network ,
121
136
},
122
137
}
123
138
Expect (k8sClient .Create (ctx , cloudStackCluster ).Error ()).Should (MatchRegexp ("admission webhook.*denied the request.*Forbidden\\ : must be a Secret" ))
@@ -139,15 +154,15 @@ var _ = Describe("CloudStackCluster webhooks", func() {
139
154
},
140
155
ObjectMeta : metav1.ObjectMeta {
141
156
Name : "test-cluster2" ,
142
- Namespace : "default" ,
157
+ Namespace : clusterNamespace ,
143
158
},
144
159
Spec : CloudStackClusterSpec {
145
160
IdentityRef : & CloudStackIdentityReference {
146
161
Kind : defaultIdentityRefKind ,
147
- Name : "IdentitySecret" ,
162
+ Name : identitySecretName ,
148
163
},
149
- Zone : "Zone" ,
150
- Network : "Network" ,
164
+ Zone : zone ,
165
+ Network : network ,
151
166
// Need CP Endpoint not to be nil before test or webhook will allow modification.
152
167
ControlPlaneEndpoint : clusterv1.APIEndpoint {Host : "fakeIP" , Port : int32 (1234 )},
153
168
},
@@ -177,7 +192,7 @@ var _ = Describe("CloudStackCluster webhooks", func() {
177
192
Expect (k8sClient .Update (ctx , cloudStackClusterUpdate ).Error ()).Should (MatchRegexp (forbiddenRegex , "identityRef\\ .Kind" ))
178
193
179
194
cloudStackCluster .DeepCopyInto (cloudStackClusterUpdate )
180
- cloudStackClusterUpdate .Spec .IdentityRef .Name = "IdentityConfigMap"
195
+ cloudStackClusterUpdate .Spec .IdentityRef .Name = configMapName
181
196
Expect (k8sClient .Update (ctx , cloudStackClusterUpdate ).Error ()).Should (MatchRegexp (forbiddenRegex , "identityRef\\ .Name" ))
182
197
})
183
198
0 commit comments