libpod: Detect whether we have a private UTS namespace on FreeBSD
Right now, we always use a private UTS namespace on FreeBSD. This should be made optional but implementing that cleanly needs a FreeBSD extension to the OCI runtime config. The process for that is starting (https://github.com/opencontainers/tob/pull/133) but in the meantime, assume that the UTS namespace is private on FreeBSD. This moves the Linux-specific namespace logic to container_internal_linux.go and adds a FreeBSD stub. [NO NEW TESTS NEEDED] Signed-off-by: Doug Rabson <dfr@rabson.org>
This commit is contained in:
parent
d3d9293b2a
commit
45e53ed7b0
|
|
@ -688,15 +688,7 @@ func (c *Container) Hostname() string {
|
|||
|
||||
// if the container is not running in a private UTS namespace,
|
||||
// return the host's hostname.
|
||||
privateUTS := false
|
||||
if c.config.Spec.Linux != nil {
|
||||
for _, ns := range c.config.Spec.Linux.Namespaces {
|
||||
if ns.Type == spec.UTSNamespace {
|
||||
privateUTS = true
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
privateUTS := c.hasPrivateUTS()
|
||||
if !privateUTS {
|
||||
hostname, err := os.Hostname()
|
||||
if err == nil {
|
||||
|
|
|
|||
|
|
@ -392,3 +392,10 @@ func (c *Container) getPlatformRunPath() (string, error) {
|
|||
func (c *Container) addMaskedPaths(g *generate.Generator) {
|
||||
// There are currently no FreeBSD-specific masked paths
|
||||
}
|
||||
|
||||
func (c *Container) hasPrivateUTS() bool {
|
||||
// Currently we always use a private UTS namespace on FreeBSD. This
|
||||
// should be optional but needs a FreeBSD section in the OCI runtime
|
||||
// specification.
|
||||
return true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -811,3 +811,16 @@ func (c *Container) addMaskedPaths(g *generate.Generator) {
|
|||
g.AddLinuxMaskedPaths("/sys/devices/virtual/powercap")
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Container) hasPrivateUTS() bool {
|
||||
privateUTS := false
|
||||
if c.config.Spec.Linux != nil {
|
||||
for _, ns := range c.config.Spec.Linux.Namespaces {
|
||||
if ns.Type == spec.UTSNamespace {
|
||||
privateUTS = true
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
return privateUTS
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue