@@ -36,7 +36,6 @@ use crate::{
3636 ResourceRequirementsExt , ResourceRequirementsType ,
3737 } ,
3838 } ,
39- crd:: listener,
4039 deep_merger:: { self , ObjectOverrides } ,
4140 kvp:: {
4241 Label , LabelError , Labels ,
@@ -221,7 +220,8 @@ impl ClusterResource for Service {}
221220impl ClusterResource for ServiceAccount { }
222221impl ClusterResource for RoleBinding { }
223222impl ClusterResource for PodDisruptionBudget { }
224- impl ClusterResource for listener:: v1alpha1:: Listener { }
223+ #[ cfg( feature = "crds" ) ]
224+ impl ClusterResource for crate :: crd:: listener:: v1alpha1:: Listener { }
225225
226226impl ClusterResource for Job {
227227 fn pod_spec ( & self ) -> Option < & PodSpec > {
@@ -670,6 +670,13 @@ impl<'a> ClusterResources<'a> {
670670 ///
671671 /// * `client` - The client which is used to access Kubernetes
672672 pub async fn delete_orphaned_resources ( self , client : & Client ) -> Result < ( ) > {
673+ // We can only delete Listeners in case the "crds" feature is enabled, otherwise it's a NOP.
674+ #[ cfg( feature = "crds" ) ]
675+ let delete_listeners = self
676+ . delete_orphaned_resources_of_kind :: < crate :: crd:: listener:: v1alpha1:: Listener > ( client) ;
677+ #[ cfg( not( feature = "crds" ) ) ]
678+ let delete_listeners = async { Ok ( ( ) ) } ;
679+
673680 tokio:: try_join!(
674681 self . delete_orphaned_resources_of_kind:: <Service >( client) ,
675682 self . delete_orphaned_resources_of_kind:: <StatefulSet >( client) ,
@@ -680,7 +687,7 @@ impl<'a> ClusterResources<'a> {
680687 self . delete_orphaned_resources_of_kind:: <ServiceAccount >( client) ,
681688 self . delete_orphaned_resources_of_kind:: <RoleBinding >( client) ,
682689 self . delete_orphaned_resources_of_kind:: <PodDisruptionBudget >( client) ,
683- self . delete_orphaned_resources_of_kind :: <listener :: v1alpha1 :: Listener > ( client ) ,
690+ delete_listeners
684691 ) ?;
685692
686693 Ok ( ( ) )
0 commit comments