def METHOD_NAME(cluster_parameters):
    errors = []
    for cname, cspec in cluster_parameters["components"].items():
        if "url" not in cspec:
            errors.append(f"component '{cname}'")
    for pname, pspec in cluster_parameters.get("packages", {}).items():
        if "url" not in pspec:
            errors.append(f"package '{pname}'")
    if len(errors) > 0:
        names = format_component_list(errors, format_func=lambda c: c)
        s = "s" if len(errors) > 1 else ""
        have = "have" if len(errors) > 1 else "has"
        raise click.ClickException(
            f"Version override{s} specified for {names} which {have} no URL"
        )