Fix issue with coredns node hosts controller

The nodes controller was reading from the configmaps cache, but doesn't add any handlers, so if no other controller added configmap handlers, the cache would remain empty.

Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
pull/9395/head
Brad Davidson 10 months ago committed by Brad Davidson
parent 77ba9904d1
commit 888f866dae

@ -9,6 +9,7 @@ import (
coreclient "github.com/rancher/wrangler/pkg/generated/controllers/core/v1" coreclient "github.com/rancher/wrangler/pkg/generated/controllers/core/v1"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
core "k8s.io/api/core/v1" core "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
) )
func Register(ctx context.Context, func Register(ctx context.Context,
@ -76,13 +77,12 @@ func (h *handler) updateCoreDNSConfigMap(nodeName, nodeAddress string, removed b
return nil return nil
} }
configMapCache, err := h.configMaps.Cache().Get("kube-system", "coredns") configMap, err := h.configMaps.Get("kube-system", "coredns", metav1.GetOptions{})
if err != nil || configMapCache == nil { if err != nil || configMap == nil {
logrus.Warn(errors.Wrap(err, "Unable to fetch coredns config map")) logrus.Warn(errors.Wrap(err, "Unable to fetch coredns config map"))
return nil return nil
} }
configMap := configMapCache.DeepCopy()
hosts := configMap.Data["NodeHosts"] hosts := configMap.Data["NodeHosts"]
hostsMap := map[string]string{} hostsMap := map[string]string{}
@ -116,6 +116,10 @@ func (h *handler) updateCoreDNSConfigMap(nodeName, nodeAddress string, removed b
for host, ip := range hostsMap { for host, ip := range hostsMap {
newHosts += ip + " " + host + "\n" newHosts += ip + " " + host + "\n"
} }
if configMap.Data == nil {
configMap.Data = map[string]string{}
}
configMap.Data["NodeHosts"] = newHosts configMap.Data["NodeHosts"] = newHosts
if _, err := h.configMaps.Update(configMap); err != nil { if _, err := h.configMaps.Update(configMap); err != nil {

Loading…
Cancel
Save