func (s *CiliumClientSuite) SetUpSuite(c *C) { socketDir := os.Getenv("SOCKET_DIR") socketPath := filepath.Join(socketDir, "cilium.sock") tempLibDir, err := ioutil.TempDir("", "cilium-test") c.Assert(err, IsNil) tempRunDir, err := ioutil.TempDir("", "cilium-test-run") c.Assert(err, IsNil) err = os.Mkdir(filepath.Join(tempRunDir, "globals"), 0777) c.Assert(err, IsNil) nodeAddress, err := addressing.NewNodeAddress("beef:beef:beef:beef:aaaa:aaaa:1111:0", "10.1.0.1", "") c.Assert(err, IsNil) daemonConf := cnd.NewConfig() daemonConf.LibDir = tempLibDir daemonConf.RunDir = tempRunDir daemonConf.DryMode = true daemonConf.LXCMap = nil daemonConf.NodeAddress = nodeAddress daemonConf.DockerEndpoint = "tcp://127.0.0.1" daemonConf.K8sEndpoint = "tcp://127.0.0.1" daemonConf.ValidLabelPrefixes = nil daemonConf.OptsMU.Lock() daemonConf.Opts.Set(endpoint.OptionDropNotify, true) daemonConf.OptsMU.Unlock() daemonConf.Device = "undefined" err = daemonConf.SetKVBackend() c.Assert(err, IsNil) d1 := []byte("#!/usr/bin/env bash\necho \"OK\"\n") err = ioutil.WriteFile(filepath.Join(daemonConf.LibDir, "join_ep.sh"), d1, 0755) c.Assert(err, IsNil) err = ioutil.WriteFile(filepath.Join(daemonConf.LibDir, "init.sh"), d1, 0755) c.Assert(err, IsNil) d, err := cnd.NewDaemon(daemonConf) if err != nil { c.Fatalf("Failed while creating new cilium-net test server: %+v", err) } server, err := cns.NewServer(socketPath, d) if err != nil { c.Fatalf("Failed while creating new cilium-net test server: %+v", err) } cli, err := cnc.NewClient("unix://"+socketPath, nil) if err != nil { c.Fatalf("Failed while creating new client: %+v", err) } s.cli = cli s.server = server go func() { if err := s.server.Start(); err != nil { c.Fatalf("Error while starting cilium-net test server: %s", err) s.server.Stop() } }() }
func run(cli *cli.Context) { if consulAddr != "" { consulDefaultAPI := consulAPI.DefaultConfig() consulSplitAddr := strings.Split(consulAddr, "://") if len(consulSplitAddr) == 2 { consulAddr = consulSplitAddr[1] } else if len(consulSplitAddr) == 1 { consulAddr = consulSplitAddr[0] } consulDefaultAPI.Address = consulAddr config.ConsulConfig = consulDefaultAPI } if len(etcdAddr.Value()) != 0 && config.EtcdCfgPath == "" { config.EtcdConfig = &etcdAPI.Config{} config.EtcdConfig.Endpoints = etcdAddr.Value() } d, err := daemon.NewDaemon(config) if err != nil { log.Fatalf("Error while creating daemon: %s", err) return } if err := d.PolicyInit(); err != nil { log.Fatalf("Unable to initialize policy: %s", err) } d.EnableConntrackGC() if enableLogstash { go d.EnableLogstash(logstashAddr, logstashProbeTimer) } d.EnableLearningTraffic() // Register event listener in docker endpoint if err := d.EnableDockerEventListener(); err != nil { log.Warningf("Error while enabling docker event watcher %s", err) } d.EnableKVStoreWatcher(30 * time.Second) if err := d.EnableK8sWatcher(5 * time.Minute); err != nil { log.Warningf("Error while enabling k8s watcher %s", err) } go d.EnableDockerSync(false) if config.IsUIEnabled() { uiServer, err := s.NewUIServer(config.UIServerAddr, d) if err != nil { log.Fatalf("Error while creating ui server: %s", err) } defer uiServer.Stop() go uiServer.Start() } else { log.Info("UI is disabled") } server, err := s.NewServer(socketPath, d) if err != nil { log.Fatalf("Error while creating daemon: %s", err) } defer server.Stop() server.Start() }