func configDaemon(ctx *cli.Context) { var ( client *cnc.Client err error ) first := ctx.Args().First() if first == "list" { for k, s := range daemon.DaemonOptionLibrary { fmt.Printf("%-24s %s\n", k, s.Description) } return } if host := ctx.GlobalString("host"); host == "" { client, err = cnc.NewDefaultClient() } else { client, err = cnc.NewClient(host, nil) } if err != nil { fmt.Fprintf(os.Stderr, "Error while creating cilium-client: %s\n", err) os.Exit(1) } res, err := client.Ping() if err != nil { fmt.Fprintf(os.Stderr, "Unable to reach daemon: %s\n", err) os.Exit(1) } if res == nil { fmt.Fprintf(os.Stderr, "Empty response from daemon\n") os.Exit(1) } opts := ctx.Args() if len(opts) == 0 { res.Opts.Dump() return } dOpts := make(option.OptionMap, len(opts)) for k := range opts { name, value, err := option.ParseOption(opts[k], &daemon.DaemonOptionLibrary) if err != nil { fmt.Printf("%s\n", err) os.Exit(1) } dOpts[name] = value err = client.Update(dOpts) if err != nil { fmt.Fprintf(os.Stderr, "Unable to update daemon: %s\n", err) os.Exit(1) } } }