Procházet zdrojové kódy

Merge pull request #2050 from porter-dev/belanger/fix-prom-ingress-query

Add additional case for `ingressClassName` in spec
abelanger5 před 4 roky
rodič
revize
51e77d301b
1 změnil soubory, kde provedl 20 přidání a 14 odebrání
  1. 20 14
      internal/kubernetes/prometheus/metrics.go

+ 20 - 14
internal/kubernetes/prometheus/metrics.go

@@ -65,26 +65,32 @@ func GetIngressesWithNGINXAnnotation(clientset kubernetes.Interface) ([]SimpleIn
 
 	if v1beta1Err == nil && len(v1beta1IngressList.Items) > 0 {
 		for _, ingress := range v1beta1IngressList.Items {
-			if ingressAnn, found := ingress.ObjectMeta.Annotations["kubernetes.io/ingress.class"]; found {
-				if ingressAnn == "nginx" {
-					res = append(res, SimpleIngress{
-						Name:      ingress.ObjectMeta.Name,
-						Namespace: ingress.ObjectMeta.Namespace,
-					})
-				}
+			if ingressAnn, found := ingress.ObjectMeta.Annotations["kubernetes.io/ingress.class"]; found && ingressAnn == "nginx" {
+				res = append(res, SimpleIngress{
+					Name:      ingress.ObjectMeta.Name,
+					Namespace: ingress.ObjectMeta.Namespace,
+				})
+			} else if *ingress.Spec.IngressClassName == "nginx" {
+				res = append(res, SimpleIngress{
+					Name:      ingress.ObjectMeta.Name,
+					Namespace: ingress.ObjectMeta.Namespace,
+				})
 			}
 		}
 	}
 
 	if v1Err == nil && len(v1IngressList.Items) > 0 {
 		for _, ingress := range v1IngressList.Items {
-			if ingressAnn, found := ingress.ObjectMeta.Annotations["kubernetes.io/ingress.class"]; found {
-				if ingressAnn == "nginx" {
-					res = append(res, SimpleIngress{
-						Name:      ingress.ObjectMeta.Name,
-						Namespace: ingress.ObjectMeta.Namespace,
-					})
-				}
+			if ingressAnn, found := ingress.ObjectMeta.Annotations["kubernetes.io/ingress.class"]; found && (ingressAnn == "nginx") {
+				res = append(res, SimpleIngress{
+					Name:      ingress.ObjectMeta.Name,
+					Namespace: ingress.ObjectMeta.Namespace,
+				})
+			} else if *ingress.Spec.IngressClassName == "nginx" {
+				res = append(res, SimpleIngress{
+					Name:      ingress.ObjectMeta.Name,
+					Namespace: ingress.ObjectMeta.Namespace,
+				})
 			}
 		}
 	}