mirror of
https://github.com/containers/podman.git
synced 2025-06-28 14:29:04 +08:00
pod create: remove need for pause image
So far, the infra containers of pods required pulling down an image rendering pods not usable in disconnected environments. Instead, build an image locally which uses local pause binary. Fixes: #10354 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
This commit is contained in:
@ -11,6 +11,7 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/containers/common/pkg/config"
|
||||
"github.com/containers/podman/v3/libpod/define"
|
||||
"github.com/containers/podman/v3/libpod/network/types"
|
||||
"github.com/containers/podman/v3/pkg/env"
|
||||
@ -468,11 +469,23 @@ func containerToV1Container(ctx context.Context, c *Container) (v1.Container, []
|
||||
|
||||
kubeContainer.Name = removeUnderscores(c.Name())
|
||||
_, image := c.Image()
|
||||
|
||||
// The infra container may have been created with an overlay root FS
|
||||
// instead of an infra image. If so, set the imageto the default K8s
|
||||
// pause one and make sure it's in the storage by pulling it down if
|
||||
// missing.
|
||||
if image == "" && c.IsInfra() {
|
||||
image = config.DefaultInfraImage
|
||||
if _, err := c.runtime.libimageRuntime.Pull(ctx, image, config.PullPolicyMissing, nil); err != nil {
|
||||
return kubeContainer, nil, nil, nil, err
|
||||
}
|
||||
}
|
||||
|
||||
kubeContainer.Image = image
|
||||
kubeContainer.Stdin = c.Stdin()
|
||||
img, _, err := c.runtime.libimageRuntime.LookupImage(image, nil)
|
||||
if err != nil {
|
||||
return kubeContainer, kubeVolumes, nil, annotations, err
|
||||
return kubeContainer, kubeVolumes, nil, annotations, fmt.Errorf("looking up image %q of container %q: %w", image, c.ID(), err)
|
||||
}
|
||||
imgData, err := img.Inspect(ctx, nil)
|
||||
if err != nil {
|
||||
|
Reference in New Issue
Block a user