Merge pull request #2684 from crazy-max/inspect-buildkitd-conf

inspect: display buildkit daemon configuration file
This commit is contained in:
Tõnis Tiigi 2024-09-11 17:32:25 -07:00 committed by GitHub
commit 604b723007
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 75 additions and 0 deletions

View File

@ -126,6 +126,12 @@ func runInspect(ctx context.Context, dockerCli command.Cli, in inspectOptions) e
fmt.Fprintf(w, "\tKeep Bytes:\t%s\n", units.BytesSize(float64(rule.KeepBytes)))
}
}
for f, dt := range nodes[i].Files {
fmt.Fprintf(w, "File#%s:\n", f)
for _, line := range strings.Split(string(dt), "\n") {
fmt.Fprintf(w, "\t> %s\n", line)
}
}
}
}
}

View File

@ -1,6 +1,9 @@
package tests
import (
"os"
"path"
"regexp"
"strings"
"testing"
@ -19,6 +22,7 @@ var inspectTests = []func(t *testing.T, sb integration.Sandbox){
testInspect,
testInspectBuildkitdFlags,
testInspectNetworkHostEntitlement,
testInspectBuildkitdConf,
}
func testInspect(t *testing.T, sb integration.Sandbox) {
@ -109,3 +113,68 @@ func testInspectNetworkHostEntitlement(t *testing.T, sb integration.Sandbox) {
}
require.Fail(t, "network.host insecure entitlement not found in inspect output")
}
func testInspectBuildkitdConf(t *testing.T, sb integration.Sandbox) {
if !isDockerContainerWorker(sb) {
t.Skip("only testing with docker-container worker")
}
buildkitdConf := `
# debug enables additional debug logging
debug = true
# insecure-entitlements allows insecure entitlements, disabled by default.
insecure-entitlements = [ "network.host", "security.insecure" ]
[log]
# log formatter: json or text
format = "text"
`
expectedContent := `debug = true
insecure-entitlements = ["network.host", "security.insecure"]
[log]
format = "text"
`
var builderName string
t.Cleanup(func() {
if builderName == "" {
return
}
out, err := rmCmd(sb, withArgs(builderName))
require.NoError(t, err, out)
})
dirConf := t.TempDir()
buildkitdConfPath := path.Join(dirConf, "buildkitd-conf.toml")
require.NoError(t, os.WriteFile(buildkitdConfPath, []byte(buildkitdConf), 0644))
out, err := createCmd(sb, withArgs("--driver", "docker-container", "--buildkitd-config="+buildkitdConfPath))
require.NoError(t, err, out)
builderName = strings.TrimSpace(out)
out, err = inspectCmd(sb, withArgs(builderName))
require.NoError(t, err, out)
var fileLines []string
var fileFound bool
var reConfLine = regexp.MustCompile(`^[\s\t]*>\s(.*)`)
for _, line := range strings.Split(out, "\n") {
if strings.HasPrefix(line, "File#buildkitd.toml:") {
fileFound = true
continue
}
if fileFound {
if matches := reConfLine.FindStringSubmatch(line); len(matches) > 1 {
fileLines = append(fileLines, matches[1])
} else {
break
}
}
}
if !fileFound {
require.Fail(t, "File#buildkitd.toml not found in inspect output")
}
require.Equal(t, expectedContent, strings.Join(fileLines, "\n"), "File#buildkitd.toml content mismatch")
}