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)
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})
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)