3636import org .mockito .Mock ;
3737import org .mockito .junit .MockitoJUnitRunner ;
3838
39+ import org .springframework .cloud .client .ServiceInstance ;
3940import org .springframework .cloud .kubernetes .commons .discovery .DefaultKubernetesServiceInstance ;
4041import org .springframework .cloud .kubernetes .commons .discovery .KubernetesDiscoveryProperties ;
4142
@@ -51,6 +52,15 @@ public class KubernetesInformerDiscoveryClientTests {
5152 .metadata (new V1ObjectMeta ().name ("test-svc-1" ).namespace ("namespace1" ))
5253 .spec (new V1ServiceSpec ().loadBalancerIP ("1.1.1.1" )).status (new V1ServiceStatus ());
5354
55+ private static final V1Service testServiceSecuredAnnotation1 = new V1Service ()
56+ .metadata (
57+ new V1ObjectMeta ().name ("test-svc-1" ).namespace ("namespace1" ).putAnnotationsItem ("secured" , "true" ))
58+ .spec (new V1ServiceSpec ().loadBalancerIP ("1.1.1.1" )).status (new V1ServiceStatus ());
59+
60+ private static final V1Service testServiceSecuredLabel1 = new V1Service ()
61+ .metadata (new V1ObjectMeta ().name ("test-svc-1" ).namespace ("namespace1" ).putLabelsItem ("secured" , "true" ))
62+ .spec (new V1ServiceSpec ().loadBalancerIP ("1.1.1.1" )).status (new V1ServiceStatus ());
63+
5464 private static final V1Service testService2 = new V1Service ()
5565 .metadata (new V1ObjectMeta ().name ("test-svc-1" ).namespace ("namespace2" ))
5666 .spec (new V1ServiceSpec ().loadBalancerIP ("1.1.1.1" )).status (new V1ServiceStatus ());
@@ -177,6 +187,37 @@ public void testDiscoveryInstancesWithServiceLabels() {
177187 false , "namespace1" , null ));
178188 }
179189
190+ @ Test
191+ public void testDiscoveryInstancesWithSecuredServiceByAnnotations () {
192+ Lister <V1Service > serviceLister = setupServiceLister (testServiceSecuredAnnotation1 );
193+ Lister <V1Endpoints > endpointsLister = setupEndpointsLister (testEndpoints1 );
194+ KubernetesDiscoveryProperties kubernetesDiscoveryProperties = new KubernetesDiscoveryProperties (true , true ,
195+ Set .of (), true , 60 , false , null , Set .of (), new HashMap <>(), null , null , 0 );
196+ KubernetesInformerDiscoveryClient discoveryClient = new KubernetesInformerDiscoveryClient ("namespace1" ,
197+ sharedInformerFactory , serviceLister , endpointsLister , null , null , kubernetesDiscoveryProperties );
198+ assertThat (discoveryClient .getServices ().toArray ())
199+ .containsOnly (testServiceSecuredAnnotation1 .getMetadata ().getName ());
200+ ServiceInstance serviceInstance = discoveryClient
201+ .getInstances (testServiceSecuredAnnotation1 .getMetadata ().getName ()).get (0 );
202+ assertThat (serviceInstance .isSecure ()).isTrue ();
203+ }
204+
205+ @ Test
206+ public void testDiscoveryInstancesWithSecuredServiceByLabels () {
207+ Lister <V1Service > serviceLister = setupServiceLister (testServiceSecuredLabel1 );
208+ Lister <V1Endpoints > endpointsLister = setupEndpointsLister (testEndpoints1 );
209+ KubernetesDiscoveryProperties kubernetesDiscoveryProperties = new KubernetesDiscoveryProperties (true , true ,
210+ Set .of (), true , 60 , false , null , Set .of (), new HashMap <>(), null , null , 0 );
211+ KubernetesInformerDiscoveryClient discoveryClient = new KubernetesInformerDiscoveryClient ("namespace1" ,
212+ sharedInformerFactory , serviceLister , endpointsLister , null , null , kubernetesDiscoveryProperties );
213+
214+ assertThat (discoveryClient .getServices ().toArray ())
215+ .containsOnly (testServiceSecuredLabel1 .getMetadata ().getName ());
216+ ServiceInstance serviceInstance = discoveryClient .getInstances (testServiceSecuredLabel1 .getMetadata ().getName ())
217+ .get (0 );
218+ assertThat (serviceInstance .isSecure ()).isTrue ();
219+ }
220+
180221 @ Test
181222 public void testDiscoveryGetServicesOneNamespaceShouldWork () {
182223 Lister <V1Service > serviceLister = setupServiceLister (testService1 , testService2 );
0 commit comments