in pkg/k8scontext/ingress_handlers.go [17:55]
func (h handlers) ingressAdd(obj interface{}) {
ing, _ := convert.ToIngressV1(obj)
if _, exists := namespacesToIgnore[ing.Namespace]; exists {
return
}
if _, exists := h.context.namespaces[ing.Namespace]; len(h.context.namespaces) > 0 && !exists {
return
}
if !h.context.IsIngressClass(ing) {
return
}
if ing.Spec.TLS != nil && len(ing.Spec.TLS) > 0 {
ingKey := utils.GetResourceKey(ing.Namespace, ing.Name)
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.Create,
Value: obj,
}
h.context.MetricStore.IncK8sAPIEventCounter()
}