'Create a cluster from Quick Start Installer files.
:param FilePath path: directory containing Quick Start Installer
``cluster.yml`` and certificate files.
:return: A ``BenchmarkCluster`` instance.'

@classmethod
def from_cluster_yaml(cls, path):

    with path.child('cluster.yml').open() as f:
        cluster = yaml.safe_load(f)
    validate_cluster_configuration(cluster)
    control_node_address = cluster['control_node']
    public_addresses = {IPAddress(node['private']): IPAddress(node['public']) for node in cluster['agent_nodes']}
    control_service = partial(FlockerClient, host=control_node_address, port=4523, ca_cluster_path=path.child('cluster.crt'), cert_path=path.child('user.crt'), key_path=path.child('user.key'))
    return cls(IPAddress(control_node_address), control_service, public_addresses, None)
