def parse_cluster_namespaces_output(get_namespaces_output):
    """
    Function will perform a manipulation on a string output from the 'kubectl get namespaces' command

    Returns an array of dicts with installed repos names and urls as strings
    as [{'name': 'some_namespace', 'status': 'active', 'age': '5h20m'}]

    by validating the first line, splitting by the tab delimiter,
    and checking that the first (0) value is 'NAME' second (1) value is 'STATUS' and third (2) is 'AGE'
    an exception will be raised if the structure was change by kubectl developers

    :param get_namespaces_output: 'kubectl get namespaces' output as String
    :return:
    """
    available_namespaces = []
    get_namespaces_stdout = get_namespaces_output.split('\n')
    first_line_stdout = get_namespaces_stdout[0].split()
    if first_line_stdout[0].strip() != 'NAME' or first_line_stdout[1].strip(
        ) != 'STATUS' or first_line_stdout[2].strip() != 'AGE':
        raise Exception(
            "'kubectl get namespaces' command output changed, code change is needed to resolve this issue, contact the developer."
            )
    for line in get_namespaces_stdout[1:]:
        namespace_details = line.split()
        temp_dictionary = {}
        if namespace_details[0] != '':
            temp_dictionary.update({'name': namespace_details[0].strip()})
            temp_dictionary.update({'status': namespace_details[1].strip()})
            temp_dictionary.update({'age': namespace_details[2].strip()})
            available_namespaces.append(temp_dictionary)
    return available_namespaces
