diff --git a/builder/builder.go b/builder/builder.go index ba068889..3ce8c307 100644 --- a/builder/builder.go +++ b/builder/builder.go @@ -97,9 +97,6 @@ func New(dockerCli command.Cli, opts ...Option) (_ *Builder, err error) { return nil, err } } - if b.NodeGroup.Name == "default" && len(b.NodeGroup.Nodes) == 1 { - b.NodeGroup.Name = b.NodeGroup.Nodes[0].Endpoint - } if b.opts.validate { if err = b.Validate(); err != nil { return nil, err @@ -111,16 +108,16 @@ func New(dockerCli command.Cli, opts ...Option) (_ *Builder, err error) { // Validate validates builder context func (b *Builder) Validate() error { - if b.NodeGroup.Name == "default" && b.NodeGroup.Name != b.opts.dockerCli.CurrentContext() { - return errors.Errorf("use `docker --context=default buildx` to switch to default context") - } - list, err := b.opts.dockerCli.ContextStore().List() - if err != nil { - return err - } - for _, l := range list { - if l.Name == b.NodeGroup.Name && b.NodeGroup.Name != "default" { - return errors.Errorf("use `docker --context=%s buildx` to switch to context %q", b.NodeGroup.Name, b.NodeGroup.Name) + if b.NodeGroup.DockerContext { + list, err := b.opts.dockerCli.ContextStore().List() + if err != nil { + return err + } + currentContext := b.opts.dockerCli.CurrentContext() + for _, l := range list { + if l.Name == b.Name && l.Name != currentContext { + return errors.Errorf("use `docker --context=%s buildx` to switch to context %q", l.Name, l.Name) + } } } return nil diff --git a/store/nodegroup.go b/store/nodegroup.go index 0a31331c..de0bf533 100644 --- a/store/nodegroup.go +++ b/store/nodegroup.go @@ -12,10 +12,11 @@ import ( ) type NodeGroup struct { - Name string - Driver string - Nodes []Node - Dynamic bool + Name string + Driver string + Nodes []Node + Dynamic bool + DockerContext bool } type Node struct { diff --git a/store/storeutil/storeutil.go b/store/storeutil/storeutil.go index 99e53a3d..04eae317 100644 --- a/store/storeutil/storeutil.go +++ b/store/storeutil/storeutil.go @@ -79,10 +79,6 @@ func GetNodeGroup(txn *store.Txn, dockerCli command.Cli, name string) (*store.No return ng, nil } - if name == "default" { - name = dockerCli.CurrentContext() - } - list, err := dockerCli.ContextStore().List() if err != nil { return nil, err @@ -90,13 +86,14 @@ func GetNodeGroup(txn *store.Txn, dockerCli command.Cli, name string) (*store.No for _, l := range list { if l.Name == name { return &store.NodeGroup{ - Name: "default", + Name: name, Nodes: []store.Node{ { - Name: "default", + Name: name, Endpoint: name, }, }, + DockerContext: true, }, nil } }