mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 12:18:16 +00:00 
			
		
		
		
	Add support for host ip binding to the API (and kubelet)
This commit is contained in:
		@@ -74,6 +74,8 @@ type Port struct {
 | 
			
		||||
	ContainerPort int `yaml:"containerPort" json:"containerPort"`
 | 
			
		||||
	// Optional: Defaults to "TCP".
 | 
			
		||||
	Protocol string `yaml:"protocol,omitempty" json:"protocol,omitempty"`
 | 
			
		||||
	// Optional: What host IP to bind the external port to.
 | 
			
		||||
	HostIP string `yaml:"hostIP,omitempty" json:"hostIP,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// VolumeMount describes a mounting of a Volume within a container
 | 
			
		||||
@@ -86,7 +88,7 @@ type VolumeMount struct {
 | 
			
		||||
	// Exactly one of the following must be set.  If both are set, prefer MountPath.
 | 
			
		||||
	// DEPRECATED: Path will be removed in a future version of the API.
 | 
			
		||||
	MountPath string `yaml:"mountPath,omitempty" json:"mountPath,omitempty"`
 | 
			
		||||
	Path string `yaml:"path,omitempty" json:"path,omitempty"`
 | 
			
		||||
	Path      string `yaml:"path,omitempty" json:"path,omitempty"`
 | 
			
		||||
	// One of: "LOCAL" (local volume) or "HOST" (external mount from the host). Default: LOCAL.
 | 
			
		||||
	MountType string `yaml:"mountType,omitempty" json:"mountType,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -332,6 +332,7 @@ func makePortsAndBindings(container *api.Container) (map[docker.Port]struct{}, m
 | 
			
		||||
		portBindings[dockerPort] = []docker.PortBinding{
 | 
			
		||||
			{
 | 
			
		||||
				HostPort: strconv.Itoa(exteriorPort),
 | 
			
		||||
				HostIp:   port.HostIP,
 | 
			
		||||
			},
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -529,6 +529,7 @@ func TestMakePortsAndBindings(t *testing.T) {
 | 
			
		||||
			{
 | 
			
		||||
				ContainerPort: 80,
 | 
			
		||||
				HostPort:      8080,
 | 
			
		||||
				HostIP:        "127.0.0.1",
 | 
			
		||||
			},
 | 
			
		||||
			{
 | 
			
		||||
				ContainerPort: 443,
 | 
			
		||||
@@ -558,18 +559,30 @@ func TestMakePortsAndBindings(t *testing.T) {
 | 
			
		||||
			if !reflect.DeepEqual(docker.Port("80/tcp"), key) {
 | 
			
		||||
				t.Errorf("Unexpected docker port: %#v", key)
 | 
			
		||||
			}
 | 
			
		||||
			if value[0].HostIp != "127.0.0.1" {
 | 
			
		||||
				t.Errorf("Unexpected host IP: %s", value[0].HostIp)
 | 
			
		||||
			}
 | 
			
		||||
		case "443":
 | 
			
		||||
			if !reflect.DeepEqual(docker.Port("443/tcp"), key) {
 | 
			
		||||
				t.Errorf("Unexpected docker port: %#v", key)
 | 
			
		||||
			}
 | 
			
		||||
			if value[0].HostIp != "" {
 | 
			
		||||
				t.Errorf("Unexpected host IP: %s", value[0].HostIp)
 | 
			
		||||
			}
 | 
			
		||||
		case "444":
 | 
			
		||||
			if !reflect.DeepEqual(docker.Port("444/udp"), key) {
 | 
			
		||||
				t.Errorf("Unexpected docker port: %#v", key)
 | 
			
		||||
			}
 | 
			
		||||
			if value[0].HostIp != "" {
 | 
			
		||||
				t.Errorf("Unexpected host IP: %s", value[0].HostIp)
 | 
			
		||||
			}
 | 
			
		||||
		case "445":
 | 
			
		||||
			if !reflect.DeepEqual(docker.Port("445/tcp"), key) {
 | 
			
		||||
				t.Errorf("Unexpected docker port: %#v", key)
 | 
			
		||||
			}
 | 
			
		||||
			if value[0].HostIp != "" {
 | 
			
		||||
				t.Errorf("Unexpected host IP: %s", value[0].HostIp)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user