From e79fda96d27a4a4cc0ea0f6b5ae6c981db2ed2ec Mon Sep 17 00:00:00 2001 From: Erik Wilson Date: Fri, 12 Jul 2019 16:18:53 -0700 Subject: [PATCH] Enforce explicit read or write for bootstrap --- pkg/daemons/control/bootstrap.go | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/pkg/daemons/control/bootstrap.go b/pkg/daemons/control/bootstrap.go index b5ab233942..1fbfef2f3a 100644 --- a/pkg/daemons/control/bootstrap.go +++ b/pkg/daemons/control/bootstrap.go @@ -77,7 +77,10 @@ func fetchBootstrapData(cfg *config.Control) error { return err } if len(gr.Kvs) == 0 { - return nil + if cfg.BootstrapType != bootstrapTypeRead { + return nil + } + return errors.New("Unable to read bootstrap data from server") } runtimeJSON, err := base64.URLEncoding.DecodeString(string(gr.Kvs[0].Value)) @@ -118,13 +121,16 @@ func storeBootstrapData(cfg *config.Control) error { } defer cli.Close() - gr, err := cli.Get(context.TODO(), k3sRuntimeEtcdPath) - if err != nil { - return err - } - if len(gr.Kvs) > 0 && string(gr.Kvs[0].Value) != "" { - return nil + if cfg.BootstrapType != bootstrapTypeWrite { + gr, err := cli.Get(context.TODO(), k3sRuntimeEtcdPath) + if err != nil { + return err + } + if len(gr.Kvs) > 0 && string(gr.Kvs[0].Value) != "" { + return nil + } } + certData, err := readRuntimeBootstrapData(cfg.Runtime) if err != nil { return err