diff --git a/build/build.go b/build/build.go
index 106c9a175d7..8926ff7e3da 100644
--- a/build/build.go
+++ b/build/build.go
@@ -252,17 +252,21 @@ func toSolveOpt(ctx context.Context, node builder.Node, multiDriver bool, opt Op
attests[k] = *v
}
}
- supportsAttestations := bopts.LLBCaps.Contains(apicaps.CapID("exporter.image.attestations")) && nodeDriver.Features(ctx)[driver.MultiPlatform]
+
+ supportAttestations := bopts.LLBCaps.Contains(apicaps.CapID("exporter.image.attestations")) && nodeDriver.Features(ctx)[driver.MultiPlatform]
if len(attests) > 0 {
- if !supportsAttestations {
- return nil, nil, errors.Errorf("attestations are not supported by the current buildkitd")
+ if !supportAttestations {
+ if !nodeDriver.Features(ctx)[driver.MultiPlatform] {
+ return nil, nil, notSupported("Attestation", nodeDriver, "https://docs.docker.com/go/attestations/")
+ }
+ return nil, nil, errors.Errorf("Attestations are not supported by the current BuildKit daemon")
}
for k, v := range attests {
so.FrontendAttrs["attest:"+k] = v
}
}
- if _, ok := opt.Attests["provenance"]; !ok && supportsAttestations {
+ if _, ok := opt.Attests["provenance"]; !ok && supportAttestations {
const noAttestEnv = "BUILDX_NO_DEFAULT_ATTESTATIONS"
var noProv bool
if v, ok := os.LookupEnv(noAttestEnv); ok {
diff --git a/builder/builder.go b/builder/builder.go
index cc1fe52b25c..74bee7b6ee8 100644
--- a/builder/builder.go
+++ b/builder/builder.go
@@ -332,16 +332,16 @@ func GetBuilders(dockerCli command.Cli, txn *store.Txn) ([]*Builder, error) {
}
type CreateOpts struct {
- Name string
- Driver string
- NodeName string
- Platforms []string
- Flags string
- ConfigFile string
- DriverOpts []string
- Use bool
- Endpoint string
- Append bool
+ Name string
+ Driver string
+ NodeName string
+ Platforms []string
+ BuildkitdFlags string
+ BuildkitdConfigFile string
+ DriverOpts []string
+ Use bool
+ Endpoint string
+ Append bool
}
func Create(ctx context.Context, txn *store.Txn, dockerCli command.Cli, opts CreateOpts) (*Builder, error) {
@@ -429,11 +429,11 @@ func Create(ctx context.Context, txn *store.Txn, dockerCli command.Cli, opts Cre
}
}
- var flags []string
- if opts.Flags != "" {
- flags, err = shlex.Split(opts.Flags)
+ var buildkitdFlags []string
+ if opts.BuildkitdFlags != "" {
+ buildkitdFlags, err = shlex.Split(opts.BuildkitdFlags)
if err != nil {
- return nil, errors.Wrap(err, "failed to parse buildkit flags")
+ return nil, errors.Wrap(err, "failed to parse BuildKit daemon flags")
}
}
@@ -493,21 +493,21 @@ func Create(ctx context.Context, txn *store.Txn, dockerCli command.Cli, opts Cre
setEp = false
}
- m, err := csvToMap(opts.DriverOpts)
+ driverOpts, err := csvToMap(opts.DriverOpts)
if err != nil {
return nil, err
}
- configFile := opts.ConfigFile
- if configFile == "" {
- // if buildkit config is not provided, check if the default one is
- // available and use it
+ buildkitdConfigFile := opts.BuildkitdConfigFile
+ if buildkitdConfigFile == "" {
+ // if buildkit daemon config is not provided, check if the default one
+ // is available and use it
if f, ok := confutil.DefaultConfigFile(dockerCli); ok {
- configFile = f
+ buildkitdConfigFile = f
}
}
- if err := ng.Update(opts.NodeName, ep, opts.Platforms, setEp, opts.Append, flags, configFile, m); err != nil {
+ if err := ng.Update(opts.NodeName, ep, opts.Platforms, setEp, opts.Append, buildkitdFlags, buildkitdConfigFile, driverOpts); err != nil {
return nil, err
}
diff --git a/builder/node.go b/builder/node.go
index 4ee47325495..14f6ec1d234 100644
--- a/builder/node.go
+++ b/builder/node.go
@@ -142,7 +142,7 @@ func (b *Builder) LoadNodes(ctx context.Context, opts ...LoadNodesOption) (_ []N
}
}
- d, err := driver.GetDriver(ctx, "buildx_buildkit_"+n.Name, factory, n.Endpoint, dockerapi, imageopt.Auth, kcc, n.Flags, n.Files, n.DriverOpts, n.Platforms, b.opts.contextPathHash, lno.dialMeta)
+ d, err := driver.GetDriver(ctx, "buildx_buildkit_"+n.Name, factory, n.Endpoint, dockerapi, imageopt.Auth, kcc, n.BuildkitdFlags, n.Files, n.DriverOpts, n.Platforms, b.opts.contextPathHash, lno.dialMeta)
if err != nil {
node.Err = err
return nil
@@ -217,33 +217,33 @@ func (n *Node) MarshalJSON() ([]byte, error) {
pp = append(pp, platforms.Format(p))
}
return json.Marshal(struct {
- Name string
- Endpoint string
- Flags []string `json:",omitempty"`
- DriverOpts map[string]string `json:",omitempty"`
- Files map[string][]byte `json:",omitempty"`
- Status string `json:",omitempty"`
- ProxyConfig map[string]string `json:",omitempty"`
- Version string `json:",omitempty"`
- Err string `json:",omitempty"`
- IDs []string `json:",omitempty"`
- Platforms []string `json:",omitempty"`
- GCPolicy []client.PruneInfo `json:",omitempty"`
- Labels map[string]string `json:",omitempty"`
+ Name string
+ Endpoint string
+ BuildkitdFlags []string `json:"Flags,omitempty"`
+ DriverOpts map[string]string `json:",omitempty"`
+ Files map[string][]byte `json:",omitempty"`
+ Status string `json:",omitempty"`
+ ProxyConfig map[string]string `json:",omitempty"`
+ Version string `json:",omitempty"`
+ Err string `json:",omitempty"`
+ IDs []string `json:",omitempty"`
+ Platforms []string `json:",omitempty"`
+ GCPolicy []client.PruneInfo `json:",omitempty"`
+ Labels map[string]string `json:",omitempty"`
}{
- Name: n.Name,
- Endpoint: n.Endpoint,
- Flags: n.Flags,
- DriverOpts: n.DriverOpts,
- Files: n.Files,
- Status: status,
- ProxyConfig: n.ProxyConfig,
- Version: n.Version,
- Err: nerr,
- IDs: n.IDs,
- Platforms: pp,
- GCPolicy: n.GCPolicy,
- Labels: n.Labels,
+ Name: n.Name,
+ Endpoint: n.Endpoint,
+ BuildkitdFlags: n.BuildkitdFlags,
+ DriverOpts: n.DriverOpts,
+ Files: n.Files,
+ Status: status,
+ ProxyConfig: n.ProxyConfig,
+ Version: n.Version,
+ Err: nerr,
+ IDs: n.IDs,
+ Platforms: pp,
+ GCPolicy: n.GCPolicy,
+ Labels: n.Labels,
})
}
diff --git a/commands/create.go b/commands/create.go
index 9362aebba64..5cc90e724a5 100644
--- a/commands/create.go
+++ b/commands/create.go
@@ -16,17 +16,17 @@ import (
)
type createOptions struct {
- name string
- driver string
- nodeName string
- platform []string
- actionAppend bool
- actionLeave bool
- use bool
- flags string
- configFile string
- driverOpts []string
- bootstrap bool
+ name string
+ driver string
+ nodeName string
+ platform []string
+ actionAppend bool
+ actionLeave bool
+ use bool
+ driverOpts []string
+ buildkitdFlags string
+ buildkitdConfigFile string
+ bootstrap bool
// upgrade bool // perform upgrade of the driver
}
@@ -51,16 +51,16 @@ func runCreate(ctx context.Context, dockerCli command.Cli, in createOptions, arg
}
b, err := builder.Create(ctx, txn, dockerCli, builder.CreateOpts{
- Name: in.name,
- Driver: in.driver,
- NodeName: in.nodeName,
- Platforms: in.platform,
- Flags: in.flags,
- ConfigFile: in.configFile,
- DriverOpts: in.driverOpts,
- Use: in.use,
- Endpoint: ep,
- Append: in.actionAppend,
+ Name: in.name,
+ Driver: in.driver,
+ NodeName: in.nodeName,
+ Platforms: in.platform,
+ DriverOpts: in.driverOpts,
+ BuildkitdFlags: in.buildkitdFlags,
+ BuildkitdConfigFile: in.buildkitdConfigFile,
+ Use: in.use,
+ Endpoint: ep,
+ Append: in.actionAppend,
})
if err != nil {
return err
@@ -106,12 +106,16 @@ func createCmd(dockerCli command.Cli) *cobra.Command {
flags.StringVar(&options.name, "name", "", "Builder instance name")
flags.StringVar(&options.driver, "driver", "", fmt.Sprintf("Driver to use (available: %s)", drivers.String()))
flags.StringVar(&options.nodeName, "node", "", "Create/modify node with given name")
- flags.StringVar(&options.flags, "buildkitd-flags", "", "Flags for buildkitd daemon")
- flags.StringVar(&options.configFile, "config", "", "BuildKit config file")
flags.StringArrayVar(&options.platform, "platform", []string{}, "Fixed platforms for current node")
flags.StringArrayVar(&options.driverOpts, "driver-opt", []string{}, "Options for the driver")
- flags.BoolVar(&options.bootstrap, "bootstrap", false, "Boot builder after creation")
+ flags.StringVar(&options.buildkitdFlags, "buildkitd-flags", "", "BuildKit daemon flags")
+
+ // we allow for both "--config" and "--buildkitd-config", although the latter is the recommended way to avoid ambiguity.
+ flags.StringVar(&options.buildkitdConfigFile, "buildkitd-config", "", "BuildKit daemon config file")
+ flags.StringVar(&options.buildkitdConfigFile, "config", "", "BuildKit daemon config file")
+ flags.MarkHidden("config")
+ flags.BoolVar(&options.bootstrap, "bootstrap", false, "Boot builder after creation")
flags.BoolVar(&options.actionAppend, "append", false, "Append a node to builder instead of changing it")
flags.BoolVar(&options.actionLeave, "leave", false, "Remove a node from builder instead of changing it")
flags.BoolVar(&options.use, "use", false, "Set the current builder instance")
diff --git a/commands/inspect.go b/commands/inspect.go
index e341691c64d..8dce4753a30 100644
--- a/commands/inspect.go
+++ b/commands/inspect.go
@@ -84,11 +84,11 @@ func runInspect(ctx context.Context, dockerCli command.Cli, in inspectOptions) e
fmt.Fprintf(w, "Error:\t%s\n", err.Error())
} else {
fmt.Fprintf(w, "Status:\t%s\n", nodes[i].DriverInfo.Status)
- if len(n.Flags) > 0 {
- fmt.Fprintf(w, "Flags:\t%s\n", strings.Join(n.Flags, " "))
+ if len(n.BuildkitdFlags) > 0 {
+ fmt.Fprintf(w, "BuildKit daemon flags:\t%s\n", strings.Join(n.BuildkitdFlags, " "))
}
if nodes[i].Version != "" {
- fmt.Fprintf(w, "Buildkit:\t%s\n", nodes[i].Version)
+ fmt.Fprintf(w, "BuildKit version:\t%s\n", nodes[i].Version)
}
platforms := platformutil.FormatInGroups(n.Node.Platforms, n.Platforms)
if len(platforms) > 0 {
diff --git a/commands/rm.go b/commands/rm.go
index af6ffd59f19..081cdb781cb 100644
--- a/commands/rm.go
+++ b/commands/rm.go
@@ -112,7 +112,7 @@ func rmCmd(dockerCli command.Cli, rootOpts *rootOptions) *cobra.Command {
flags := cmd.Flags()
flags.BoolVar(&options.keepState, "keep-state", false, "Keep BuildKit state")
- flags.BoolVar(&options.keepDaemon, "keep-daemon", false, "Keep the buildkitd daemon running")
+ flags.BoolVar(&options.keepDaemon, "keep-daemon", false, "Keep the BuildKit daemon running")
flags.BoolVar(&options.allInactive, "all-inactive", false, "Remove all inactive builders")
flags.BoolVarP(&options.force, "force", "f", false, "Do not prompt for confirmation")
diff --git a/docs/reference/buildx_build.md b/docs/reference/buildx_build.md
index bfa75e1e414..01aed26b396 100644
--- a/docs/reference/buildx_build.md
+++ b/docs/reference/buildx_build.md
@@ -154,7 +154,7 @@ Allow extra privileged entitlement. List of entitlements:
- `security.insecure` - Allows executions without sandbox. See
[related Dockerfile extensions](https://docs.docker.com/reference/dockerfile/#run---securitysandbox).
-For entitlements to be enabled, the `buildkitd` daemon also needs to allow them
+For entitlements to be enabled, the BuildKit daemon also needs to allow them
with `--allow-insecure-entitlement` (see [`create --buildkitd-flags`](buildx_create.md#buildkitd-flags)).
```console
diff --git a/docs/reference/buildx_create.md b/docs/reference/buildx_create.md
index 2a5ea978d3a..4b92923db51 100644
--- a/docs/reference/buildx_create.md
+++ b/docs/reference/buildx_create.md
@@ -9,19 +9,19 @@ Create a new builder instance
### Options
-| Name | Type | Default | Description |
-|:----------------------------------------|:--------------|:--------|:----------------------------------------------------------------------|
-| [`--append`](#append) | | | Append a node to builder instead of changing it |
-| `--bootstrap` | | | Boot builder after creation |
-| [`--buildkitd-flags`](#buildkitd-flags) | `string` | | Flags for buildkitd daemon |
-| [`--config`](#config) | `string` | | BuildKit config file |
-| [`--driver`](#driver) | `string` | | Driver to use (available: `docker-container`, `kubernetes`, `remote`) |
-| [`--driver-opt`](#driver-opt) | `stringArray` | | Options for the driver |
-| [`--leave`](#leave) | | | Remove a node from builder instead of changing it |
-| [`--name`](#name) | `string` | | Builder instance name |
-| [`--node`](#node) | `string` | | Create/modify node with given name |
-| [`--platform`](#platform) | `stringArray` | | Fixed platforms for current node |
-| [`--use`](#use) | | | Set the current builder instance |
+| Name | Type | Default | Description |
+|:------------------------------------------|:--------------|:--------|:----------------------------------------------------------------------|
+| [`--append`](#append) | | | Append a node to builder instead of changing it |
+| `--bootstrap` | | | Boot builder after creation |
+| [`--buildkitd-config`](#buildkitd-config) | `string` | | BuildKit daemon config file |
+| [`--buildkitd-flags`](#buildkitd-flags) | `string` | | BuildKit daemon flags |
+| [`--driver`](#driver) | `string` | | Driver to use (available: `docker-container`, `kubernetes`, `remote`) |
+| [`--driver-opt`](#driver-opt) | `stringArray` | | Options for the driver |
+| [`--leave`](#leave) | | | Remove a node from builder instead of changing it |
+| [`--name`](#name) | `string` | | Builder instance name |
+| [`--node`](#node) | `string` | | Create/modify node with given name |
+| [`--platform`](#platform) | `stringArray` | | Fixed platforms for current node |
+| [`--use`](#use) | | | Set the current builder instance |
@@ -55,29 +55,15 @@ $ docker buildx create --name eager_beaver --append mycontext2
eager_beaver
```
-### Specify options for the buildkitd daemon (--buildkitd-flags)
+### Specify a configuration file for the BuildKit daemon (--buildkitd-config)
```text
---buildkitd-flags FLAGS
-```
-
-Adds flags when starting the buildkitd daemon. They take precedence over the
-configuration file specified by [`--config`](#config). See `buildkitd --help`
-for the available flags.
-
-```text
---buildkitd-flags '--debug --debugaddr 0.0.0.0:6666'
-```
-
-### Specify a configuration file for the buildkitd daemon (--config)
-
-```text
---config FILE
+--buildkitd-config FILE
```
-Specifies the configuration file for the buildkitd daemon to use. The configuration
-can be overridden by [`--buildkitd-flags`](#buildkitd-flags).
-See an [example buildkitd configuration file](https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md).
+Specifies the configuration file for the BuildKit daemon to use. The
+configuration can be overridden by [`--buildkitd-flags`](#buildkitd-flags).
+See an [example BuildKit daemon configuration file](https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md).
If you don't specify a configuration file, Buildx looks for one by default in:
@@ -90,6 +76,20 @@ certificates for registries in the `buildkitd.toml` configuration, the files
will be copied into the container under `/etc/buildkit/certs` and configuration
will be updated to reflect that.
+### Specify options for the BuildKit daemon (--buildkitd-flags)
+
+```text
+--buildkitd-flags FLAGS
+```
+
+Adds flags when starting the BuildKit daemon. They take precedence over the
+configuration file specified by [`--buildkitd-config`](#buildkitd-config). See
+`buildkitd --help` for the available flags.
+
+```text
+--buildkitd-flags '--debug --debugaddr 0.0.0.0:6666'
+```
+
### Set the builder driver to use (--driver)
```text
@@ -133,8 +133,8 @@ to achieve that.
#### `remote` driver
-Uses a remote instance of buildkitd over an arbitrary connection. With this
-driver, you manually create and manage instances of buildkit yourself, and
+Uses a remote instance of BuildKit daemon over an arbitrary connection. With
+this driver, you manually create and manage instances of buildkit yourself, and
configure buildx to point at it.
Unlike `docker` driver, built images will not automatically appear in
diff --git a/docs/reference/buildx_rm.md b/docs/reference/buildx_rm.md
index 9ca7fb695da..0f509ddcd1a 100644
--- a/docs/reference/buildx_rm.md
+++ b/docs/reference/buildx_rm.md
@@ -14,7 +14,7 @@ Remove one or more builder instances
| [`--all-inactive`](#all-inactive) | | | Remove all inactive builders |
| [`--builder`](#builder) | `string` | | Override the configured builder instance |
| [`-f`](#force), [`--force`](#force) | | | Do not prompt for confirmation |
-| [`--keep-daemon`](#keep-daemon) | | | Keep the buildkitd daemon running |
+| [`--keep-daemon`](#keep-daemon) | | | Keep the BuildKit daemon running |
| [`--keep-state`](#keep-state) | | | Keep BuildKit state |
@@ -48,10 +48,10 @@ Do not prompt for confirmation before removing inactive builders.
$ docker buildx rm --all-inactive --force
```
-### Keep the buildkitd daemon running (--keep-daemon)
+### Keep the BuildKit daemon running (--keep-daemon)
Keep the BuildKit daemon running after the buildx context is removed. This is
-useful when you manage buildkitd daemons and buildx contexts independently.
+useful when you manage BuildKit daemons and buildx contexts independently.
Only supported by the
[`docker-container`](https://docs.docker.com/build/drivers/docker-container/)
and [`kubernetes`](https://docs.docker.com/build/drivers/kubernetes/) drivers.
diff --git a/driver/docker-container/driver.go b/driver/docker-container/driver.go
index 38af33a9fe8..5a23fa4ebd6 100644
--- a/driver/docker-container/driver.go
+++ b/driver/docker-container/driver.go
@@ -494,7 +494,7 @@ func writeConfigFiles(m map[string][]byte) (_ string, err error) {
}
func getBuildkitFlags(initConfig driver.InitConfig) []string {
- flags := initConfig.BuildkitFlags
+ flags := initConfig.BuildkitdFlags
if _, ok := initConfig.Files[buildkitdConfigFile]; ok {
// There's no way for us to determine the appropriate default configuration
// path and the default path can vary depending on if the image is normal
diff --git a/driver/docker-container/factory.go b/driver/docker-container/factory.go
index ff69ae0b48d..b4c1189c378 100644
--- a/driver/docker-container/factory.go
+++ b/driver/docker-container/factory.go
@@ -56,7 +56,7 @@ func (f *factory) New(ctx context.Context, cfg driver.InitConfig) (driver.Driver
case k == "network":
d.netMode = v
if v == "host" {
- d.InitConfig.BuildkitFlags = append(d.InitConfig.BuildkitFlags, "--allow-insecure-entitlement=network.host")
+ d.InitConfig.BuildkitdFlags = append(d.InitConfig.BuildkitdFlags, "--allow-insecure-entitlement=network.host")
}
case k == "image":
d.image = v
diff --git a/driver/kubernetes/factory.go b/driver/kubernetes/factory.go
index 8f353484319..56384dbfbf4 100644
--- a/driver/kubernetes/factory.go
+++ b/driver/kubernetes/factory.go
@@ -105,7 +105,7 @@ func (f *factory) processDriverOpts(deploymentName string, namespace string, cfg
Name: deploymentName,
Image: bkimage.DefaultImage,
Replicas: 1,
- BuildkitFlags: cfg.BuildkitFlags,
+ BuildkitFlags: cfg.BuildkitdFlags,
Rootless: false,
Platforms: cfg.Platforms,
ConfigFiles: cfg.Files,
diff --git a/driver/manager.go b/driver/manager.go
index 012aa17a08a..a4e56e64e74 100644
--- a/driver/manager.go
+++ b/driver/manager.go
@@ -52,7 +52,7 @@ type InitConfig struct {
EndpointAddr string
DockerAPI dockerclient.APIClient
KubeClientConfig KubeClientConfig
- BuildkitFlags []string
+ BuildkitdFlags []string
Files map[string][]byte
DriverOpts map[string]string
Auth Auth
@@ -103,13 +103,13 @@ func GetFactory(name string, instanceRequired bool) (Factory, error) {
return nil, errors.Errorf("failed to find driver %q", name)
}
-func GetDriver(ctx context.Context, name string, f Factory, endpointAddr string, api dockerclient.APIClient, auth Auth, kcc KubeClientConfig, flags []string, files map[string][]byte, do map[string]string, platforms []specs.Platform, contextPathHash string, dialMeta map[string][]string) (*DriverHandle, error) {
+func GetDriver(ctx context.Context, name string, f Factory, endpointAddr string, api dockerclient.APIClient, auth Auth, kcc KubeClientConfig, buildkitdFlags []string, files map[string][]byte, do map[string]string, platforms []specs.Platform, contextPathHash string, dialMeta map[string][]string) (*DriverHandle, error) {
ic := InitConfig{
EndpointAddr: endpointAddr,
DockerAPI: api,
KubeClientConfig: kcc,
Name: name,
- BuildkitFlags: flags,
+ BuildkitdFlags: buildkitdFlags,
DriverOpts: do,
Auth: auth,
Platforms: platforms,
diff --git a/driver/remote/factory.go b/driver/remote/factory.go
index e3287fb4d6e..4d196dd8481 100644
--- a/driver/remote/factory.go
+++ b/driver/remote/factory.go
@@ -46,7 +46,7 @@ func (f *factory) New(ctx context.Context, cfg driver.InitConfig) (driver.Driver
if len(cfg.Files) > 0 {
return nil, errors.Errorf("setting config file is not supported for remote driver")
}
- if len(cfg.BuildkitFlags) > 0 {
+ if len(cfg.BuildkitdFlags) > 0 {
return nil, errors.Errorf("setting buildkit flags is not supported for remote driver")
}
diff --git a/hack/test-driver b/hack/test-driver
index dbf0559bdb5..42659592f28 100755
--- a/hack/test-driver
+++ b/hack/test-driver
@@ -49,7 +49,7 @@ if [ "$DRIVER" != "docker" ]; then
for platform in ${PLATFORMS//,/ }; do
createFlags=""
if [ -f "$BUILDKIT_CFG" ]; then
- createFlags="$createFlags --config=${BUILDKIT_CFG}"
+ createFlags="$createFlags --buildkitd-config=${BUILDKIT_CFG}"
fi
if [ "$firstNode" = "0" ]; then
createFlags="$createFlags --append"
@@ -71,7 +71,7 @@ if [ "$DRIVER" != "docker" ]; then
else
createFlags=""
if [ -f "$BUILDKIT_CFG" ]; then
- createFlags="$createFlags --config=${BUILDKIT_CFG}"
+ createFlags="$createFlags --buildkitd-config=${BUILDKIT_CFG}"
fi
buildxCmd create ${createFlags} \
--bootstrap \
diff --git a/store/nodegroup.go b/store/nodegroup.go
index 6d703d8e0dc..7a09655a685 100644
--- a/store/nodegroup.go
+++ b/store/nodegroup.go
@@ -24,11 +24,11 @@ type NodeGroup struct {
}
type Node struct {
- Name string
- Endpoint string
- Platforms []specs.Platform
- Flags []string
- DriverOpts map[string]string
+ Name string
+ Endpoint string
+ Platforms []specs.Platform
+ DriverOpts map[string]string
+ BuildkitdFlags []string `json:"Flags"` // keep the field name for backward compatibility
Files map[string][]byte
}
@@ -48,7 +48,7 @@ func (ng *NodeGroup) Leave(name string) error {
return nil
}
-func (ng *NodeGroup) Update(name, endpoint string, platforms []string, endpointsSet bool, actionAppend bool, flags []string, configFile string, do map[string]string) error {
+func (ng *NodeGroup) Update(name, endpoint string, platforms []string, endpointsSet bool, actionAppend bool, buildkitdFlags []string, buildkitdConfigFile string, do map[string]string) error {
if ng.Dynamic {
return errors.New("dynamic node group does not support Update")
}
@@ -66,8 +66,8 @@ func (ng *NodeGroup) Update(name, endpoint string, platforms []string, endpoints
}
var files map[string][]byte
- if configFile != "" {
- files, err = confutil.LoadConfigFiles(configFile)
+ if buildkitdConfigFile != "" {
+ files, err = confutil.LoadConfigFiles(buildkitdConfigFile)
if err != nil {
return err
}
@@ -83,15 +83,15 @@ func (ng *NodeGroup) Update(name, endpoint string, platforms []string, endpoints
if len(platforms) > 0 {
n.Platforms = pp
}
- if flags != nil {
- n.Flags = flags
+ if buildkitdFlags != nil {
+ n.BuildkitdFlags = buildkitdFlags
needsRestart = true
}
if do != nil {
n.DriverOpts = do
needsRestart = true
}
- if configFile != "" {
+ if buildkitdConfigFile != "" {
for k, v := range files {
n.Files[k] = v
}
@@ -115,12 +115,12 @@ func (ng *NodeGroup) Update(name, endpoint string, platforms []string, endpoints
}
n := Node{
- Name: name,
- Endpoint: endpoint,
- Platforms: pp,
- Flags: flags,
- DriverOpts: do,
- Files: files,
+ Name: name,
+ Endpoint: endpoint,
+ Platforms: pp,
+ DriverOpts: do,
+ BuildkitdFlags: buildkitdFlags,
+ Files: files,
}
ng.Nodes = append(ng.Nodes, n)
@@ -143,8 +143,8 @@ func (ng *NodeGroup) Copy() *NodeGroup {
func (n *Node) Copy() *Node {
platforms := []specs.Platform{}
copy(platforms, n.Platforms)
- flags := []string{}
- copy(flags, n.Flags)
+ buildkitdFlags := []string{}
+ copy(buildkitdFlags, n.BuildkitdFlags)
driverOpts := map[string]string{}
for k, v := range n.DriverOpts {
driverOpts[k] = v
@@ -156,12 +156,12 @@ func (n *Node) Copy() *Node {
files[k] = vv
}
return &Node{
- Name: n.Name,
- Endpoint: n.Endpoint,
- Platforms: platforms,
- Flags: flags,
- DriverOpts: driverOpts,
- Files: files,
+ Name: n.Name,
+ Endpoint: n.Endpoint,
+ Platforms: platforms,
+ BuildkitdFlags: buildkitdFlags,
+ DriverOpts: driverOpts,
+ Files: files,
}
}
diff --git a/store/nodegroup_test.go b/store/nodegroup_test.go
index cdcfc77d32c..7c1bce40e2b 100644
--- a/store/nodegroup_test.go
+++ b/store/nodegroup_test.go
@@ -28,8 +28,8 @@ func TestNodeGroupUpdate(t *testing.T) {
require.Equal(t, []string{"linux/arm64"}, platformutil.Format(ng.Nodes[1].Platforms))
require.Equal(t, "foo2", ng.Nodes[0].Endpoint)
- require.Equal(t, []string{"--debug"}, ng.Nodes[0].Flags)
- require.Equal(t, []string(nil), ng.Nodes[1].Flags)
+ require.Equal(t, []string{"--debug"}, ng.Nodes[0].BuildkitdFlags)
+ require.Equal(t, []string(nil), ng.Nodes[1].BuildkitdFlags)
// duplicate endpoint
err = ng.Update("foo1", "foo2", nil, true, false, nil, "", nil)
diff --git a/tests/build.go b/tests/build.go
index 88796b15f80..ee3cc7a7741 100644
--- a/tests/build.go
+++ b/tests/build.go
@@ -118,7 +118,7 @@ func testBuildRegistryExportAttestations(t *testing.T, sb integration.Sandbox) {
out, err := buildCmd(sb, withArgs(fmt.Sprintf("--output=type=image,name=%s,push=true", target), "--provenance=true", dir))
if sb.Name() == "docker" {
require.Error(t, err)
- require.Contains(t, out, "attestations are not supported")
+ require.Contains(t, out, "Attestation is not supported")
return
}
require.NoError(t, err, string(out))
diff --git a/tests/workers/docker-container.go b/tests/workers/docker-container.go
index 8aa00fa2dd4..b3880a79e8f 100644
--- a/tests/workers/docker-container.go
+++ b/tests/workers/docker-container.go
@@ -58,7 +58,7 @@ func (w *containerWorker) New(ctx context.Context, cfg *integration.BackendConfi
cmd := exec.Command("buildx", "create",
"--bootstrap",
"--name="+name,
- "--config="+cfgfile,
+ "--buildkitd-config="+cfgfile,
"--driver=docker-container",
"--driver-opt=network=host",
)