def _fill_tfvars(self, running=True):
        tfvars_json_file = os.path.join(self.tf_folder,
                                        consts.TFVARS_JSON_NAME)
        logging.info("Filling tfvars")
        with open(tfvars_json_file) as _file:
            tfvars = json.load(_file)
        logging.info(self.params.machine_cidr)
        master_starting_ip = str(
            ipaddress.ip_address(
                ipaddress.IPv4Network(
                    self.params.machine_cidr).network_address) + 10)
        worker_starting_ip = str(
            ipaddress.ip_address(
                ipaddress.IPv4Network(
                    self.params.machine_cidr).network_address) + 10 +
            int(tfvars["master_count"]))
        tfvars['image_path'] = self.image_path
        tfvars['master_count'] = self.params.master_count
        tfvars['libvirt_master_ips'] = utils.create_ip_address_list(
            self.params.master_count, starting_ip_addr=master_starting_ip)
        tfvars['libvirt_worker_ips'] = utils.create_ip_address_list(
            self.params.worker_count, starting_ip_addr=worker_starting_ip)
        tfvars['api_vip'] = self.get_ingress_and_api_vips()["api_vip"]
        tfvars['running'] = self.params.running
        tfvars.update(self.params)
        tfvars.update(self._secondary_tfvars())

        with open(tfvars_json_file, "w") as _file:
            json.dump(tfvars, _file)
def _generate_static_ips_data(machine_cidr, provisioning_cidr, masters_macs,
                              masters_secondary_macs, workers_macs,
                              workers_secondary_macs):
    num_masters = len(masters_macs)
    num_workers = len(workers_macs)

    # set starting static ips
    masters_static_starting_ip = str(
        ipaddress.ip_address(
            ipaddress.IPv4Network(machine_cidr).network_address) + 30)
    masters_static_secondary_starting_ip = str(
        ipaddress.ip_address(
            ipaddress.IPv4Network(provisioning_cidr).network_address) + 30)
    workers_static_starting_ip = str(
        ipaddress.ip_address(
            ipaddress.IPv4Network(machine_cidr).network_address) + 30 +
        num_masters)
    workers_static_secondary_starting_ip = str(
        ipaddress.ip_address(
            ipaddress.IPv4Network(provisioning_cidr).network_address) + 30 +
        num_masters)

    # set static ips lists
    masters_static_ips = utils.create_ip_address_list(
        num_masters, masters_static_starting_ip)
    masters_static_secondary_ips = utils.create_ip_address_list(
        num_masters, masters_static_secondary_starting_ip)
    workers_static_ips = utils.create_ip_address_list(
        num_workers, workers_static_starting_ip)
    workers_static_secondary_ips = utils.create_ip_address_list(
        num_workers, workers_static_secondary_starting_ip)

    mask = str(ipaddress.IPv4Network(machine_cidr).prefixlen)
    mask_secondary = str(ipaddress.IPv4Network(provisioning_cidr).prefixlen)
    gw_dns = str(
        ipaddress.ip_address(
            ipaddress.IPv4Network(machine_cidr).network_address) + 1)
    gw_dns_secondary = str(
        ipaddress.ip_address(
            ipaddress.IPv4Network(provisioning_cidr).network_address) + 1)

    static_ips = []
    for netdata in [
        (masters_macs, masters_static_ips, mask, gw_dns, num_masters),
        (masters_secondary_macs, masters_static_secondary_ips, mask_secondary,
         gw_dns_secondary, num_masters),
        (workers_macs, workers_static_ips, mask, gw_dns, num_workers),
        (workers_secondary_macs, workers_static_secondary_ips, mask_secondary,
         gw_dns_secondary, num_workers)
    ]:
        data = [{
            'mac': netdata[0][i],
            'ip': netdata[1][i],
            'mask': netdata[2],
            'gateway': netdata[3],
            'dns': netdata[3]
        } for i in range(netdata[4])]
        static_ips = static_ips + data

    return static_ips
Exemple #3
0
 def get_ingress_and_api_vips(self):
     network_subnet_starting_ip = str(
         ipaddress.ip_address(
             ipaddress.ip_network(self.get_primary_machine_cidr()).network_address
         )
         + 100
     )
     ips = utils.create_ip_address_list(2, starting_ip_addr=str(ipaddress.ip_address(network_subnet_starting_ip)))
     return {"api_vip": ips[0], "ingress_vip": ips[1]}
def _static_conf_gen(num_nodes, network, address_offset=0):
    starting_ip = str(ip_address(network.network_address)
                      + 30 + address_offset)
    ips = utils.create_ip_address_list(num_nodes, starting_ip)
    mask = str(network.prefixlen)
    gw_dns = str(ip_address(network.network_address) + 1)

    for i in range(num_nodes):
        yield {'ip': ips[i], 'gateway': gw_dns, 'dns': gw_dns, 'mask':mask}
def _static_conf_gen(num_nodes, network, address_offset=0):
    starting_ip = str(
        ip_address(network.network_address) + 30 + address_offset)
    ips = utils.create_ip_address_list(num_nodes, starting_ip)
    mask = str(network.prefixlen)
    gw_dns = str(ip_address(network.network_address) + 1)

    for i in range(num_nodes):
        yield StaticIPEntry(ip=ips[i], mask=mask, gateway=gw_dns, dns=gw_dns)
 def _secondary_tfvars(self):
     secondary_master_starting_ip = str(
         ipaddress.ip_address(
             ipaddress.IPv4Network(
                 self.params.provisioning_cidr).network_address) + 10)
     secondary_worker_starting_ip = str(
         ipaddress.ip_address(
             ipaddress.IPv4Network(
                 self.params.provisioning_cidr).network_address) + 10 +
         int(self.params.master_count))
     return {
         'libvirt_secondary_worker_ips':
         utils.create_ip_address_list(
             self.params.worker_count,
             starting_ip_addr=secondary_worker_starting_ip),
         'libvirt_secondary_master_ips':
         utils.create_ip_address_list(
             self.params.master_count,
             starting_ip_addr=secondary_master_starting_ip)
     }
def _get_vips_ips(machine_net):
    if machine_net.has_ip_v4:
        network_subnet_starting_ip = str(
            ipaddress.ip_address(
                ipaddress.IPv4Network(machine_net.cidr_v4).network_address) +
            100)
    else:
        network_subnet_starting_ip = str(
            ipaddress.ip_address(
                ipaddress.IPv6Network(machine_net.cidr_v6).network_address) +
            100)
    ips = utils.create_ip_address_list(
        2,
        starting_ip_addr=str(ipaddress.ip_address(network_subnet_starting_ip)))
    return ips[0], ips[1]