Merge pull request #9801 from afbjorklund/podman-env-existing
Add support for restoring existing podman envpull/9883/head
commit
0898ca21e4
|
@ -29,6 +29,7 @@ import (
|
||||||
"github.com/docker/machine/libmachine/drivers"
|
"github.com/docker/machine/libmachine/drivers"
|
||||||
"github.com/docker/machine/libmachine/ssh"
|
"github.com/docker/machine/libmachine/ssh"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
"k8s.io/minikube/pkg/drivers/kic/oci"
|
||||||
"k8s.io/minikube/pkg/minikube/command"
|
"k8s.io/minikube/pkg/minikube/command"
|
||||||
"k8s.io/minikube/pkg/minikube/constants"
|
"k8s.io/minikube/pkg/minikube/constants"
|
||||||
"k8s.io/minikube/pkg/minikube/driver"
|
"k8s.io/minikube/pkg/minikube/driver"
|
||||||
|
@ -39,9 +40,27 @@ import (
|
||||||
"k8s.io/minikube/pkg/minikube/shell"
|
"k8s.io/minikube/pkg/minikube/shell"
|
||||||
)
|
)
|
||||||
|
|
||||||
var podmanEnv1Tmpl = fmt.Sprintf("{{ .Prefix }}%s{{ .Delimiter }}{{ .VarlinkBridge }}{{ .Suffix }}{{ .Prefix }}%s{{ .Delimiter }}{{ .MinikubePodmanProfile }}{{ .Suffix }}{{ .UsageHint }}", constants.PodmanVarlinkBridgeEnv, constants.MinikubeActivePodmanEnv)
|
var podmanEnv1Tmpl = fmt.Sprintf(
|
||||||
|
"{{ .Prefix }}%s{{ .Delimiter }}{{ .VarlinkBridge }}{{ .Suffix }}"+
|
||||||
|
"{{ .Prefix }}%s{{ .Delimiter }}{{ .MinikubePodmanProfile }}{{ .Suffix }}"+
|
||||||
|
"{{ .UsageHint }}",
|
||||||
|
constants.PodmanVarlinkBridgeEnv,
|
||||||
|
constants.MinikubeActivePodmanEnv)
|
||||||
|
|
||||||
var podmanEnv2Tmpl = fmt.Sprintf("{{ .Prefix }}%s{{ .Delimiter }}{{ .ContainerHost }}{{ .Suffix }}{{ if .ContainerSSHKey }}{{ .Prefix }}%s{{ .Delimiter }}{{ .ContainerSSHKey}}{{ .Suffix }}{{ end }}{{ .Prefix }}%s{{ .Delimiter }}{{ .MinikubePodmanProfile }}{{ .Suffix }}{{ .UsageHint }}", constants.PodmanContainerHostEnv, constants.PodmanContainerSSHKeyEnv, constants.MinikubeActivePodmanEnv)
|
var podmanEnv2Tmpl = fmt.Sprintf(
|
||||||
|
"{{ .Prefix }}%s{{ .Delimiter }}{{ .ContainerHost }}{{ .Suffix }}"+
|
||||||
|
"{{ if .ContainerSSHKey }}"+
|
||||||
|
"{{ .Prefix }}%s{{ .Delimiter }}{{ .ContainerSSHKey}}{{ .Suffix }}"+
|
||||||
|
"{{ end }}"+
|
||||||
|
"{{ if .ExistingContainerHost }}"+
|
||||||
|
"{{ .Prefix }}%s{{ .Delimiter }}{{ .ExistingContainerHost }}{{ .Suffix }}"+
|
||||||
|
"{{ end }}"+
|
||||||
|
"{{ .Prefix }}%s{{ .Delimiter }}{{ .MinikubePodmanProfile }}{{ .Suffix }}"+
|
||||||
|
"{{ .UsageHint }}",
|
||||||
|
constants.PodmanContainerHostEnv,
|
||||||
|
constants.PodmanContainerSSHKeyEnv,
|
||||||
|
constants.ExistingContainerHostEnv,
|
||||||
|
constants.MinikubeActivePodmanEnv)
|
||||||
|
|
||||||
// PodmanShellConfig represents the shell config for Podman
|
// PodmanShellConfig represents the shell config for Podman
|
||||||
type PodmanShellConfig struct {
|
type PodmanShellConfig struct {
|
||||||
|
@ -50,6 +69,8 @@ type PodmanShellConfig struct {
|
||||||
ContainerHost string
|
ContainerHost string
|
||||||
ContainerSSHKey string
|
ContainerSSHKey string
|
||||||
MinikubePodmanProfile string
|
MinikubePodmanProfile string
|
||||||
|
|
||||||
|
ExistingContainerHost string
|
||||||
}
|
}
|
||||||
|
|
||||||
var podmanUnset bool
|
var podmanUnset bool
|
||||||
|
@ -65,6 +86,9 @@ func podmanShellCfgSet(ec PodmanEnvConfig, envMap map[string]string) *PodmanShel
|
||||||
s.VarlinkBridge = envMap[constants.PodmanVarlinkBridgeEnv]
|
s.VarlinkBridge = envMap[constants.PodmanVarlinkBridgeEnv]
|
||||||
s.ContainerHost = envMap[constants.PodmanContainerHostEnv]
|
s.ContainerHost = envMap[constants.PodmanContainerHostEnv]
|
||||||
s.ContainerSSHKey = envMap[constants.PodmanContainerSSHKeyEnv]
|
s.ContainerSSHKey = envMap[constants.PodmanContainerSSHKeyEnv]
|
||||||
|
|
||||||
|
s.ExistingContainerHost = envMap[constants.ExistingContainerHostEnv]
|
||||||
|
|
||||||
s.MinikubePodmanProfile = envMap[constants.MinikubeActivePodmanEnv]
|
s.MinikubePodmanProfile = envMap[constants.MinikubeActivePodmanEnv]
|
||||||
|
|
||||||
return s
|
return s
|
||||||
|
@ -259,6 +283,13 @@ func podmanEnvVars(ec PodmanEnvConfig) map[string]string {
|
||||||
for k, v := range env0 {
|
for k, v := range env0 {
|
||||||
env[k] = v
|
env[k] = v
|
||||||
}
|
}
|
||||||
|
if os.Getenv(constants.MinikubeActivePodmanEnv) == "" {
|
||||||
|
e := constants.PodmanContainerHostEnv
|
||||||
|
if v := oci.InitialEnv(e); v != "" {
|
||||||
|
key := constants.ExistingContainerHostEnv
|
||||||
|
env[key] = v
|
||||||
|
}
|
||||||
|
}
|
||||||
return env
|
return env
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ import (
|
||||||
var initialEnvs = make(map[string]string)
|
var initialEnvs = make(map[string]string)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
// docker
|
||||||
for _, env := range constants.DockerDaemonEnvs {
|
for _, env := range constants.DockerDaemonEnvs {
|
||||||
if v, set := os.LookupEnv(env); set {
|
if v, set := os.LookupEnv(env); set {
|
||||||
initialEnvs[env] = v
|
initialEnvs[env] = v
|
||||||
|
@ -34,6 +35,15 @@ func init() {
|
||||||
initialEnvs[exEnv] = v
|
initialEnvs[exEnv] = v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// podman
|
||||||
|
env := constants.PodmanContainerHostEnv
|
||||||
|
if v, set := os.LookupEnv(env); set {
|
||||||
|
initialEnvs[env] = v
|
||||||
|
}
|
||||||
|
exEnv := constants.ExistingContainerHostEnv
|
||||||
|
if v, set := os.LookupEnv(exEnv); set {
|
||||||
|
initialEnvs[exEnv] = v
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// InitialEnv returns the value of the environment variable env before any environment changes made by minikube
|
// InitialEnv returns the value of the environment variable env before any environment changes made by minikube
|
||||||
|
|
|
@ -93,6 +93,9 @@ const (
|
||||||
ExistingDockerCertPathEnv = MinikubeExistingPrefix + "DOCKER_CERT_PATH"
|
ExistingDockerCertPathEnv = MinikubeExistingPrefix + "DOCKER_CERT_PATH"
|
||||||
// ExistingDockerTLSVerifyEnv is used to save original docker environment
|
// ExistingDockerTLSVerifyEnv is used to save original docker environment
|
||||||
ExistingDockerTLSVerifyEnv = MinikubeExistingPrefix + "DOCKER_TLS_VERIFY"
|
ExistingDockerTLSVerifyEnv = MinikubeExistingPrefix + "DOCKER_TLS_VERIFY"
|
||||||
|
|
||||||
|
// ExistingContainerHostEnv is used to save original podman environment
|
||||||
|
ExistingContainerHostEnv = MinikubeExistingPrefix + "CONTAINER_HOST"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
Loading…
Reference in New Issue