@@ -1860,6 +1860,7 @@ func Test_defaultModelBuilder_buildTargetGroupHealthCheckPort(t *testing.T) {
18601860 testName string
18611861 svc * corev1.Service
18621862 defaultPort string
1863+ targetType elbv2.TargetType
18631864 want intstr.IntOrString
18641865 wantErr error
18651866 }{
@@ -1868,6 +1869,7 @@ func Test_defaultModelBuilder_buildTargetGroupHealthCheckPort(t *testing.T) {
18681869 svc : & corev1.Service {},
18691870 defaultPort : "traffic-port" ,
18701871 want : intstr .FromString ("traffic-port" ),
1872+ targetType : elbv2 .TargetTypeInstance ,
18711873 },
18721874 {
18731875 testName : "with annotation" ,
@@ -1880,6 +1882,7 @@ func Test_defaultModelBuilder_buildTargetGroupHealthCheckPort(t *testing.T) {
18801882 },
18811883 defaultPort : "traffic-port" ,
18821884 want : intstr .FromInt (34576 ),
1885+ targetType : elbv2 .TargetTypeInstance ,
18831886 },
18841887 {
18851888 testName : "unsupported annotation value" ,
@@ -1891,19 +1894,115 @@ func Test_defaultModelBuilder_buildTargetGroupHealthCheckPort(t *testing.T) {
18911894 },
18921895 },
18931896 defaultPort : "traffic-port" ,
1894- wantErr : errors .New ("health check port \" a34576\" not supported" ),
1897+ wantErr : errors .New ("failed to resolve healthCheckPort: unable to find port a34576 on service /" ),
1898+ targetType : elbv2 .TargetTypeInstance ,
18951899 },
18961900 {
18971901 testName : "default health check nodeport" ,
18981902 svc : & corev1.Service {},
18991903 defaultPort : "31227" ,
19001904 want : intstr .FromInt (31227 ),
1905+ targetType : elbv2 .TargetTypeInstance ,
19011906 },
19021907 {
19031908 testName : "invalid default" ,
19041909 svc : & corev1.Service {},
19051910 defaultPort : "abs" ,
1906- wantErr : errors .New ("health check port \" abs\" not supported" ),
1911+ wantErr : errors .New ("failed to resolve healthCheckPort: unable to find port abs on service /" ),
1912+ targetType : elbv2 .TargetTypeInstance ,
1913+ },
1914+ {
1915+ testName : "resolve port name instance" ,
1916+ svc : & corev1.Service {
1917+ ObjectMeta : metav1.ObjectMeta {
1918+ Annotations : map [string ]string {
1919+ "service.beta.kubernetes.io/aws-load-balancer-healthcheck-port" : "health" ,
1920+ },
1921+ },
1922+ Spec : corev1.ServiceSpec {
1923+ Ports : []corev1.ServicePort {
1924+ {
1925+ Name : "traffic" ,
1926+ Port : 80 ,
1927+ TargetPort : intstr .FromInt (80 ),
1928+ NodePort : 31227 ,
1929+ Protocol : corev1 .ProtocolTCP ,
1930+ },
1931+ {
1932+ Name : "health" ,
1933+ Port : 1234 ,
1934+ TargetPort : intstr .FromInt (1234 ),
1935+ NodePort : 30987 ,
1936+ Protocol : corev1 .ProtocolTCP ,
1937+ },
1938+ },
1939+ },
1940+ },
1941+ defaultPort : "8080" ,
1942+ want : intstr .FromInt (30987 ),
1943+ targetType : elbv2 .TargetTypeInstance ,
1944+ },
1945+ {
1946+ testName : "invalid port name" ,
1947+ svc : & corev1.Service {
1948+ ObjectMeta : metav1.ObjectMeta {
1949+ Annotations : map [string ]string {
1950+ "service.beta.kubernetes.io/aws-load-balancer-healthcheck-port" : "absent" ,
1951+ },
1952+ },
1953+ Spec : corev1.ServiceSpec {
1954+ Ports : []corev1.ServicePort {
1955+ {
1956+ Name : "traffic" ,
1957+ Port : 80 ,
1958+ TargetPort : intstr .FromInt (80 ),
1959+ NodePort : 31227 ,
1960+ Protocol : corev1 .ProtocolTCP ,
1961+ },
1962+ {
1963+ Name : "health" ,
1964+ Port : 1234 ,
1965+ TargetPort : intstr .FromInt (1234 ),
1966+ NodePort : 30987 ,
1967+ Protocol : corev1 .ProtocolTCP ,
1968+ },
1969+ },
1970+ },
1971+ },
1972+ defaultPort : "8080" ,
1973+ wantErr : errors .New ("failed to resolve healthCheckPort: unable to find port absent on service /" ),
1974+ targetType : elbv2 .TargetTypeInstance ,
1975+ },
1976+ {
1977+ testName : "resolve port name IP" ,
1978+ svc : & corev1.Service {
1979+ ObjectMeta : metav1.ObjectMeta {
1980+ Annotations : map [string ]string {
1981+ "service.beta.kubernetes.io/aws-load-balancer-healthcheck-port" : "health" ,
1982+ },
1983+ },
1984+ Spec : corev1.ServiceSpec {
1985+ Ports : []corev1.ServicePort {
1986+ {
1987+ Name : "traffic" ,
1988+ Port : 80 ,
1989+ TargetPort : intstr .FromInt (80 ),
1990+ NodePort : 31227 ,
1991+ Protocol : corev1 .ProtocolTCP ,
1992+ },
1993+ {
1994+ Name : "health" ,
1995+ Port : 1234 ,
1996+ TargetPort : intstr .FromInt (1234 ),
1997+ NodePort : 30987 ,
1998+ Protocol : corev1 .ProtocolTCP ,
1999+ },
2000+ },
2001+ },
2002+ },
2003+ defaultPort : "8080" ,
2004+ want : intstr .FromInt (1234 ),
2005+ targetType : elbv2 .TargetTypeIP ,
19072006 },
19082007 }
19092008 for _ , tt := range tests {
@@ -1914,7 +2013,7 @@ func Test_defaultModelBuilder_buildTargetGroupHealthCheckPort(t *testing.T) {
19142013 service : tt .svc ,
19152014 defaultHealthCheckPort : tt .defaultPort ,
19162015 }
1917- got , err := builder .buildTargetGroupHealthCheckPort (context .Background (), tt .defaultPort )
2016+ got , err := builder .buildTargetGroupHealthCheckPort (context .Background (), tt .defaultPort , tt . targetType )
19182017 if tt .wantErr != nil {
19192018 assert .EqualError (t , err , tt .wantErr .Error ())
19202019 } else {
0 commit comments