@@ -18,6 +18,7 @@ import (
1818 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1919 "k8s.io/apimachinery/pkg/runtime"
2020
21+ "github.com/kong/kubernetes-testing-framework/internal/conversion"
2122 "github.com/kong/kubernetes-testing-framework/pkg/utils/kubernetes/generators"
2223)
2324
@@ -74,14 +75,27 @@ func DeleteIngress(ctx context.Context, c Cluster, namespace string, ingress run
7475// given an Ingress object provided by the caller determine the version and pull a fresh copy
7576// of the current LoadBalancerStatus for that Ingress object without the caller needing to be
7677// aware of which version of Ingress they're using.
77- func GetIngressLoadbalancerStatus (ctx context.Context , c Cluster , namespace string , ingress runtime.Object ) (* netv1.IngressLoadBalancerStatus , error ) {
78+ // TODO: once we stop supporting old Kubernetes versions <1.19 we can remove this.
79+ func GetIngressLoadbalancerStatus (ctx context.Context , c Cluster , namespace string , ingress runtime.Object ) (* corev1.LoadBalancerStatus , error ) {
7880 switch obj := ingress .(type ) {
7981 case * netv1.Ingress :
8082 refresh , err := c .Client ().NetworkingV1 ().Ingresses (namespace ).Get (ctx , obj .Name , metav1.GetOptions {})
8183 if err != nil {
8284 return nil , err
8385 }
84- return & refresh .Status .LoadBalancer , nil
86+ return conversion .NetV1ToCoreV1LoadBalancerStatus (refresh .Status .LoadBalancer ), nil
87+ case * netv1beta1.Ingress :
88+ refresh , err := c .Client ().NetworkingV1beta1 ().Ingresses (namespace ).Get (ctx , obj .Name , metav1.GetOptions {})
89+ if err != nil {
90+ return nil , err
91+ }
92+ return conversion .NetV1beta1ToCoreV1LoadBalancerStatus (refresh .Status .LoadBalancer ), nil
93+ case * extv1beta1.Ingress :
94+ refresh , err := c .Client ().ExtensionsV1beta1 ().Ingresses (namespace ).Get (ctx , obj .Name , metav1.GetOptions {})
95+ if err != nil {
96+ return nil , err
97+ }
98+ return conversion .ExtV1beta1ToCoreV1LoadBalancerStatus (refresh .Status .LoadBalancer ), nil
8599 default :
86100 return nil , fmt .Errorf ("%T is not a supported ingress type" , ingress )
87101 }
0 commit comments