コード例 #1
0
def clean_up_k8(k8s_conf, multus_enabled_str):
    """
    This function is used for clean/Reset the kubernetes cluster
    """
    multus_enabled = str(multus_enabled_str)

    project_name = config_utils.get_project_name(k8s_conf)

    kubespray_pb = "{}/{}".format(config_utils.get_kubespray_dir(k8s_conf),
                                  consts.KUBESPRAY_CLUSTER_RESET_PB)
    inv_filename = config_utils.get_kubespray_inv_file(k8s_conf)
    logger.info('Calling Kubespray reset.yaml with inventory %s', inv_filename)

    try:
        pb_vars = {'reset_confirmation': 'yes'}
        pb_vars.update(ANSIBLE_VERSION_DICT)
        ansible_utils.apply_playbook(
            kubespray_pb, host_user=consts.NODE_USER, variables=pb_vars,
            inventory_file=inv_filename, become_user='******')
    except Exception as e:
        logger.warn('Error running playbook %s with error %s', kubespray_pb, e)

    logger.info("Docker cleanup starts")
    ips = config_utils.get_host_ips(k8s_conf)

    try:
        ansible_utils.apply_playbook(
            consts.K8_DOCKER_CLEAN_UP_ON_NODES, ips, consts.NODE_USER)
    except Exception as e:
        logger.warn('Error running playbook %s with error %s',
                    consts.K8_DOCKER_CLEAN_UP_ON_NODES, e)

    host_ips = config_utils.get_hostname_ips_dict(k8s_conf)
    for host_name, ip in host_ips.items():
        pb_vars = {
            'ip': ip,
            'host_name': host_name,
            'Project_name': project_name,
            'multus_enabled': multus_enabled,
        }
        try:
            ansible_utils.apply_playbook(
                consts.K8_REMOVE_NODE_K8, [ip], consts.NODE_USER,
                variables=pb_vars)
        except Exception as e:
            logger.warn('Error running playbook %s with error %s',
                        consts.K8_REMOVE_NODE_K8, e)

    logger.info('EXECUTING REMOVE PROJECT FOLDER PLAY')
    pb_vars = {
        'PROJ_ARTIFACT_DIR': config_utils.get_project_artifact_dir(k8s_conf),
        'Project_name': project_name,
    }
    try:
        ansible_utils.apply_playbook(consts.K8_REMOVE_FOLDER,
                                     variables=pb_vars)
    except Exception as e:
        logger.warn('Error running playbook %s with error %s',
                    consts.K8_REMOVE_FOLDER, e)
コード例 #2
0
def __set_hostnames(k8s_conf):
    host_name_map = config_utils.get_hostname_ips_dict(k8s_conf)
    ips = list()
    for host_name, ip_val in host_name_map.items():
        ips.append(ip_val)
        ansible_utils.apply_playbook(consts.K8_SET_HOSTNAME, [ip_val],
                                     config_utils.get_node_user(k8s_conf),
                                     variables={'host_name': host_name})
コード例 #3
0
 def test_get_hostname_ips_dict(self):
     """
     Ensures hostnames and IPs of the nodes are properly parsed
     """
     hostname_ips_dict = config_utils.get_hostname_ips_dict(self.config)
     hostname_ips = dict()
     for node in self.node_list:
         hostname_ips[node[consts.HOST_KEY][consts.HOSTNAME_KEY]] = node[
             consts.HOST_KEY][consts.IP_KEY]
     self.assertEqual(hostname_ips, hostname_ips_dict)