summaryrefslogtreecommitdiff
path: root/vendor/github.com
diff options
context:
space:
mode:
authorJason T. Greene <jason.greene@redhat.com>2022-04-21 15:37:34 -0500
committerJason T. Greene <jason.greene@redhat.com>2022-04-25 13:52:27 -0500
commit3b6ffcd290978f5e0110e925c212d6396accee10 (patch)
treedd0241bb9b058f6eecd7504361b9a5bb64a6cb25 /vendor/github.com
parent6984a0f35704204fa15374aa2c133c4e6e0b366f (diff)
downloadpodman-3b6ffcd290978f5e0110e925c212d6396accee10.tar.gz
podman-3b6ffcd290978f5e0110e925c212d6396accee10.tar.bz2
podman-3b6ffcd290978f5e0110e925c212d6396accee10.zip
Update to use new common machine API
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
Diffstat (limited to 'vendor/github.com')
-rw-r--r--vendor/github.com/containers/common/libnetwork/etchosts/ip.go5
-rw-r--r--vendor/github.com/containers/common/libnetwork/netavark/network.go2
-rw-r--r--vendor/github.com/containers/common/libnetwork/network/interface.go3
-rw-r--r--vendor/github.com/containers/common/pkg/config/config.go2
-rw-r--r--vendor/github.com/containers/common/pkg/config/config_freebsd.go25
-rw-r--r--vendor/github.com/containers/common/pkg/config/containers.conf10
-rw-r--r--vendor/github.com/containers/common/pkg/machine/machine.go70
7 files changed, 105 insertions, 12 deletions
diff --git a/vendor/github.com/containers/common/libnetwork/etchosts/ip.go b/vendor/github.com/containers/common/libnetwork/etchosts/ip.go
index 3d14b7147..2b8186e72 100644
--- a/vendor/github.com/containers/common/libnetwork/etchosts/ip.go
+++ b/vendor/github.com/containers/common/libnetwork/etchosts/ip.go
@@ -6,6 +6,7 @@ import (
"github.com/containers/common/libnetwork/types"
"github.com/containers/common/libnetwork/util"
"github.com/containers/common/pkg/config"
+ "github.com/containers/common/pkg/machine"
"github.com/containers/storage/pkg/unshare"
)
@@ -15,8 +16,8 @@ func GetHostContainersInternalIP(conf *config.Config, netStatus map[string]types
switch conf.Containers.HostContainersInternalIP {
case "":
// if empty (default) we will automatically choose one below
- // if machine we let the gvproxy dns server handle the dns name so do not add it
- if conf.Engine.MachineEnabled {
+ // if machine using gvproxy we let the gvproxy dns server handle the dns name so do not add it
+ if machine.IsGvProxyBased() {
return ""
}
case "none":
diff --git a/vendor/github.com/containers/common/libnetwork/netavark/network.go b/vendor/github.com/containers/common/libnetwork/netavark/network.go
index 9c8c4bfb4..8e7576a56 100644
--- a/vendor/github.com/containers/common/libnetwork/netavark/network.go
+++ b/vendor/github.com/containers/common/libnetwork/netavark/network.go
@@ -27,7 +27,7 @@ type netavarkNetwork struct {
// networkRunDir is where temporary files are stored, i.e.the ipam db, aardvark config etc
networkRunDir string
- // tells netavark whether this is rootless mode or rootfull, "true" or "false"
+ // tells netavark whether this is rootless mode or rootful, "true" or "false"
networkRootless bool
// netavarkBinary is the path to the netavark binary.
diff --git a/vendor/github.com/containers/common/libnetwork/network/interface.go b/vendor/github.com/containers/common/libnetwork/network/interface.go
index e452e6cd5..893bdea2e 100644
--- a/vendor/github.com/containers/common/libnetwork/network/interface.go
+++ b/vendor/github.com/containers/common/libnetwork/network/interface.go
@@ -14,6 +14,7 @@ import (
"github.com/containers/common/libnetwork/netavark"
"github.com/containers/common/libnetwork/types"
"github.com/containers/common/pkg/config"
+ "github.com/containers/common/pkg/machine"
"github.com/containers/storage"
"github.com/containers/storage/pkg/homedir"
"github.com/containers/storage/pkg/ioutils"
@@ -173,7 +174,7 @@ func getCniInterface(conf *config.Config) (types.ContainerNetwork, error) {
DefaultNetwork: conf.Network.DefaultNetwork,
DefaultSubnet: conf.Network.DefaultSubnet,
DefaultsubnetPools: conf.Network.DefaultSubnetPools,
- IsMachine: conf.Engine.MachineEnabled,
+ IsMachine: machine.IsGvProxyBased(),
})
}
diff --git a/vendor/github.com/containers/common/pkg/config/config.go b/vendor/github.com/containers/common/pkg/config/config.go
index 319b8d153..d362495e3 100644
--- a/vendor/github.com/containers/common/pkg/config/config.go
+++ b/vendor/github.com/containers/common/pkg/config/config.go
@@ -312,6 +312,8 @@ type EngineConfig struct {
LockType string `toml:"lock_type,omitempty"`
// MachineEnabled indicates if Podman is running in a podman-machine VM
+ //
+ // This method is soft deprecated, use machine.IsPodmanMachine instead
MachineEnabled bool `toml:"machine_enabled,omitempty"`
// MultiImageArchive - if true, the container engine allows for storing
diff --git a/vendor/github.com/containers/common/pkg/config/config_freebsd.go b/vendor/github.com/containers/common/pkg/config/config_freebsd.go
new file mode 100644
index 000000000..85404a48d
--- /dev/null
+++ b/vendor/github.com/containers/common/pkg/config/config_freebsd.go
@@ -0,0 +1,25 @@
+package config
+
+import (
+ "os"
+)
+
+// podman remote clients on freebsd cannot use unshare.isRootless() to determine the configuration file locations.
+func customConfigFile() (string, error) {
+ if path, found := os.LookupEnv("CONTAINERS_CONF"); found {
+ return path, nil
+ }
+ return rootlessConfigPath()
+}
+
+func ifRootlessConfigPath() (string, error) {
+ return rootlessConfigPath()
+}
+
+var defaultHelperBinariesDir = []string{
+ "/usr/local/bin",
+ "/usr/local/libexec/podman",
+ "/usr/local/lib/podman",
+ "/usr/local/libexec/podman",
+ "/usr/local/lib/podman",
+}
diff --git a/vendor/github.com/containers/common/pkg/config/containers.conf b/vendor/github.com/containers/common/pkg/config/containers.conf
index 429b254bc..2b250753e 100644
--- a/vendor/github.com/containers/common/pkg/config/containers.conf
+++ b/vendor/github.com/containers/common/pkg/config/containers.conf
@@ -455,12 +455,6 @@ default_sysctls = [
#
#lock_type** = "shm"
-# Indicates if Podman is running inside a VM via Podman Machine.
-# Podman uses this value to do extra setup around networking from the
-# container inside the VM to to host.
-#
-#machine_enabled = false
-
# MultiImageArchive - if true, the container engine allows for storing archives
# (e.g., of the docker-archive transport) with multiple images. By default,
# Podman creates single-image archives.
@@ -572,9 +566,9 @@ default_sysctls = [
# URI to access the Podman service
# Examples:
# rootless "unix://run/user/$UID/podman/podman.sock" (Default)
-# rootfull "unix://run/podman/podman.sock (Default)
+# rootful "unix://run/podman/podman.sock (Default)
# remote rootless ssh://engineering.lab.company.com/run/user/1000/podman/podman.sock
-# remote rootfull ssh://root@10.10.1.136:22/run/podman/podman.sock
+# remote rootful ssh://root@10.10.1.136:22/run/podman/podman.sock
#
# uri = "ssh://user@production.example.com/run/user/1001/podman/podman.sock"
# Path to file containing ssh identity key
diff --git a/vendor/github.com/containers/common/pkg/machine/machine.go b/vendor/github.com/containers/common/pkg/machine/machine.go
new file mode 100644
index 000000000..465eeceaf
--- /dev/null
+++ b/vendor/github.com/containers/common/pkg/machine/machine.go
@@ -0,0 +1,70 @@
+package machine
+
+import (
+ "os"
+ "strings"
+ "sync"
+
+ "github.com/containers/common/pkg/config"
+ "github.com/sirupsen/logrus"
+)
+
+type MachineMarker struct {
+ Enabled bool
+ Type string
+}
+
+const (
+ markerFile = "/etc/containers/podman-machine"
+ Wsl = "wsl"
+ Qemu = "qemu"
+)
+
+var (
+ markerSync sync.Once
+ machineMarker *MachineMarker
+)
+
+func loadMachineMarker(file string) {
+ var kind string
+
+ // Support deprecated config value for compatibility
+ enabled := isLegacyConfigSet()
+
+ if content, err := os.ReadFile(file); err == nil {
+ enabled = true
+ kind = strings.TrimSpace(string(content))
+ }
+
+ machineMarker = &MachineMarker{enabled, kind}
+}
+
+func isLegacyConfigSet() bool {
+ config, err := config.Default()
+ if err != nil {
+ logrus.Warnf("could not obtain container configuration")
+ return false
+ }
+
+ //nolint:staticcheck //lint:ignore SA1019 deprecated call
+ return config.Engine.MachineEnabled
+}
+
+func IsPodmanMachine() bool {
+ return GetMachineMarker().Enabled
+}
+
+func MachineHostType() string {
+ return GetMachineMarker().Type
+}
+
+func IsGvProxyBased() bool {
+ return IsPodmanMachine() && MachineHostType() != Wsl
+}
+
+func GetMachineMarker() *MachineMarker {
+ markerSync.Do(func() {
+ loadMachineMarker(markerFile)
+ })
+ return machineMarker
+}