summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2021-12-06 17:03:24 +0000
committerGitHub <noreply@github.com>2021-12-06 17:03:24 +0000
commit1aeb61cf5cfb0155ebcff3b449c5ea4bf8f15dc1 (patch)
tree09d9747e7502d667d1396619aced88674dc960fe
parentfe44757e0b26d83469a35191258f78561d600ae9 (diff)
parent4573196ae7f07fefb1cfe715dafee274de574122 (diff)
downloadpodman-1aeb61cf5cfb0155ebcff3b449c5ea4bf8f15dc1.tar.gz
podman-1aeb61cf5cfb0155ebcff3b449c5ea4bf8f15dc1.tar.bz2
podman-1aeb61cf5cfb0155ebcff3b449c5ea4bf8f15dc1.zip
Merge pull request #12517 from Luap99/machine-dns
podman machine: use gvproxy for host.containers.internal
-rw-r--r--libpod/container_internal_linux.go50
1 files changed, 27 insertions, 23 deletions
diff --git a/libpod/container_internal_linux.go b/libpod/container_internal_linux.go
index 208e089b5..89869e2f5 100644
--- a/libpod/container_internal_linux.go
+++ b/libpod/container_internal_linux.go
@@ -2022,33 +2022,37 @@ func (c *Container) getHosts() string {
}
}
- // Add gateway entry
- var depCtr *Container
- if c.config.NetNsCtr != "" {
- // ignoring the error because there isn't anything to do
- depCtr, _ = c.getRootNetNsDepCtr()
- } else if len(c.state.NetworkStatus) != 0 {
- depCtr = c
- } else {
- depCtr = nil
- }
+ // Add gateway entry if we are not in a machine. If we use podman machine
+ // the gvproxy dns server will take care of host.containers.internal.
+ // https://github.com/containers/gvisor-tap-vsock/commit/1108ea45162281046d239047a6db9bc187e64b08
+ if !c.runtime.config.Engine.MachineEnabled {
+ var depCtr *Container
+ if c.config.NetNsCtr != "" {
+ // ignoring the error because there isn't anything to do
+ depCtr, _ = c.getRootNetNsDepCtr()
+ } else if len(c.state.NetworkStatus) != 0 {
+ depCtr = c
+ } else {
+ depCtr = nil
+ }
- if depCtr != nil {
- for _, pluginResultsRaw := range depCtr.state.NetworkStatus {
- pluginResult, _ := cnitypes.GetResult(pluginResultsRaw)
- for _, ip := range pluginResult.IPs {
- hosts += fmt.Sprintf("%s host.containers.internal\n", ip.Gateway)
+ if depCtr != nil {
+ for _, pluginResultsRaw := range depCtr.state.NetworkStatus {
+ pluginResult, _ := cnitypes.GetResult(pluginResultsRaw)
+ for _, ip := range pluginResult.IPs {
+ hosts += fmt.Sprintf("%s host.containers.internal\n", ip.Gateway)
+ }
+ }
+ } else if c.config.NetMode.IsSlirp4netns() {
+ gatewayIP, err := GetSlirp4netnsGateway(c.slirp4netnsSubnet)
+ if err != nil {
+ logrus.Warn("failed to determine gatewayIP: ", err.Error())
+ } else {
+ hosts += fmt.Sprintf("%s host.containers.internal\n", gatewayIP.String())
}
- }
- } else if c.config.NetMode.IsSlirp4netns() {
- gatewayIP, err := GetSlirp4netnsGateway(c.slirp4netnsSubnet)
- if err != nil {
- logrus.Warn("failed to determine gatewayIP: ", err.Error())
} else {
- hosts += fmt.Sprintf("%s host.containers.internal\n", gatewayIP.String())
+ logrus.Debug("network configuration does not support host.containers.internal address")
}
- } else {
- logrus.Debug("network configuration does not support host.containers.internal address")
}
return hosts