• Kubernetes Submit Queue's avatar
    Merge pull request #39369 from CallMeFoxie/validation-hostip · 9dec47dc
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue (batch tested with PRs 40971, 41027, 40709, 40903, 39369)
    
    Validate unique  against HostPort/Protocol/HostIP
    
    **What this PR does / why we need it**:
    We can bind to specific IPs however validation will fail for different HostIP:HostPort combination. This is a small fix to check combination of HostPort/Protocol/HostIP rather than just HostPort/Protocol.
    
    Sample configuration
    ...
    "ports": [
                  {
                    "protocol": "TCP",
                    "containerPort": 53,
                    "hostPort": 55,
                    "hostIP": "127.0.0.1",
                    "name": "dns-local-tcp"
                  },
                  {
                    "protocol": "TCP",
                    "containerPort": 53,
                    "hostPort": 55,
                    "hostIP": "127.0.0.2",
                    "name": "dns-local-tcp2"
                  }
    ]
    
    Before:
    * spec.template.spec.containers[1].ports[2].hostPort: Duplicate value: "55/TCP"
    * spec.template.spec.containers[1].ports[3].hostPort: Duplicate value: "55/TCP"
    
    After applying the patch:
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 127.0.0.1:55            0.0.0.0:*               LISTEN      3644/docker-proxy
    tcp        0      0 127.0.0.2:55            0.0.0.0:*               LISTEN      3629/docker-proxy
    
    Thanks
    Ashley
    
    **Release note**:
    
    ```release-note
    ```
    9dec47dc
Name
Last commit
Last update
..
annotations Loading commit data...
endpoints Loading commit data...
errors Loading commit data...
events Loading commit data...
install Loading commit data...
meta Loading commit data...
pod Loading commit data...
resource Loading commit data...
service Loading commit data...
testapi Loading commit data...
testing Loading commit data...
unversioned Loading commit data...
util Loading commit data...
v1 Loading commit data...
validation Loading commit data...
BUILD Loading commit data...
OWNERS Loading commit data...
conversion.go Loading commit data...
conversion_test.go Loading commit data...
copy_test.go Loading commit data...
deep_copy_test.go Loading commit data...
defaulting_test.go Loading commit data...
defaults.go Loading commit data...
doc.go Loading commit data...
field_constants.go Loading commit data...
helpers.go Loading commit data...
helpers_test.go Loading commit data...
json.go Loading commit data...
meta_test.go Loading commit data...
node_example.json Loading commit data...
ref.go Loading commit data...
ref_test.go Loading commit data...
register.go Loading commit data...
replication_controller_example.json Loading commit data...
resource_helpers.go Loading commit data...
resource_helpers_test.go Loading commit data...
serialization_proto_test.go Loading commit data...
serialization_test.go Loading commit data...
types.go Loading commit data...
unstructured_test.go Loading commit data...
zz_generated.deepcopy.go Loading commit data...