From ed41a706b9dc0304147584ba95ce0d13e9ceca1b Mon Sep 17 00:00:00 2001 From: Manuel de Brito Fontes Date: Fri, 17 Jun 2016 17:18:45 -0400 Subject: [PATCH] Avoid sync without a reachable master --- controllers/nginx/controller.go | 18 ++++++++++++------ controllers/nginx/main.go | 7 +++++++ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/controllers/nginx/controller.go b/controllers/nginx/controller.go index 823bd2861..abd55de00 100644 --- a/controllers/nginx/controller.go +++ b/controllers/nginx/controller.go @@ -421,13 +421,19 @@ func (lbc *loadBalancerController) sync(key string) { return } - var cfg *api.ConfigMap + // by default no custom configuration configmap + cfg := &api.ConfigMap{} - ns, name, _ := parseNsName(lbc.nxgConfigMap) - cfg, err := lbc.getConfigMap(ns, name) - if err != nil { - glog.V(3).Infof("unexpected error searching configmap %v: %v", lbc.nxgConfigMap, err) - cfg = &api.ConfigMap{} + if lbc.nxgConfigMap != "" { + // Search for custom configmap (defined in main args) + var err error + ns, name, _ := parseNsName(lbc.nxgConfigMap) + cfg, err = lbc.getConfigMap(ns, name) + if err != nil { + glog.V(3).Infof("unexpected error searching configmap %v: %v", lbc.nxgConfigMap, err) + lbc.syncQueue.requeue(key, err) + return + } } ngxConfig := lbc.nginx.ReadConfig(cfg) diff --git a/controllers/nginx/main.go b/controllers/nginx/main.go index ed2c9f67f..9bd40076f 100644 --- a/controllers/nginx/main.go +++ b/controllers/nginx/main.go @@ -130,6 +130,13 @@ func main() { } glog.Infof("Validated %v as the default backend", *defaultSvc) + if *nxgConfigMap != "" { + _, _, err := parseNsName(*nxgConfigMap) + if err != nil { + glog.Fatalf("configmap error: %v", err) + } + } + lbc, err := newLoadBalancerController(kubeClient, *resyncPeriod, *defaultSvc, *watchNamespace, *nxgConfigMap, *tcpConfigMapName, *udpConfigMapName, runtimePodInfo) if err != nil { glog.Fatalf("%v", err)