mirror of
https://github.com/kemko/nomad.git
synced 2026-01-06 10:25:42 +03:00
Merge pull request #5372 from hashicorp/f-docker-logging-driver
drivers/docker: rename logging `type` to `driver`
This commit is contained in:
@@ -256,6 +256,7 @@ var (
|
||||
"load": hclspec.NewAttr("load", "string", false),
|
||||
"logging": hclspec.NewBlock("logging", false, hclspec.NewObject(map[string]*hclspec.Spec{
|
||||
"type": hclspec.NewAttr("type", "string", false),
|
||||
"driver": hclspec.NewAttr("driver", "string", false),
|
||||
"config": hclspec.NewAttr("config", "list(map(string))", false),
|
||||
})),
|
||||
"mac_address": hclspec.NewAttr("mac_address", "string", false),
|
||||
@@ -397,6 +398,7 @@ func (d DockerDevice) toDockerDevice() (docker.Device, error) {
|
||||
|
||||
type DockerLogging struct {
|
||||
Type string `codec:"type"`
|
||||
Driver string `codec:"driver"`
|
||||
Config hclutils.MapStrStr `codec:"config"`
|
||||
}
|
||||
|
||||
|
||||
@@ -181,7 +181,8 @@ config {
|
||||
}
|
||||
load = "/tmp/image.tar.gz"
|
||||
logging {
|
||||
type = "json-file"
|
||||
driver = "json-file-driver"
|
||||
type = "json-file"
|
||||
config {
|
||||
"max-file" = "3"
|
||||
"max-size" = "10m"
|
||||
@@ -308,7 +309,8 @@ config {
|
||||
},
|
||||
LoadImage: "/tmp/image.tar.gz",
|
||||
Logging: DockerLogging{
|
||||
Type: "json-file",
|
||||
Driver: "json-file-driver",
|
||||
Type: "json-file",
|
||||
Config: map[string]string{
|
||||
"max-file": "3",
|
||||
"max-size": "10m",
|
||||
|
||||
@@ -706,8 +706,13 @@ func (d *Driver) createContainerConfig(task *drivers.TaskConfig, driverConfig *T
|
||||
hostConfig.MemorySwap = task.Resources.LinuxResources.MemoryLimitBytes // MemorySwap is memory + swap.
|
||||
}
|
||||
|
||||
loggingDriver := driverConfig.Logging.Type
|
||||
if loggingDriver == "" {
|
||||
loggingDriver = driverConfig.Logging.Driver
|
||||
}
|
||||
|
||||
hostConfig.LogConfig = docker.LogConfig{
|
||||
Type: driverConfig.Logging.Type,
|
||||
Type: loggingDriver,
|
||||
Config: driverConfig.Logging.Config,
|
||||
}
|
||||
|
||||
|
||||
@@ -930,6 +930,52 @@ func TestDockerDriver_CreateContainerConfig(t *testing.T) {
|
||||
require.EqualValues(t, opt, c.HostConfig.StorageOpt)
|
||||
}
|
||||
|
||||
func TestDockerDriver_CreateContainerConfig_Logging(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
cases := []struct {
|
||||
name string
|
||||
loggingConfig DockerLogging
|
||||
expectedDriver string
|
||||
}{
|
||||
{
|
||||
"simple type",
|
||||
DockerLogging{Type: "fluentd"},
|
||||
"fluentd",
|
||||
},
|
||||
{
|
||||
"simple driver",
|
||||
DockerLogging{Driver: "fluentd"},
|
||||
"fluentd",
|
||||
},
|
||||
{
|
||||
"type takes precedence",
|
||||
DockerLogging{
|
||||
Type: "json-file",
|
||||
Driver: "fluentd",
|
||||
},
|
||||
"json-file",
|
||||
},
|
||||
}
|
||||
|
||||
for _, c := range cases {
|
||||
t.Run(c.name, func(t *testing.T) {
|
||||
task, cfg, _ := dockerTask(t)
|
||||
|
||||
cfg.Logging = c.loggingConfig
|
||||
require.NoError(t, task.EncodeConcreteDriverConfig(cfg))
|
||||
|
||||
dh := dockerDriverHarness(t, nil)
|
||||
driver := dh.Impl().(*Driver)
|
||||
|
||||
cc, err := driver.createContainerConfig(task, cfg, "org/repo:0.1")
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, c.expectedDriver, cc.HostConfig.LogConfig.Type)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestDockerDriver_CreateContainerConfigWithRuntimes(t *testing.T) {
|
||||
if !tu.IsCI() {
|
||||
t.Parallel()
|
||||
|
||||
Reference in New Issue
Block a user