mirror of https://github.com/containers/podman.git
Merge pull request #12271 from Luap99/play-kube-net
Fix network mode in play kube
This commit is contained in:
commit
78bc2390f4
|
|
@ -12,7 +12,6 @@ import (
|
|||
"github.com/containers/podman/v3/libpod"
|
||||
"github.com/containers/podman/v3/libpod/define"
|
||||
"github.com/containers/podman/v3/pkg/domain/entities"
|
||||
"github.com/containers/podman/v3/pkg/rootless"
|
||||
"github.com/containers/podman/v3/pkg/specgen"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
|
@ -216,15 +215,6 @@ func MapSpec(p *specgen.PodSpecGenerator) (*specgen.SpecGenerator, error) {
|
|||
logrus.Debugf("No networking because the infra container is missing")
|
||||
break
|
||||
}
|
||||
if rootless.IsRootless() {
|
||||
logrus.Debugf("Pod will use slirp4netns")
|
||||
if p.InfraContainerSpec.NetNS.NSMode != "host" {
|
||||
p.InfraContainerSpec.NetworkOptions = p.NetworkOptions
|
||||
p.InfraContainerSpec.NetNS.NSMode = specgen.NamespaceMode("slirp4netns")
|
||||
}
|
||||
} else {
|
||||
logrus.Debugf("Pod using bridge network mode")
|
||||
}
|
||||
case specgen.Bridge:
|
||||
p.InfraContainerSpec.NetNS.NSMode = specgen.Bridge
|
||||
logrus.Debugf("Pod using bridge network mode")
|
||||
|
|
@ -258,7 +248,6 @@ func MapSpec(p *specgen.PodSpecGenerator) (*specgen.SpecGenerator, error) {
|
|||
return nil, errors.Errorf("pods presently do not support network mode %s", p.NetNS.NSMode)
|
||||
}
|
||||
|
||||
libpod.WithPodCgroups()
|
||||
if len(p.InfraCommand) > 0 {
|
||||
p.InfraContainerSpec.Entrypoint = p.InfraCommand
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
[containers]
|
||||
|
||||
netns = "bridge"
|
||||
|
|
@ -2786,6 +2786,34 @@ invalid kube kind
|
|||
Expect(exists).To(Exit(0))
|
||||
})
|
||||
|
||||
It("podman play kube use network mode from config", func() {
|
||||
confPath, err := filepath.Abs("config/containers-netns2.conf")
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
os.Setenv("CONTAINERS_CONF", confPath)
|
||||
defer os.Unsetenv("CONTAINERS_CONF")
|
||||
if IsRemote() {
|
||||
podmanTest.RestartRemoteService()
|
||||
}
|
||||
|
||||
pod := getPod()
|
||||
err = generateKubeYaml("pod", pod, kubeYaml)
|
||||
Expect(err).To(BeNil())
|
||||
|
||||
kube := podmanTest.Podman([]string{"play", "kube", kubeYaml})
|
||||
kube.WaitWithDefaultTimeout()
|
||||
Expect(kube).Should(Exit(0))
|
||||
|
||||
podInspect := podmanTest.Podman([]string{"pod", "inspect", pod.Name, "--format", "{{.InfraContainerID}}"})
|
||||
podInspect.WaitWithDefaultTimeout()
|
||||
Expect(podInspect).To(Exit(0))
|
||||
infraID := podInspect.OutputToString()
|
||||
|
||||
inspect := podmanTest.Podman([]string{"inspect", "--format", "{{.HostConfig.NetworkMode}}", infraID})
|
||||
inspect.WaitWithDefaultTimeout()
|
||||
Expect(inspect).To(Exit(0))
|
||||
Expect(inspect.OutputToString()).To(Equal("bridge"))
|
||||
})
|
||||
|
||||
It("podman play kube replace", func() {
|
||||
pod := getPod()
|
||||
err := generateKubeYaml("pod", pod, kubeYaml)
|
||||
|
|
|
|||
Loading…
Reference in New Issue