def validate_api_ext_loadbalancer_tag_params(config):
    logger.info("checking api_ext_loadbalancer_tag")
    k8s_dict = config_utils.get_k8s_dict(config)
    node_configs = config_utils.get_node_configs(config)
    ha_configs = config_utils.get_ha_config(config)

    for ha_config in ha_configs:
        validate_dict_data(k8s_dict, consts.HA_CONFIG_KEY)
        validate_dict_data(ha_config, consts.HA_API_EXT_LB_KEY)
        ha_lb_conf = ha_config[consts.HA_API_EXT_LB_KEY]
        validate_dict_data(ha_lb_conf, consts.IP_KEY)
        validate_dict_data(node_configs[0], consts.HOST_KEY)

        for node_conf in node_configs:
            if (node_conf.get(consts.HOST_KEY)[consts.IP_KEY] == ha_lb_conf[
                    consts.IP_KEY]):
                raise ValidationException(
                    'Bootstrap ip should never match with the master or node')

        validate_dict_data(ha_lb_conf, consts.USER_KEY)
        validate_dict_data(ha_lb_conf, consts.PASSWORD_KEY)
        validate_dict_data(ha_lb_conf, consts.PORT_KEY)

        ha_lb_port = ha_lb_conf.get(consts.PORT_KEY)
        if not ha_lb_port or ha_lb_port == "" or ha_lb_port == 6443:
            raise ValidationException('Port shoud not be empty or 6443')
Ejemplo n.º 2
0
 def test_get_ha_config(self):
     """
     Ensures HA configuration values are properly parsed
     """
     ha_config = config_utils.get_ha_config(self.config)
     expected = self.config[consts.K8S_KEY][consts.HA_CONFIG_KEY]
     self.assertEqual(expected, ha_config)
def __launch_ha_loadbalancer(k8s_conf):
    """
    function used to call launch_load_balancer
    :param k8s_conf: the config dict object
    :return:
    """
    if config_utils.get_ha_config(k8s_conf):
        loadbalancer_dict = config_utils.get_loadbalancer_dict(k8s_conf)
        lb_port = loadbalancer_dict.get("port")
        master_ip_list = config_utils.get_master_node_ips(k8s_conf)
        pb_vars = {
            'MASTER_IP_LIST': str(master_ip_list),
            'lb_port': lb_port,
        }
        pb_vars.update(config_utils.get_proxy_dict(k8s_conf))
        ansible_utils.apply_playbook(
            consts.K8_HA_EXT_LB, [loadbalancer_dict.get(consts.IP_KEY)],
            consts.NODE_USER, variables=pb_vars)