def _validate_port_spec(port):
    """Carry out basic validation of a port

    Checks to see a port & name exist, ClusterIP and NodePort are in range

    Args:
        port (PortSpec(namedtuple)): Port data
    """
    # Make sure we have a port
    if not port.port:
        raise KeyError("Missing 'port' in definition")

    # Make sure the ClusterIP is (kind of) in range
    if port.cluster_ip:
        ip_split = port.cluster_ip.split(".")
        if ip_split[0] == "10" and 96 <= int(ip_split[1]) <= 111:
            pass
        elif ip_split[0] == "None":
            pass
        else:
            raise ValueError(
                f"ClusterIP {port.cluster_ip} is out of range 10.96.x.x - 10.111.x.x"
            )

    # Make sure the NodePort is in range
    if port.node_port:
        if int(port.node_port) < 30000 or int(port.node_port) > 32767:
            raise ValueError(f"nodePort {port.node_port} is out of range 30000-32767")

    return port