in pkg/k8scontext/ingress_handlers.go [90:133]
func (h handlers) ingressUpdate(oldObj, newObj interface{}) {
ing, _ := convert.ToIngressV1(newObj)
if _, exists := namespacesToIgnore[ing.Namespace]; exists {
return
}
if _, exists := h.context.namespaces[ing.Namespace]; len(h.context.namespaces) > 0 && !exists {
return
}
if reflect.DeepEqual(oldObj, newObj) {
return
}
oldIng, _ := convert.ToIngressV1(oldObj)
if !h.context.IsIngressClass(ing) && !h.context.IsIngressClass(oldIng) {
return
}
if ing.Spec.TLS != nil && len(ing.Spec.TLS) > 0 {
ingKey := utils.GetResourceKey(ing.Namespace, ing.Name)
h.context.ingressSecretsMap.Clear(ingKey)
for _, tls := range ing.Spec.TLS {
secKey := utils.GetResourceKey(ing.Namespace, tls.SecretName)
if h.context.ingressSecretsMap.ContainsPair(ingKey, secKey) {
continue
}
if secret, exists, err := h.context.Caches.Secret.GetByKey(secKey); exists && err == nil {
if !h.context.ingressSecretsMap.ContainsValue(secKey) {
if err := h.context.CertificateSecretStore.ConvertSecret(secKey, secret.(*v1.Secret)); err != nil {
klog.Error(err.Error())
}
}
}
h.context.ingressSecretsMap.Insert(ingKey, secKey)
}
}
h.context.Work <- events.Event{
Type: events.Update,
Value: newObj,
}
h.context.MetricStore.IncK8sAPIEventCounter()
}