aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@gmail.com>2018-01-04 16:55:08 -0500
committerAtomic Bot <atomic-devel@projectatomic.io>2018-01-08 20:48:31 +0000
commit5c5c024e80a9c78e94f8d3d7d13755b27dd9a8bf (patch)
treef4755d0bbc2a5f65ef32021a5ad47b12a994edf8
parentc246b9d24f27c9ef020a044eee95ffc440145146 (diff)
downloadpodman-5c5c024e80a9c78e94f8d3d7d13755b27dd9a8bf.tar.gz
podman-5c5c024e80a9c78e94f8d3d7d13755b27dd9a8bf.tar.bz2
podman-5c5c024e80a9c78e94f8d3d7d13755b27dd9a8bf.zip
Remove Kubernetes hostport support
This can now be handled by CNI plugins, so let them manage ports instead. Signed-off-by: Matthew Heon <matthew.heon@gmail.com> Closes: #189 Approved by: mheon
-rw-r--r--libpod/networking.go74
-rw-r--r--libpod/runtime.go5
2 files changed, 0 insertions, 79 deletions
diff --git a/libpod/networking.go b/libpod/networking.go
index 966b40238..1d61fbc6c 100644
--- a/libpod/networking.go
+++ b/libpod/networking.go
@@ -1,15 +1,10 @@
package libpod
import (
- "net"
- "strings"
-
"github.com/containernetworking/plugins/pkg/ns"
"github.com/cri-o/ocicni/pkg/ocicni"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
- "k8s.io/kubernetes/pkg/api/v1"
- "k8s.io/kubernetes/pkg/kubelet/network/hostport"
)
// Get an OCICNI network config
@@ -23,32 +18,6 @@ func getPodNetwork(id, name, nsPath string, ports []ocicni.PortMapping) ocicni.P
}
}
-// Convert port mapping struct from OCICNI version to one Kubernetes understands
-func portMappingToHostport(mappings []ocicni.PortMapping) ([]*hostport.PortMapping, error) {
- newMappings := make([]*hostport.PortMapping, len(mappings))
- for _, port := range mappings {
- var protocol v1.Protocol
- switch strings.ToLower(port.Protocol) {
- case "udp":
- protocol = v1.ProtocolUDP
- case "tcp":
- protocol = v1.ProtocolTCP
- default:
- return nil, errors.Wrapf(ErrInvalidArg, "protocol must be TCP or UDP, instead got %s", port.Protocol)
- }
-
- newPort := new(hostport.PortMapping)
- newPort.Name = ""
- newPort.HostPort = port.HostPort
- newPort.ContainerPort = port.ContainerPort
- newPort.Protocol = protocol
- newPort.HostIP = port.HostIP
-
- newMappings = append(newMappings, newPort)
- }
- return newMappings, nil
-}
-
// Create and configure a new network namespace for a container
func (r *Runtime) createNetNS(ctr *Container) (err error) {
ctrNS, err := ns.NewNS()
@@ -71,33 +40,6 @@ func (r *Runtime) createNetNS(ctr *Container) (err error) {
return errors.Wrapf(err, "error configuring network namespace for container %s", ctr.ID())
}
- if len(ctr.config.PortMappings) != 0 {
- ip, err := r.netPlugin.GetPodNetworkStatus(podNetwork)
- if err != nil {
- return errors.Wrapf(err, "failed to get status of network for container %s", ctr.ID())
- }
-
- ip4 := net.ParseIP(ip).To4()
- if ip4 == nil {
- return errors.Wrapf(err, "failed to parse IPv4 address for container %s", ctr.ID())
- }
-
- portMappings, err := portMappingToHostport(ctr.config.PortMappings)
- if err != nil {
- return errors.Wrapf(err, "failed to generate port ammpings for container %s", ctr.ID())
- }
-
- err = r.hostportManager.Add(ctr.ID(), &hostport.PodPortMapping{
- Name: ctr.Name(),
- PortMappings: portMappings,
- IP: ip4,
- HostNetwork: false,
- }, "lo")
- if err != nil {
- return errors.Wrapf(err, "failed to add port mappings for container %s", ctr.ID())
- }
- }
-
ctr.state.NetNS = ctrNS
return nil
@@ -143,22 +85,6 @@ func (r *Runtime) teardownNetNS(ctr *Container) error {
logrus.Debugf("Tearing down network namespace at %s for container %s", ctr.state.NetNS.Path(), ctr.ID())
- portMappings, err := portMappingToHostport(ctr.config.PortMappings)
- if err != nil {
- logrus.Errorf("Failed to generate port mappings for container %s: %v", ctr.ID(), err)
- } else {
- // Only attempt to remove hostport mappings if we successfully
- // converted to hostport-style mappings
- err := r.hostportManager.Remove(ctr.ID(), &hostport.PodPortMapping{
- Name: ctr.Name(),
- PortMappings: portMappings,
- HostNetwork: false,
- })
- if err != nil {
- logrus.Errorf("Failed to tear down port mappings for container %s: %v", ctr.ID(), err)
- }
- }
-
podNetwork := getPodNetwork(ctr.ID(), ctr.Name(), ctr.state.NetNS.Path(), ctr.config.PortMappings)
// The network may have already been torn down, so don't fail here, just log
diff --git a/libpod/runtime.go b/libpod/runtime.go
index cb1e8f531..2a659a1e3 100644
--- a/libpod/runtime.go
+++ b/libpod/runtime.go
@@ -12,7 +12,6 @@ import (
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"github.com/ulule/deepcopier"
- "k8s.io/kubernetes/pkg/kubelet/network/hostport"
)
// A RuntimeOption is a functional option which alters the Runtime created by
@@ -29,7 +28,6 @@ type Runtime struct {
ociRuntime *OCIRuntime
lockDir string
netPlugin ocicni.CNIPlugin
- hostportManager hostport.HostPortManager
valid bool
lock sync.RWMutex
}
@@ -181,9 +179,6 @@ func NewRuntime(options ...RuntimeOption) (runtime *Runtime, err error) {
}
runtime.netPlugin = netPlugin
- // Set up the hostport manager
- runtime.hostportManager = hostport.NewHostportManager()
-
// Set up the state
if runtime.config.InMemoryState {
state, err := NewInMemoryState()