summaryrefslogtreecommitdiff
path: root/pkg/domain/infra
diff options
context:
space:
mode:
authorJhon Honce <jhonce@redhat.com>2020-04-15 10:12:30 -0700
committerJhon Honce <jhonce@redhat.com>2020-04-16 11:08:08 -0700
commit1d93d212541616135da23bcf01ca49180f113e62 (patch)
treee75553459f315d69904d6b1687a1423d0825e219 /pkg/domain/infra
parent5def21140038fc34cee9707d3069bf52adc24577 (diff)
downloadpodman-1d93d212541616135da23bcf01ca49180f113e62.tar.gz
podman-1d93d212541616135da23bcf01ca49180f113e62.tar.bz2
podman-1d93d212541616135da23bcf01ca49180f113e62.zip
V2 Enable rootless
* Enable running podman V2 rootless * Fixed cobra.PersistentPreRunE usage in all the commands * Leveraged cobra.PersistentPreRunE/cobra.PersistentPostRunE to manage: * rootless * trace (--trace) * profiling (--cpu-profile) * initializing the registry copies of Image/Container engines * Help and Usage templates autoset for all sub-commands Signed-off-by: Jhon Honce <jhonce@redhat.com>
Diffstat (limited to 'pkg/domain/infra')
-rw-r--r--pkg/domain/infra/abi/containers.go4
-rw-r--r--pkg/domain/infra/abi/system.go39
-rw-r--r--pkg/domain/infra/tunnel/system.go5
3 files changed, 11 insertions, 37 deletions
diff --git a/pkg/domain/infra/abi/containers.go b/pkg/domain/infra/abi/containers.go
index 4279fb756..c9df72f2d 100644
--- a/pkg/domain/infra/abi/containers.go
+++ b/pkg/domain/infra/abi/containers.go
@@ -668,9 +668,6 @@ func (ic *ContainerEngine) ContainerDiff(ctx context.Context, nameOrId string, o
}
func (ic *ContainerEngine) ContainerRun(ctx context.Context, opts entities.ContainerRunOptions) (*entities.ContainerRunReport, error) {
- var (
- joinPod bool
- )
if err := generate.CompleteSpec(ctx, ic.Libpod, opts.Spec); err != nil {
return nil, err
}
@@ -679,6 +676,7 @@ func (ic *ContainerEngine) ContainerRun(ctx context.Context, opts entities.Conta
return nil, err
}
+ var joinPod bool
if len(ctr.PodID()) > 0 {
joinPod = true
}
diff --git a/pkg/domain/infra/abi/system.go b/pkg/domain/infra/abi/system.go
index 10872144b..67593b2dd 100644
--- a/pkg/domain/infra/abi/system.go
+++ b/pkg/domain/infra/abi/system.go
@@ -100,7 +100,7 @@ func (ic *ContainerEngine) VarlinkService(_ context.Context, opts entities.Servi
return nil
}
-func (ic *ContainerEngine) SetupRootless(cmd *cobra.Command) error {
+func (ic *ContainerEngine) SetupRootless(_ context.Context, cmd *cobra.Command) error {
// do it only after podman has already re-execed and running with uid==0.
if os.Geteuid() == 0 {
ownsCgroup, err := cgroups.UserOwnsCurrentSystemdCgroup()
@@ -123,10 +123,6 @@ func (ic *ContainerEngine) SetupRootless(cmd *cobra.Command) error {
}
}
- if !executeCommandInUserNS(cmd) {
- return nil
- }
-
pausePidPath, err := util.GetRootlessPauseProcessPidPath()
if err != nil {
return errors.Wrapf(err, "could not get pause process pid file path")
@@ -143,7 +139,8 @@ func (ic *ContainerEngine) SetupRootless(cmd *cobra.Command) error {
// if there is no pid file, try to join existing containers, and create a pause process.
ctrs, err := ic.Libpod.GetRunningContainers()
if err != nil {
- logrus.WithError(err).Fatal("")
+ logrus.Error(err.Error())
+ os.Exit(1)
}
paths := []string{}
@@ -164,7 +161,8 @@ func (ic *ContainerEngine) SetupRootless(cmd *cobra.Command) error {
}
}
if err != nil {
- logrus.WithError(err).Fatal("")
+ logrus.Error(err)
+ os.Exit(1)
}
if became {
os.Exit(ret)
@@ -172,25 +170,6 @@ func (ic *ContainerEngine) SetupRootless(cmd *cobra.Command) error {
return nil
}
-// Most podman commands when run in rootless mode, need to be executed in the
-// users usernamespace. This function is updated with a list of commands that
-// should NOT be run within the user namespace.
-func executeCommandInUserNS(cmd *cobra.Command) bool {
- return os.Geteuid() == 0
- // if os.Geteuid() == 0 {
- // return false
- // }
- // switch cmd {
- // case _migrateCommand,
- // _mountCommand,
- // _renumberCommand,
- // _searchCommand,
- // _versionCommand:
- // return false
- // }
- // return true
-}
-
func movePauseProcessToScope() error {
pausePidPath, err := util.GetRootlessPauseProcessPidPath()
if err != nil {
@@ -234,11 +213,3 @@ func setUMask() { // nolint:deadcode,unused
func checkInput() error { // nolint:deadcode,unused
return nil
}
-
-// func getCNIPluginsDir() string {
-// if rootless.IsRootless() {
-// return ""
-// }
-//
-// return registry.PodmanOptions.Network.CNIPluginDirs[0]
-// }
diff --git a/pkg/domain/infra/tunnel/system.go b/pkg/domain/infra/tunnel/system.go
index 7c7a55c05..f373525c5 100644
--- a/pkg/domain/infra/tunnel/system.go
+++ b/pkg/domain/infra/tunnel/system.go
@@ -7,6 +7,7 @@ import (
"github.com/containers/libpod/libpod/define"
"github.com/containers/libpod/pkg/bindings/system"
"github.com/containers/libpod/pkg/domain/entities"
+ "github.com/spf13/cobra"
)
func (ic *ContainerEngine) Info(ctx context.Context) (*define.Info, error) {
@@ -20,3 +21,7 @@ func (ic *ContainerEngine) RestService(_ context.Context, _ entities.ServiceOpti
func (ic *ContainerEngine) VarlinkService(_ context.Context, _ entities.ServiceOptions) error {
panic(errors.New("varlink service is not supported when tunneling"))
}
+
+func (ic *ContainerEngine) SetupRootless(_ context.Context, cmd *cobra.Command) error {
+ panic(errors.New("rootless engine mode is not supported when tunneling"))
+}