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