@@ -155,16 +155,32 @@ spec:
155155 Skip ("ADC validation requires apisix-standalone backend" )
156156 }
157157
158- serverSecret := "update-server-tls"
158+ validSecret := "update-valid-tls"
159+ invalidSecret := "update-invalid-tls"
159160 tlsName := "webhook-apisixtls-update"
160161 host := "update-webhook.example.com"
161162
162163 By ("creating a valid TLS secret" )
163164 serverCert , serverKey := s .GenerateCert (GinkgoT (), []string {host })
164- err := s .NewKubeTlsSecret (serverSecret , serverCert .String (), serverKey .String ())
165- Expect (err ).NotTo (HaveOccurred (), "creating initial valid server TLS secret" )
165+ err := s .NewKubeTlsSecret (validSecret , serverCert .String (), serverKey .String ())
166+ Expect (err ).NotTo (HaveOccurred (), "creating valid server TLS secret" )
166167
167- tlsYAML := fmt .Sprintf (`
168+ By ("creating an invalid TLS secret with bad certificate material" )
169+ invalidSecretYAML := fmt .Sprintf (`
170+ apiVersion: v1
171+ kind: Secret
172+ metadata:
173+ name: %s
174+ namespace: %s
175+ type: kubernetes.io/tls
176+ stringData:
177+ tls.crt: not-a-cert
178+ tls.key: not-a-key
179+ ` , invalidSecret , s .Namespace ())
180+ err = s .CreateResourceFromString (invalidSecretYAML )
181+ Expect (err ).NotTo (HaveOccurred (), "creating invalid server TLS secret" )
182+
183+ validTLSYAML := fmt .Sprintf (`
168184apiVersion: apisix.apache.org/v2
169185kind: ApisixTls
170186metadata:
@@ -177,48 +193,33 @@ spec:
177193 secret:
178194 name: %s
179195 namespace: %s
180- ` , tlsName , s .Namespace (), s .Namespace (), host , serverSecret , s .Namespace ())
196+ ` , tlsName , s .Namespace (), s .Namespace (), host , validSecret , s .Namespace ())
181197
182198 By ("creating valid ApisixTls" )
183- err = s .CreateResourceFromString (tlsYAML )
199+ err = s .CreateResourceFromString (validTLSYAML )
184200 Expect (err ).NotTo (HaveOccurred (), "creating initial valid ApisixTls" )
185201
186- By ("replacing secret with invalid certificate data" )
187- err = s .DeleteResource ("Secret" , serverSecret )
188- Expect (err ).NotTo (HaveOccurred (), "deleting valid server TLS secret" )
189- invalidSecretYAML := fmt .Sprintf (`
190- apiVersion: v1
191- kind: Secret
202+ invalidTLSYAML := fmt .Sprintf (`
203+ apiVersion: apisix.apache.org/v2
204+ kind: ApisixTls
192205metadata:
193206 name: %s
194207 namespace: %s
195- type: kubernetes.io/tls
196- stringData:
197- tls.crt: not-a-cert
198- tls.key: not-a-key
199- ` , serverSecret , s .Namespace ())
200- err = s .CreateResourceFromString (invalidSecretYAML )
201- Expect (err ).NotTo (HaveOccurred (), "creating invalid server TLS secret" )
202-
203- // Wait for the webhook cache to reflect the replaced Secret.
204- time .Sleep (2 * time .Second )
205-
206- By ("updating ApisixTls with secret now containing invalid certificate data" )
207- err = s .CreateResourceFromString (tlsYAML )
208- expectAdmissionDenied (s , "apisixtls" , tlsName , err )
209-
210- By ("replacing secret back with valid certificate data" )
211- err = s .DeleteResource ("Secret" , serverSecret )
212- Expect (err ).NotTo (HaveOccurred (), "deleting invalid server TLS secret" )
213- serverCert , serverKey = s .GenerateCert (GinkgoT (), []string {host })
214- err = s .NewKubeTlsSecret (serverSecret , serverCert .String (), serverKey .String ())
215- Expect (err ).NotTo (HaveOccurred (), "recreating valid server TLS secret" )
208+ spec:
209+ ingressClassName: %s
210+ hosts:
211+ - %s
212+ secret:
213+ name: %s
214+ namespace: %s
215+ ` , tlsName , s .Namespace (), s .Namespace (), host , invalidSecret , s .Namespace ())
216216
217- // Wait for the webhook cache to reflect the restored Secret.
218- time .Sleep (2 * time .Second )
217+ By ("updating ApisixTls to reference the invalid certificate secret" )
218+ err = s .CreateResourceFromString (invalidTLSYAML )
219+ expectUpdateDenied (err )
219220
220- By ("updating ApisixTls with valid certificate data " )
221- err = s .CreateResourceFromString (tlsYAML )
221+ By ("updating ApisixTls back to the valid certificate secret " )
222+ err = s .CreateResourceFromString (validTLSYAML )
222223 Expect (err ).NotTo (HaveOccurred (), "updating ApisixTls with valid certificate" )
223224 })
224225})
0 commit comments