3535import org .mockito .Mock ;
3636import org .mockito .junit .MockitoJUnitRunner ;
3737
38+ import org .springframework .cloud .client .ServiceInstance ;
3839import org .springframework .cloud .kubernetes .commons .discovery .KubernetesDiscoveryProperties ;
3940import org .springframework .cloud .kubernetes .commons .discovery .KubernetesServiceInstance ;
4041
@@ -56,6 +57,15 @@ public class KubernetesInformerDiscoveryClientTests {
5657 .metadata (new V1ObjectMeta ().name ("test-svc-1" ).namespace ("namespace1" ))
5758 .spec (new V1ServiceSpec ().loadBalancerIP ("1.1.1.1" )).status (new V1ServiceStatus ());
5859
60+ private static final V1Service testServiceSecuredAnnotation1 = new V1Service ()
61+ .metadata (
62+ new V1ObjectMeta ().name ("test-svc-1" ).namespace ("namespace1" ).putAnnotationsItem ("secured" , "true" ))
63+ .spec (new V1ServiceSpec ().loadBalancerIP ("1.1.1.1" )).status (new V1ServiceStatus ());
64+
65+ private static final V1Service testServiceSecuredLabel1 = new V1Service ()
66+ .metadata (new V1ObjectMeta ().name ("test-svc-1" ).namespace ("namespace1" ).putLabelsItem ("secured" , "true" ))
67+ .spec (new V1ServiceSpec ().loadBalancerIP ("1.1.1.1" )).status (new V1ServiceStatus ());
68+
5969 private static final V1Service testService2 = new V1Service ()
6070 .metadata (new V1ObjectMeta ().name ("test-svc-1" ).namespace ("namespace2" ))
6171 .spec (new V1ServiceSpec ().loadBalancerIP ("1.1.1.1" )).status (new V1ServiceStatus ());
@@ -177,6 +187,35 @@ public void testDiscoveryInstancesWithServiceLabels() {
177187 "test-svc-3" , "2.2.2.2" , 8080 , new HashMap <>(), false , "namespace1" , null ));
178188 }
179189
190+ @ Test
191+ public void testDiscoveryInstancesWithSecuredServiceByAnnotations () {
192+ Lister <V1Service > serviceLister = setupServiceLister (testServiceSecuredAnnotation1 );
193+ Lister <V1Endpoints > endpointsLister = setupEndpointsLister (testEndpoints1 );
194+ when (kubernetesDiscoveryProperties .getMetadata ()).thenReturn (new KubernetesDiscoveryProperties .Metadata ());
195+ KubernetesInformerDiscoveryClient discoveryClient = new KubernetesInformerDiscoveryClient ("namespace1" ,
196+ sharedInformerFactory , serviceLister , endpointsLister , null , null , kubernetesDiscoveryProperties );
197+ assertThat (discoveryClient .getServices ().toArray ())
198+ .containsOnly (testServiceSecuredAnnotation1 .getMetadata ().getName ());
199+ ServiceInstance serviceInstance = discoveryClient
200+ .getInstances (testServiceSecuredAnnotation1 .getMetadata ().getName ()).get (0 );
201+ assertThat (serviceInstance .isSecure ()).isTrue ();
202+ }
203+
204+ @ Test
205+ public void testDiscoveryInstancesWithSecuredServiceByLabels () {
206+ Lister <V1Service > serviceLister = setupServiceLister (testServiceSecuredLabel1 );
207+ Lister <V1Endpoints > endpointsLister = setupEndpointsLister (testEndpoints1 );
208+ when (kubernetesDiscoveryProperties .getMetadata ()).thenReturn (new KubernetesDiscoveryProperties .Metadata ());
209+ KubernetesInformerDiscoveryClient discoveryClient = new KubernetesInformerDiscoveryClient ("namespace1" ,
210+ sharedInformerFactory , serviceLister , endpointsLister , null , null , kubernetesDiscoveryProperties );
211+
212+ assertThat (discoveryClient .getServices ().toArray ())
213+ .containsOnly (testServiceSecuredLabel1 .getMetadata ().getName ());
214+ ServiceInstance serviceInstance = discoveryClient .getInstances (testServiceSecuredLabel1 .getMetadata ().getName ())
215+ .get (0 );
216+ assertThat (serviceInstance .isSecure ()).isTrue ();
217+ }
218+
180219 @ Test
181220 public void testDiscoveryGetServicesOneNamespaceShouldWork () {
182221 Lister <V1Service > serviceLister = setupServiceLister (testService1 , testService2 );
0 commit comments