mirror of
https://github.com/containers/podman.git
synced 2025-06-24 19:42:56 +08:00
play kube: don't force-pull infra image
Do not force-pull the infra image in `play kube` but let the backend take care of that when creating the pod(s) which may build a local `podman-pause` image instead of using the default infra image. Fixes: #12254 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
This commit is contained in:
@ -269,17 +269,11 @@ func (ic *ContainerEngine) playKubePod(ctx context.Context, podName string, podY
|
||||
}
|
||||
|
||||
if podOpt.Infra {
|
||||
containerConfig := util.DefaultContainerConfig()
|
||||
|
||||
pulledImages, err := pullImage(ic, writer, containerConfig.Engine.InfraImage, options, config.PullPolicyNewer)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
infraImage := util.DefaultContainerConfig().Engine.InfraImage
|
||||
infraOptions := entities.ContainerCreateOptions{ImageVolume: "bind"}
|
||||
|
||||
podSpec.PodSpecGen.InfraImage = pulledImages[0].Names()[0]
|
||||
podSpec.PodSpecGen.InfraImage = infraImage
|
||||
podSpec.PodSpecGen.NoInfra = false
|
||||
podSpec.PodSpecGen.InfraContainerSpec = specgen.NewSpecGenerator(pulledImages[0].Names()[0], false)
|
||||
podSpec.PodSpecGen.InfraContainerSpec = specgen.NewSpecGenerator(infraImage, false)
|
||||
podSpec.PodSpecGen.InfraContainerSpec.NetworkOptions = p.NetworkOptions
|
||||
|
||||
err = specgenutil.FillOutSpecGen(podSpec.PodSpecGen.InfraContainerSpec, &infraOptions, []string{})
|
||||
@ -758,21 +752,3 @@ func (ic *ContainerEngine) PlayKubeDown(ctx context.Context, path string, _ enti
|
||||
}
|
||||
return reports, nil
|
||||
}
|
||||
|
||||
// pullImage is a helper function to set up the proper pull options and pull the image for certain containers
|
||||
func pullImage(ic *ContainerEngine, writer io.Writer, imagePull string, options entities.PlayKubeOptions, pullPolicy config.PullPolicy) ([]*libimage.Image, error) {
|
||||
// This ensures the image is the image store
|
||||
pullOptions := &libimage.PullOptions{}
|
||||
pullOptions.AuthFilePath = options.Authfile
|
||||
pullOptions.CertDirPath = options.CertDir
|
||||
pullOptions.SignaturePolicyPath = options.SignaturePolicy
|
||||
pullOptions.Writer = writer
|
||||
pullOptions.Username = options.Username
|
||||
pullOptions.Password = options.Password
|
||||
pullOptions.InsecureSkipTLSVerify = options.SkipTLSVerify
|
||||
pulledImages, err := ic.Libpod.LibimageRuntime().Pull(context.Background(), imagePull, pullPolicy, pullOptions)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return pulledImages, nil
|
||||
}
|
||||
|
@ -76,6 +76,12 @@ RELABEL="system_u:object_r:container_file_t:s0"
|
||||
is "$output" "${RELABEL} $TESTDIR" "selinux relabel should have happened"
|
||||
fi
|
||||
|
||||
# Make sure that the K8s pause image isn't pulled but the local podman-pause is built.
|
||||
run_podman images
|
||||
run_podman 1 image exists k8s.gcr.io/pause
|
||||
run_podman version --format "{{.Server.Version}}-{{.Server.Built}}"
|
||||
run_podman image exists localhost/podman-pause:$output
|
||||
|
||||
run_podman stop -a -t 0
|
||||
run_podman pod rm -t 0 -f test_pod
|
||||
}
|
||||
|
Reference in New Issue
Block a user