def METHOD_NAME(
    dry_run: bool,
    thread_pool_size: int = 10,
    internal: Optional[bool] = None,
    use_jump_host: bool = True,
    cluster_name: Optional[str] = None,
    namespace_name: Optional[str] = None,
    defer: Optional[Callable] = None,
) -> None:
    all_namespaces = get_namespaces_minimal()
    shard_namespaces, duplicates = get_shard_namespaces(all_namespaces)
    namespaces = filter_namespaces_by_cluster_and_namespace(
        namespaces=shard_namespaces,
        cluster_name=cluster_name,
        namespace_name=namespace_name,
    )
    desired_state = get_desired_state(namespaces)
    vault_settings = get_app_interface_vault_settings()
    secret_reader = create_secret_reader(use_vault=vault_settings.vault)
    oc_map = init_oc_map_from_namespaces(
        namespaces=namespaces,
        integration=QONTRACT_INTEGRATION,
        secret_reader=secret_reader,
        internal=internal,
        use_jump_host=use_jump_host,
        thread_pool_size=thread_pool_size,
        init_projects=True,
    )
    if defer:
        defer(oc_map.cleanup)
    results = threaded.METHOD_NAME(
        manage_namespaces,
        desired_state,
        thread_pool_size,
        return_exceptions=True,
        dry_run=dry_run,
        oc_map=oc_map,
    )
    err = check_results(desired_state=desired_state, results=results)
    if err or duplicates:
        sys.exit(ExitCodes.ERROR)