@@ -206,6 +206,49 @@ func requireRemoveCertManagerCRDs(kubectlOptions k8s.KubectlOptions) {
206206 }
207207 })
208208}
209+ func requireUninstallingContour (kubectlOptions k8s.KubectlOptions ) {
210+ When ("Uninstalling zookeeper-operator" , func () {
211+ requireUninstallingContourHelmChart (kubectlOptions )
212+ requireRemoveContourCRDs (kubectlOptions )
213+ requireRemoveNamespace (kubectlOptions , contourIngressControllerHelmDescriptor .Namespace )
214+ })
215+ }
216+
217+ // requireUninstallingCertManagerHelmChart uninstalls cert-manager helm chart
218+ // and checks the success of that operation.
219+ func requireUninstallingContourHelmChart (kubectlOptions k8s.KubectlOptions ) {
220+ It ("Uninstalling Project Contour Helm chart" , func () {
221+ err := contourIngressControllerHelmDescriptor .uninstallHelmChart (kubectlOptions , true )
222+ Expect (err ).NotTo (HaveOccurred ())
223+
224+ By ("Verifying Project Contour helm chart resources cleanup" )
225+
226+ k8sResourceKinds , err := listK8sResourceKinds (kubectlOptions , "" )
227+ Expect (err ).ShouldNot (HaveOccurred ())
228+
229+ contourAvailableResourceKinds := stringSlicesInstersect (dependencyCRDs .Contour (), k8sResourceKinds )
230+ contourAvailableResourceKinds = append (contourAvailableResourceKinds , basicK8sResourceKinds ()... )
231+
232+ remainedResources , err := getK8sResources (kubectlOptions ,
233+ contourAvailableResourceKinds ,
234+ fmt .Sprintf (managedByHelmLabelTemplate , contourIngressControllerHelmDescriptor .ReleaseName ),
235+ "" ,
236+ kubectlArgGoTemplateKindNameNamespace ,
237+ "--all-namespaces" )
238+ Expect (err ).ShouldNot (HaveOccurred ())
239+
240+ Expect (remainedResources ).Should (BeEmpty ())
241+ })
242+ }
243+
244+ func requireRemoveContourCRDs (kubectlOptions k8s.KubectlOptions ) {
245+ It ("Removing Contour Ingress Controller CRDs" , func () {
246+ for _ , crd := range dependencyCRDs .Contour () {
247+ err := deleteK8sResourceNoErrNotFound (kubectlOptions , defaultDeletionTimeout , crdKind , crd )
248+ Expect (err ).ShouldNot (HaveOccurred ())
249+ }
250+ })
251+ }
209252
210253// requireRemoveNamespace deletes the indicated namespace object
211254func requireRemoveNamespace (kubectlOptions k8s.KubectlOptions , namespace string ) {
0 commit comments