@@ -58,8 +58,8 @@ func newEndpointInformer(client kubernetes.Interface, opts options, rs ...cache.
5858func newIngressInformer (client kubernetes.Interface , opts options , rs ... cache.ResourceEventHandler ) cache.SharedIndexInformer {
5959 i := newInformer (client .ExtensionsV1beta1 ().RESTClient (), "ingresses" , new (v1beta1.Ingress ), opts .resyncPeriod , rs ... )
6060 i .AddIndexers (cache.Indexers {
61- secretKind : ingressSecretIndexFunc (opts .secret ),
62- serviceKind : ingressServiceIndexFunc (),
61+ secretKind : ingressSecretIndexFunc (opts .ingressClass , opts . secret ),
62+ serviceKind : ingressServiceIndexFunc (opts . ingressClass ),
6363 })
6464 return i
6565}
@@ -83,27 +83,29 @@ func newInformer(c cache.Getter, resource string, objType runtime.Object, resync
8383 return sw
8484}
8585
86- func ingressSecretIndexFunc (secret * resource ) func (obj interface {}) ([]string , error ) {
86+ func ingressSecretIndexFunc (ingressClass string , secret * resource ) func (obj interface {}) ([]string , error ) {
8787 return func (obj interface {}) ([]string , error ) {
8888 if ing , ok := obj .(* v1beta1.Ingress ); ok {
89- hostsecret := make (map [string ]* resource )
90- for _ , tls := range ing .Spec .TLS {
91- for _ , host := range tls .Hosts {
92- if len (tls .SecretName ) > 0 {
93- hostsecret [host ] = & resource {
94- name : tls .SecretName ,
95- namespace : ing .Namespace ,
89+ var idx []string
90+ if objIngClass , ok := parseIngressClass (ing ); ok && ingressClass == objIngClass {
91+ hostsecret := make (map [string ]* resource )
92+ for _ , tls := range ing .Spec .TLS {
93+ for _ , host := range tls .Hosts {
94+ if len (tls .SecretName ) > 0 {
95+ hostsecret [host ] = & resource {
96+ name : tls .SecretName ,
97+ namespace : ing .Namespace ,
98+ }
9699 }
97100 }
98101 }
99- }
100- var idx []string
101- for _ , rule := range ing .Spec .Rules {
102- if rule .HTTP != nil && len (rule .Host ) > 0 {
103- if r , ok := hostsecret [rule .Host ]; ok {
104- idx = append (idx , itemKeyFunc (r .namespace , r .name ))
105- } else if secret != nil {
106- idx = append (idx , itemKeyFunc (secret .namespace , secret .name ))
102+ for _ , rule := range ing .Spec .Rules {
103+ if rule .HTTP != nil && len (rule .Host ) > 0 {
104+ if r , ok := hostsecret [rule .Host ]; ok {
105+ idx = append (idx , itemKeyFunc (r .namespace , r .name ))
106+ } else if secret != nil {
107+ idx = append (idx , itemKeyFunc (secret .namespace , secret .name ))
108+ }
107109 }
108110 }
109111 }
@@ -113,15 +115,17 @@ func ingressSecretIndexFunc(secret *resource) func(obj interface{}) ([]string, e
113115 }
114116}
115117
116- func ingressServiceIndexFunc () func (obj interface {}) ([]string , error ) {
118+ func ingressServiceIndexFunc (ingressClass string ) func (obj interface {}) ([]string , error ) {
117119 return func (obj interface {}) ([]string , error ) {
118120 if ing , ok := obj .(* v1beta1.Ingress ); ok {
119121 var idx []string
120- for _ , rule := range ing .Spec .Rules {
121- if rule .HTTP != nil && len (rule .Host ) > 0 {
122- for _ , path := range rule .HTTP .Paths {
123- if len (path .Backend .ServiceName ) > 0 {
124- idx = append (idx , itemKeyFunc (ing .Namespace , path .Backend .ServiceName ))
122+ if objIngClass , ok := parseIngressClass (ing ); ok && ingressClass == objIngClass {
123+ for _ , rule := range ing .Spec .Rules {
124+ if rule .HTTP != nil && len (rule .Host ) > 0 {
125+ for _ , path := range rule .HTTP .Paths {
126+ if len (path .Backend .ServiceName ) > 0 {
127+ idx = append (idx , itemKeyFunc (ing .Namespace , path .Backend .ServiceName ))
128+ }
125129 }
126130 }
127131 }
0 commit comments