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