Merge pull request #7152 from Luap99/fix#7087
fix pod creation with "new:" syntax
This commit is contained in:
commit
4c75fe3f70
|
@ -124,7 +124,7 @@ func create(cmd *cobra.Command, args []string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
if _, err := createPodIfNecessary(s); err != nil {
|
||||
if _, err := createPodIfNecessary(s, cliVals.Net); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -283,7 +283,7 @@ func openCidFile(cidfile string) (*os.File, error) {
|
|||
// createPodIfNecessary automatically creates a pod when requested. if the pod name
|
||||
// has the form new:ID, the pod ID is created and the name in the spec generator is replaced
|
||||
// with ID.
|
||||
func createPodIfNecessary(s *specgen.SpecGenerator) (*entities.PodCreateReport, error) {
|
||||
func createPodIfNecessary(s *specgen.SpecGenerator, netOpts *entities.NetOptions) (*entities.PodCreateReport, error) {
|
||||
if !strings.HasPrefix(s.Pod, "new:") {
|
||||
return nil, nil
|
||||
}
|
||||
|
@ -292,11 +292,10 @@ func createPodIfNecessary(s *specgen.SpecGenerator) (*entities.PodCreateReport,
|
|||
return nil, errors.Errorf("new pod name must be at least one character")
|
||||
}
|
||||
createOptions := entities.PodCreateOptions{
|
||||
Name: podName,
|
||||
Infra: true,
|
||||
Net: &entities.NetOptions{
|
||||
PublishPorts: s.PortMappings,
|
||||
},
|
||||
Name: podName,
|
||||
Infra: true,
|
||||
Net: netOpts,
|
||||
CreateCommand: os.Args,
|
||||
}
|
||||
s.Pod = podName
|
||||
return registry.ContainerEngine().PodCreate(context.Background(), createOptions)
|
||||
|
|
|
@ -176,7 +176,7 @@ func run(cmd *cobra.Command, args []string) error {
|
|||
}
|
||||
runOpts.Spec = s
|
||||
|
||||
if _, err := createPodIfNecessary(s); err != nil {
|
||||
if _, err := createPodIfNecessary(s, cliVals.Net); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
@ -462,6 +462,10 @@ func specConfigureNamespaces(s *specgen.SpecGenerator, g *generate.Generator, rt
|
|||
func GetNamespaceOptions(ns []string) ([]libpod.PodCreateOption, error) {
|
||||
var options []libpod.PodCreateOption
|
||||
var erroredOptions []libpod.PodCreateOption
|
||||
if ns == nil {
|
||||
//set the default namespaces
|
||||
ns = strings.Split(specgen.DefaultKernelNamespaces, ",")
|
||||
}
|
||||
for _, toShare := range ns {
|
||||
switch toShare {
|
||||
case "cgroup":
|
||||
|
|
|
@ -812,7 +812,11 @@ USER mail`
|
|||
})
|
||||
|
||||
It("podman run --pod automatically", func() {
|
||||
session := podmanTest.Podman([]string{"run", "--pod", "new:foobar", ALPINE, "ls"})
|
||||
session := podmanTest.Podman([]string{"run", "-d", "--pod", "new:foobar", ALPINE, "nc", "-l", "-p", "8080"})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
|
||||
session = podmanTest.Podman([]string{"run", "--pod", "foobar", ALPINE, "/bin/sh", "-c", "echo test | nc -w 1 127.0.0.1 8080"})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session.ExitCode()).To(Equal(0))
|
||||
|
||||
|
|
Loading…
Reference in New Issue