diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-09-15 12:21:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-15 12:21:10 +0200 |
commit | 3f6045ce20f02257bcab7a51bcd884a5321ca7db (patch) | |
tree | c607aa432ee9148f209912266ec6244e4bf29b46 /libpod/rootless_cni_linux.go | |
parent | 3b4ad9a81d7c2d194f4d3f2686d47d78857b65d7 (diff) | |
parent | 155d43631eb9ddadee6f2f277436e35c6ef58406 (diff) | |
download | podman-3f6045ce20f02257bcab7a51bcd884a5321ca7db.tar.gz podman-3f6045ce20f02257bcab7a51bcd884a5321ca7db.tar.bz2 podman-3f6045ce20f02257bcab7a51bcd884a5321ca7db.zip |
Merge pull request #7625 from vrothberg/fix-7617
move `rootless-cni-infra` image to quay.io
Diffstat (limited to 'libpod/rootless_cni_linux.go')
-rw-r--r-- | libpod/rootless_cni_linux.go | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/libpod/rootless_cni_linux.go b/libpod/rootless_cni_linux.go index 76dbfdcae..31097dd16 100644 --- a/libpod/rootless_cni_linux.go +++ b/libpod/rootless_cni_linux.go @@ -13,6 +13,7 @@ import ( "github.com/containernetworking/plugins/pkg/ns" "github.com/containers/podman/v2/libpod/define" "github.com/containers/podman/v2/libpod/image" + "github.com/containers/podman/v2/pkg/env" "github.com/containers/podman/v2/pkg/util" "github.com/containers/storage/pkg/lockfile" "github.com/hashicorp/go-multierror" @@ -22,10 +23,9 @@ import ( "github.com/sirupsen/logrus" ) +// Built from ../contrib/rootless-cni-infra. var rootlessCNIInfraImage = map[string]string{ - // Built from ../contrib/rootless-cni-infra - // TODO: move to Podman's official quay - "amd64": "ghcr.io/akihirosuda/podman-rootless-cni-infra:gd34868a13-amd64", + "amd64": "quay.io/libpod/rootless-cni-infra@sha256:8aa681c4c08dee3ec5d46ff592fddd0259a35626717006d6b77ee786b1d02967", // 1-amd64 } const ( @@ -258,9 +258,23 @@ func startRootlessCNIInfraContainer(ctx context.Context, r *Runtime) (*Container Options: []string{"ro"}, } g.AddMount(etcCNINetD) - // FIXME: how to propagate ProcessArgs and Envs from Dockerfile? - g.SetProcessArgs([]string{"sleep", "infinity"}) - g.AddProcessEnv("CNI_PATH", "/opt/cni/bin") + + inspectData, err := newImage.Inspect(ctx) + if err != nil { + return nil, err + } + imageEnv, err := env.ParseSlice(inspectData.Config.Env) + if err != nil { + return nil, err + } + for k, v := range imageEnv { + g.AddProcessEnv(k, v) + } + if len(inspectData.Config.Cmd) == 0 { + return nil, errors.Errorf("rootless CNI infra image %q has no command specified", imageName) + } + g.SetProcessArgs(inspectData.Config.Cmd) + var options []CtrCreateOption options = append(options, WithRootFSFromImage(newImage.ID(), imageName, imageName)) options = append(options, WithCtrNamespace(rootlessCNIInfraContainerNamespace)) |