Switch eventlogger to journald by default

[NO TESTS NEEDED] Since we are just testing the default.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
Daniel J Walsh 2021-08-04 15:24:29 -04:00 committed by Nalin Dahyabhai
parent d1137664fe
commit 6b06e9b77c
14 changed files with 112 additions and 31 deletions

2
go.mod
View File

@ -12,7 +12,7 @@ require (
github.com/containernetworking/cni v0.8.1 github.com/containernetworking/cni v0.8.1
github.com/containernetworking/plugins v0.9.1 github.com/containernetworking/plugins v0.9.1
github.com/containers/buildah v1.22.3 github.com/containers/buildah v1.22.3
github.com/containers/common v0.42.1 github.com/containers/common v0.43.0
github.com/containers/conmon v2.0.20+incompatible github.com/containers/conmon v2.0.20+incompatible
github.com/containers/image/v5 v5.15.2 github.com/containers/image/v5 v5.15.2
github.com/containers/ocicrypt v1.1.2 github.com/containers/ocicrypt v1.1.2

9
go.sum
View File

@ -240,11 +240,13 @@ github.com/containernetworking/plugins v0.9.1 h1:FD1tADPls2EEi3flPc2OegIY1M9pUa9
github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8= github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8=
github.com/containers/buildah v1.22.3 h1:RomxwUa24jMcqzXQetpw4wGMfNlNZLhc9qwyoWHblwc= github.com/containers/buildah v1.22.3 h1:RomxwUa24jMcqzXQetpw4wGMfNlNZLhc9qwyoWHblwc=
github.com/containers/buildah v1.22.3/go.mod h1:JVXRyx5Rkp5w5jwvaXe45kuHtyoxpERMjXrR45+3Wfg= github.com/containers/buildah v1.22.3/go.mod h1:JVXRyx5Rkp5w5jwvaXe45kuHtyoxpERMjXrR45+3Wfg=
github.com/containers/common v0.42.1 h1:ADOZrVAS8ZY5hBAvr/GoRoPv5Z7TBkxWgxQEXQjlqac=
github.com/containers/common v0.42.1/go.mod h1:AaF3ipZfgezsctDuhzLkq4Vl+LkEy7J74ikh2HSXDsg= github.com/containers/common v0.42.1/go.mod h1:AaF3ipZfgezsctDuhzLkq4Vl+LkEy7J74ikh2HSXDsg=
github.com/containers/common v0.43.0 h1:CeDdfhLyPfsG6TAKJneT/4RWOhHfWF2Yv+Wz6SuMusU=
github.com/containers/common v0.43.0/go.mod h1:BAoVyRYlxKZKAYpHcFMdrXlIZyzbJp9NwKTgadTd/Dg=
github.com/containers/conmon v2.0.20+incompatible h1:YbCVSFSCqFjjVwHTPINGdMX1F6JXHGTUje2ZYobNrkg= github.com/containers/conmon v2.0.20+incompatible h1:YbCVSFSCqFjjVwHTPINGdMX1F6JXHGTUje2ZYobNrkg=
github.com/containers/conmon v2.0.20+incompatible/go.mod h1:hgwZ2mtuDrppv78a/cOBNiCm6O0UMWGx1mu7P00nu5I= github.com/containers/conmon v2.0.20+incompatible/go.mod h1:hgwZ2mtuDrppv78a/cOBNiCm6O0UMWGx1mu7P00nu5I=
github.com/containers/image/v5 v5.14.0/go.mod h1:SxiBKOcKuT+4yTjD0AskjO+UwFvNcVOJ9qlAw1HNSPU= github.com/containers/image/v5 v5.14.0/go.mod h1:SxiBKOcKuT+4yTjD0AskjO+UwFvNcVOJ9qlAw1HNSPU=
github.com/containers/image/v5 v5.15.0/go.mod h1:gzdBcooi6AFdiqfzirUqv90hUyHyI0MMdaqKzACKr2s=
github.com/containers/image/v5 v5.15.2 h1:DKicmVr0h1HGkzs9muoErX+fVbV9sV9W5TyMy5perLE= github.com/containers/image/v5 v5.15.2 h1:DKicmVr0h1HGkzs9muoErX+fVbV9sV9W5TyMy5perLE=
github.com/containers/image/v5 v5.15.2/go.mod h1:8jejVSzTDfyPwr/HXp9rri34n/vbdavYk6IzTiB3TBw= github.com/containers/image/v5 v5.15.2/go.mod h1:8jejVSzTDfyPwr/HXp9rri34n/vbdavYk6IzTiB3TBw=
github.com/containers/libtrust v0.0.0-20190913040956-14b96171aa3b h1:Q8ePgVfHDplZ7U33NwHZkrVELsZP5fYj9pM5WBZB2GE= github.com/containers/libtrust v0.0.0-20190913040956-14b96171aa3b h1:Q8ePgVfHDplZ7U33NwHZkrVELsZP5fYj9pM5WBZB2GE=
@ -258,7 +260,9 @@ github.com/containers/psgo v1.5.2 h1:3aoozst/GIwsrr/5jnFy3FrJay98uujPCu9lTuSZ/Cw
github.com/containers/psgo v1.5.2/go.mod h1:2ubh0SsreMZjSXW1Hif58JrEcFudQyIy9EzPUWfawVU= github.com/containers/psgo v1.5.2/go.mod h1:2ubh0SsreMZjSXW1Hif58JrEcFudQyIy9EzPUWfawVU=
github.com/containers/storage v1.23.5/go.mod h1:ha26Q6ngehFNhf3AWoXldvAvwI4jFe3ETQAf/CeZPyM= github.com/containers/storage v1.23.5/go.mod h1:ha26Q6ngehFNhf3AWoXldvAvwI4jFe3ETQAf/CeZPyM=
github.com/containers/storage v1.32.6/go.mod h1:mdB+b89p+jU8zpzLTVXA0gWMmIo0WrkfGMh1R8O2IQw= github.com/containers/storage v1.32.6/go.mod h1:mdB+b89p+jU8zpzLTVXA0gWMmIo0WrkfGMh1R8O2IQw=
github.com/containers/storage v1.33.0/go.mod h1:FUZPF4nJijX8ixdhByZJXf02cvbyLi6dyDwXdIe8QVY=
github.com/containers/storage v1.33.1/go.mod h1:FUZPF4nJijX8ixdhByZJXf02cvbyLi6dyDwXdIe8QVY= github.com/containers/storage v1.33.1/go.mod h1:FUZPF4nJijX8ixdhByZJXf02cvbyLi6dyDwXdIe8QVY=
github.com/containers/storage v1.34.0/go.mod h1:t6I+hTgPU0/tVxQ75vw406wDi/TXwYBqZp4QZV9N7b8=
github.com/containers/storage v1.34.1 h1:PsBGMH7hwuQ3MOr7qTgPznFrE8ebfIbwQbg2gKvg0lE= github.com/containers/storage v1.34.1 h1:PsBGMH7hwuQ3MOr7qTgPznFrE8ebfIbwQbg2gKvg0lE=
github.com/containers/storage v1.34.1/go.mod h1:FY2TcbfgCLMU4lYoKnlZeZXeH353TOTbpDEA+sAcqAY= github.com/containers/storage v1.34.1/go.mod h1:FY2TcbfgCLMU4lYoKnlZeZXeH353TOTbpDEA+sAcqAY=
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
@ -582,6 +586,7 @@ github.com/klauspost/compress v1.11.0/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs
github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
github.com/klauspost/compress v1.13.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
github.com/klauspost/compress v1.13.4 h1:0zhec2I8zGnjWcKyLl6i3gPqKANCCn5e9xmviEEeX6s= github.com/klauspost/compress v1.13.4 h1:0zhec2I8zGnjWcKyLl6i3gPqKANCCn5e9xmviEEeX6s=
github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE= github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE=
@ -713,6 +718,7 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y
github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc=
github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48= github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48=
github.com/onsi/gomega v1.14.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= github.com/onsi/gomega v1.14.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0=
github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0=
github.com/onsi/gomega v1.16.0 h1:6gjqkI8iiRHMvdccRJM8rVKjCWk6ZIm6FTm3ddIe4/c= github.com/onsi/gomega v1.16.0 h1:6gjqkI8iiRHMvdccRJM8rVKjCWk6ZIm6FTm3ddIe4/c=
github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
@ -751,6 +757,7 @@ github.com/opencontainers/selinux v1.5.1/go.mod h1:yTcKuYAh6R95iDpefGLQaPaRwJFwy
github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE=
github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo=
github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8= github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8=
github.com/opencontainers/selinux v1.8.3/go.mod h1:HTvjPFoGMbpQsG886e3lQwnsRWtE4TC1OF3OUvG9FAo=
github.com/opencontainers/selinux v1.8.4 h1:krlgQ6/j9CkCXT5oW0yVXdQFOME3NjKuuAZXuR6O7P4= github.com/opencontainers/selinux v1.8.4 h1:krlgQ6/j9CkCXT5oW0yVXdQFOME3NjKuuAZXuR6O7P4=
github.com/opencontainers/selinux v1.8.4/go.mod h1:HTvjPFoGMbpQsG886e3lQwnsRWtE4TC1OF3OUvG9FAo= github.com/opencontainers/selinux v1.8.4/go.mod h1:HTvjPFoGMbpQsG886e3lQwnsRWtE4TC1OF3OUvG9FAo=
github.com/openshift/imagebuilder v1.2.2-0.20210415181909-87f3e48c2656 h1:WaxyNFpmIDu4i6so9r6LVFIbSaXqsj8oitMitt86ae4= github.com/openshift/imagebuilder v1.2.2-0.20210415181909-87f3e48c2656 h1:WaxyNFpmIDu4i6so9r6LVFIbSaXqsj8oitMitt86ae4=

View File

@ -12,6 +12,7 @@ import (
"github.com/containers/podman/v3/libpod/define" "github.com/containers/podman/v3/libpod/define"
"github.com/containers/podman/v3/libpod/events" "github.com/containers/podman/v3/libpod/events"
"github.com/containers/podman/v3/libpod/logs" "github.com/containers/podman/v3/libpod/logs"
"github.com/coreos/go-systemd/v22/journal"
"github.com/coreos/go-systemd/v22/sdjournal" "github.com/coreos/go-systemd/v22/sdjournal"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
@ -29,6 +30,17 @@ func init() {
logDrivers = append(logDrivers, define.JournaldLogging) logDrivers = append(logDrivers, define.JournaldLogging)
} }
// initializeJournal will write an empty string to the journal
// when a journal is created. This solves a problem when people
// attempt to read logs from a container that has never had stdout/stderr
func (c *Container) initializeJournal(ctx context.Context) error {
m := make(map[string]string)
m["SYSLOG_IDENTIFIER"] = "podman"
m["PODMAN_ID"] = c.ID()
m["CONTAINER_ID_FULL"] = c.ID()
return journal.Send("", journal.PriInfo, m)
}
func (c *Container) readFromJournal(ctx context.Context, options *logs.LogOptions, logChannel chan *logs.LogLine) error { func (c *Container) readFromJournal(ctx context.Context, options *logs.LogOptions, logChannel chan *logs.LogLine) error {
journal, err := sdjournal.NewJournal() journal, err := sdjournal.NewJournal()
if err != nil { if err != nil {
@ -63,12 +75,12 @@ func (c *Container) readFromJournal(ctx context.Context, options *logs.LogOption
} }
// API requires Next() immediately after SeekHead(). // API requires Next() immediately after SeekHead().
if _, err := journal.Next(); err != nil { if _, err := journal.Next(); err != nil {
return errors.Wrap(err, "initial journal cursor") return errors.Wrap(err, "next journal")
} }
// API requires a next|prev before getting a cursor. // API requires a next|prev before getting a cursor.
if _, err := journal.Previous(); err != nil { if _, err := journal.Previous(); err != nil {
return errors.Wrap(err, "initial journal cursor") return errors.Wrap(err, "previous journal")
} }
// Note that the initial cursor may not yet be ready, so we'll do an // Note that the initial cursor may not yet be ready, so we'll do an

View File

@ -13,3 +13,7 @@ import (
func (c *Container) readFromJournal(_ context.Context, _ *logs.LogOptions, _ chan *logs.LogLine) error { func (c *Container) readFromJournal(_ context.Context, _ *logs.LogOptions, _ chan *logs.LogLine) error {
return errors.Wrapf(define.ErrOSNotSupported, "Journald logging only enabled with systemd on linux") return errors.Wrapf(define.ErrOSNotSupported, "Journald logging only enabled with systemd on linux")
} }
func (c *Container) initializeJournal(ctx context.Context) error {
return errors.Wrapf(define.ErrOSNotSupported, "Journald logging only enabled with systemd on linux")
}

View File

@ -462,8 +462,15 @@ func (r *Runtime) setupContainer(ctx context.Context, ctr *Container) (_ *Contai
ctrNamedVolumes = append(ctrNamedVolumes, newVol) ctrNamedVolumes = append(ctrNamedVolumes, newVol)
} }
if ctr.config.LogPath == "" && ctr.config.LogDriver != define.JournaldLogging && ctr.config.LogDriver != define.NoLogging { switch ctr.config.LogDriver {
ctr.config.LogPath = filepath.Join(ctr.config.StaticDir, "ctr.log") case define.NoLogging:
break
case define.JournaldLogging:
ctr.initializeJournal(ctx)
default:
if ctr.config.LogPath == "" {
ctr.config.LogPath = filepath.Join(ctr.config.StaticDir, "ctr.log")
}
} }
if !MountExists(ctr.config.Spec.Mounts, "/dev/shm") && ctr.config.ShmDir == "" { if !MountExists(ctr.config.Spec.Mounts, "/dev/shm") && ctr.config.ShmDir == "" {

View File

@ -448,14 +448,24 @@ func (i *Image) removeRecursive(ctx context.Context, rmMap map[string]*RemoveIma
return parent.removeRecursive(ctx, rmMap, processedIDs, "", options) return parent.removeRecursive(ctx, rmMap, processedIDs, "", options)
} }
var errTagDigest = errors.New("tag by digest not supported")
// Tag the image with the specified name and store it in the local containers // Tag the image with the specified name and store it in the local containers
// storage. The name is normalized according to the rules of NormalizeName. // storage. The name is normalized according to the rules of NormalizeName.
func (i *Image) Tag(name string) error { func (i *Image) Tag(name string) error {
if strings.HasPrefix(name, "sha256:") { // ambiguous input
return errors.Wrap(errTagDigest, name)
}
ref, err := NormalizeName(name) ref, err := NormalizeName(name)
if err != nil { if err != nil {
return errors.Wrapf(err, "error normalizing name %q", name) return errors.Wrapf(err, "error normalizing name %q", name)
} }
if _, isDigested := ref.(reference.Digested); isDigested {
return errors.Wrap(errTagDigest, name)
}
logrus.Debugf("Tagging image %s with %q", i.ID(), ref.String()) logrus.Debugf("Tagging image %s with %q", i.ID(), ref.String())
if i.runtime.eventChannel != nil { if i.runtime.eventChannel != nil {
defer i.runtime.writeEvent(&Event{ID: i.ID(), Name: name, Time: time.Now(), Type: EventTypeImageTag}) defer i.runtime.writeEvent(&Event{ID: i.ID(), Name: name, Time: time.Now(), Type: EventTypeImageTag})
@ -480,7 +490,7 @@ var errUntagDigest = errors.New("untag by digest not supported")
// the local containers storage. The name is normalized according to the rules // the local containers storage. The name is normalized according to the rules
// of NormalizeName. // of NormalizeName.
func (i *Image) Untag(name string) error { func (i *Image) Untag(name string) error {
if strings.HasPrefix(name, "sha256:") { if strings.HasPrefix(name, "sha256:") { // ambiguous input
return errors.Wrap(errUntagDigest, name) return errors.Wrap(errUntagDigest, name)
} }
@ -488,6 +498,11 @@ func (i *Image) Untag(name string) error {
if err != nil { if err != nil {
return errors.Wrapf(err, "error normalizing name %q", name) return errors.Wrapf(err, "error normalizing name %q", name)
} }
if _, isDigested := ref.(reference.Digested); isDigested {
return errors.Wrap(errUntagDigest, name)
}
name = ref.String() name = ref.String()
logrus.Debugf("Untagging %q from image %s", ref.String(), i.ID()) logrus.Debugf("Untagging %q from image %s", ref.String(), i.ID())

View File

@ -104,7 +104,6 @@ func Login(ctx context.Context, systemContext *types.SystemContext, opts *LoginO
return errors.Wrap(err, "get credentials for repository") return errors.Wrap(err, "get credentials for repository")
} }
} else { } else {
// nolint: staticcheck
authConfig, err = config.GetCredentials(systemContext, registry) authConfig, err = config.GetCredentials(systemContext, registry)
if err != nil { if err != nil {
return errors.Wrap(err, "get credentials") return errors.Wrap(err, "get credentials")
@ -321,7 +320,6 @@ func Logout(systemContext *types.SystemContext, opts *LogoutOptions, args []stri
return errors.Wrap(err, "get credentials for repository") return errors.Wrap(err, "get credentials for repository")
} }
} else { } else {
// nolint: staticcheck
authConfig, err = config.GetCredentials(systemContext, registry) authConfig, err = config.GetCredentials(systemContext, registry)
if err != nil { if err != nil {
return errors.Wrap(err, "get credentials") return errors.Wrap(err, "get credentials")

View File

@ -274,6 +274,9 @@ type EngineConfig struct {
// MachineEnabled indicates if Podman is running in a podman-machine VM // MachineEnabled indicates if Podman is running in a podman-machine VM
MachineEnabled bool `toml:"machine_enabled,omitempty"` MachineEnabled bool `toml:"machine_enabled,omitempty"`
// MachineImage is the image used when creating a podman-machine VM
MachineImage string `toml:"machine_image,omitempty"`
// MultiImageArchive - if true, the container engine allows for storing // MultiImageArchive - if true, the container engine allows for storing
// archives (e.g., of the docker-archive transport) with multiple // archives (e.g., of the docker-archive transport) with multiple
// images. By default, Podman creates single-image archives. // images. By default, Podman creates single-image archives.
@ -691,8 +694,8 @@ func (c *Config) Validate() error {
} }
func (c *EngineConfig) findRuntime() string { func (c *EngineConfig) findRuntime() string {
// Search for crun first followed by runc and kata // Search for crun first followed by runc, kata, runsc
for _, name := range []string{"crun", "runc", "kata"} { for _, name := range []string{"crun", "runc", "kata", "runsc"} {
for _, v := range c.OCIRuntimes[name] { for _, v := range c.OCIRuntimes[name] {
if _, err := os.Stat(v); err == nil { if _, err := os.Stat(v); err == nil {
return name return name

View File

@ -60,23 +60,23 @@ default_capabilities = [
] ]
# A list of sysctls to be set in containers by default, # A list of sysctls to be set in containers by default,
# specified as "name=value", # specified as "name = value",
# for example:"net.ipv4.ping_group_range = 0 0". # for example:"net.ipv4.ping_group_range = 0 0".
# #
default_sysctls = [ default_sysctls = [
"net.ipv4.ping_group_range=0 0", "net.ipv4.ping_group_range = 0 0",
] ]
# A list of ulimits to be set in containers by default, specified as # A list of ulimits to be set in containers by default, specified as
# "<ulimit name>=<soft limit>:<hard limit>", for example: # "<ulimit name> = <soft limit>:<hard limit>", for example:
# "nofile=1024:2048" # "nofile = 1024:2048"
# See setrlimit(2) for a list of resource names. # See setrlimit(2) for a list of resource names.
# Any limit not specified here will be inherited from the process launching the # Any limit not specified here will be inherited from the process launching the
# container engine. # container engine.
# Ulimits has limits for non privileged container engines. # Ulimits has limits for non privileged container engines.
# #
#default_ulimits = [ #default_ulimits = [
# "nofile=1280:2560", # "nofile = 1280:2560",
#] #]
# List of devices. Specified as # List of devices. Specified as
@ -381,6 +381,9 @@ default_sysctls = [
# #
#machine_enabled = false #machine_enabled = false
# The image used when creating a podman-machine VM.
# machine_image = "testing"
# MultiImageArchive - if true, the container engine allows for storing archives # MultiImageArchive - if true, the container engine allows for storing archives
# (e.g., of the docker-archive transport) with multiple images. By default, # (e.g., of the docker-archive transport) with multiple images. By default,
# Podman creates single-image archives. # Podman creates single-image archives.

View File

@ -105,8 +105,6 @@ const (
DefaultApparmorProfile = apparmor.Profile DefaultApparmorProfile = apparmor.Profile
// SystemdCgroupsManager represents systemd native cgroup manager // SystemdCgroupsManager represents systemd native cgroup manager
SystemdCgroupsManager = "systemd" SystemdCgroupsManager = "systemd"
// DefaultLogDriver is the default type of log files
DefaultLogDriver = "k8s-file"
// DefaultLogSizeMax is the default value for the maximum log size // DefaultLogSizeMax is the default value for the maximum log size
// allowed for a container. Negative values mean that no limit is imposed. // allowed for a container. Negative values mean that no limit is imposed.
DefaultLogSizeMax = -1 DefaultLogSizeMax = -1
@ -339,6 +337,7 @@ func defaultConfigFromMemory() (*EngineConfig, error) {
// constants. // constants.
c.LockType = "shm" c.LockType = "shm"
c.MachineEnabled = false c.MachineEnabled = false
c.MachineImage = "testing"
c.ChownCopiedFiles = true c.ChownCopiedFiles = true
@ -549,6 +548,7 @@ func (c *Config) LogDriver() string {
return c.Containers.LogDriver return c.Containers.LogDriver
} }
// MachineEnabled returns if podman is running inside a VM or not
func (c *Config) MachineEnabled() bool { func (c *Config) MachineEnabled() bool {
return c.Engine.MachineEnabled return c.Engine.MachineEnabled
} }
@ -558,3 +558,9 @@ func (c *Config) MachineEnabled() bool {
func (c *Config) RootlessNetworking() string { func (c *Config) RootlessNetworking() string {
return c.Containers.RootlessNetworking return c.Containers.RootlessNetworking
} }
// MachineImage returns the image to be
// used when creating a podman-machine VM
func (c *Config) MachineImage() string {
return c.Engine.MachineImage
}

View File

@ -1,7 +1,12 @@
// +build !systemd // +build !systemd !cgo
package config package config
const (
// DefaultLogDriver is the default type of log files
DefaultLogDriver = "k8s-file"
)
func defaultCgroupManager() string { func defaultCgroupManager() string {
return CgroupfsCgroupsManager return CgroupfsCgroupsManager
} }

View File

@ -1,4 +1,4 @@
// +build systemd // +build systemd,cgo
package config package config
@ -9,11 +9,19 @@ import (
"github.com/containers/common/pkg/cgroupv2" "github.com/containers/common/pkg/cgroupv2"
"github.com/containers/storage/pkg/unshare" "github.com/containers/storage/pkg/unshare"
"github.com/coreos/go-systemd/v22/sdjournal"
) )
var ( var (
systemdOnce sync.Once systemdOnce sync.Once
usesSystemd bool usesSystemd bool
journaldOnce sync.Once
usesJournald bool
)
const (
// DefaultLogDriver is the default type of log files
DefaultLogDriver = "journald"
) )
func defaultCgroupManager() string { func defaultCgroupManager() string {
@ -29,20 +37,17 @@ func defaultCgroupManager() string {
} }
func defaultEventsLogger() string { func defaultEventsLogger() string {
if useSystemd() { if useJournald() {
return "journald" return "journald"
} }
return "file" return "file"
} }
func defaultLogDriver() string { func defaultLogDriver() string {
// If we decide to change the default for logdriver, it should be done here. if useJournald() {
if useSystemd() { return "journald"
return DefaultLogDriver
} }
return "k8s-file"
return DefaultLogDriver
} }
func useSystemd() bool { func useSystemd() bool {
@ -56,3 +61,19 @@ func useSystemd() bool {
}) })
return usesSystemd return usesSystemd
} }
func useJournald() bool {
journaldOnce.Do(func() {
if !useSystemd() {
return
}
journal, err := sdjournal.NewJournal()
if err != nil {
return
}
journal.Close()
usesJournald = true
return
})
return usesJournald
}

View File

@ -1,4 +1,4 @@
package version package version
// Version is the version of the build. // Version is the version of the build.
const Version = "0.42.1" const Version = "0.43.0"

2
vendor/modules.txt vendored
View File

@ -94,7 +94,7 @@ github.com/containers/buildah/pkg/overlay
github.com/containers/buildah/pkg/parse github.com/containers/buildah/pkg/parse
github.com/containers/buildah/pkg/rusage github.com/containers/buildah/pkg/rusage
github.com/containers/buildah/util github.com/containers/buildah/util
# github.com/containers/common v0.42.1 # github.com/containers/common v0.43.0
github.com/containers/common/libimage github.com/containers/common/libimage
github.com/containers/common/libimage/manifests github.com/containers/common/libimage/manifests
github.com/containers/common/pkg/apparmor github.com/containers/common/pkg/apparmor