copr: preparations for the first ppc64le vmhost

This commit is contained in:
Pavel Raiskup 2021-06-29 10:01:07 +02:00
parent 73ee026af6
commit 63b2de25cb
6 changed files with 77 additions and 14 deletions

View file

@ -46,4 +46,7 @@ builders:
#x86_hypervisor_04:
# x86_64: [20, 4, 20]
#ppc64le_hypervisor_01:
# ppc64le: [2, 1, 1]
rpm_vendor_copr_name: Fedora Copr

View file

@ -18,6 +18,7 @@ copr_builder_images:
aarch64: copr-builder-aarch64-f32-20200914_073754
hypervisor:
x86_64: copr-builder-20210511_210127
ppc64le: copr-builder-XXX
aws:
x86_64: ami-05766cb7551777d09 # copr-builder-x86_64-f34-20210516_142224
aarch64: ami-0b7d49fecf0c393a9 # copr-builder-aarch64-f34-20210516_143216

View file

@ -18,6 +18,7 @@ copr_builder_images:
aarch64: copr-builder-aarch64-f32-20200914_073754
hypervisor:
x86_64: copr-builder-20210511_210127
ppc64le: copr-builder-XXX
aws:
x86_64: ami-05766cb7551777d09 # copr-builder-x86_64-f34-20210516_142224
aarch64: ami-0b7d49fecf0c393a9 # copr-builder-aarch64-f34-20210516_143216

View file

@ -48,4 +48,7 @@ builders:
#x86_hypervisor_04:
# x86_64: [2, 1, 1]
#ppc64le_hypervisor_01:
# ppc64le: [2, 1, 1]
rpm_vendor_copr_name: Fedora Copr (devel)

View file

@ -20,18 +20,47 @@ import argparse
DEFAULT_POOL = 'images'
VOLUMES = {
'x86_64': '{{ copr_builder_images.hypervisor.x86_64 }}',
'ppc64le': '{{ copr_builder_images.hypervisor.ppc64le }}',
}
def get_hv_id_from_pool_id(pool_id):
def get_hv_identification_from_pool_id(pool_id):
""" Get unique ID of the hypervisor """
pfx = "copr_hv_x86_64_"
if pool_id.startswith(pfx):
pool_id = pool_id.replace(pfx, "")
pool_id = pool_id.replace("_dev", "")
pool_id = pool_id.replace("_prod", "")
pool_id = pool_id.replace("_stg", "")
return pool_id
if pool_id.startswith("copr_hv_x86_64_01"):
return (
0,
"qemu+ssh://copr@vmhost-x86-copr01"
".rdu-cc.fedoraproject.org/system",
"x86_64",
)
if pool_id.startswith("copr_hv_x86_64_02"):
return (
1,
"qemu+ssh://copr@vmhost-x86-copr02"
".rdu-cc.fedoraproject.org/system",
"x86_64",
)
if pool_id.startswith("copr_hv_x86_64_03"):
return (
2,
"qemu+ssh://copr@vmhost-x86-copr03"
".rdu-cc.fedoraproject.org/system",
"x86_64",
)
if pool_id.startswith("copr_hv_x86_64_04"):
return (
3,
"qemu+ssh://copr@vmhost-x86-copr04"
".rdu-cc.fedoraproject.org/system",
"x86_64",
)
if pool_id.startswith("copr_hv_ppc64le_01"):
return (
4,
"qemu+ssh://copr@vmhost-p08-copr01"
".rdu-cc.fedoraproject.org/system",
"ppc64le",
)
raise Exception("can't convert pool_id to hv ID")
@ -54,11 +83,9 @@ class LibvirtSpawner:
playbook = "{{ provision_directory }}/libvirt-provision.yml"
def __init__(self, resalloc_pool_id, log):
hv_id = get_hv_id_from_pool_id(resalloc_pool_id)
self.connection = (
f"qemu+ssh://copr@vmhost-x86-copr{hv_id}"
".rdu-cc.fedoraproject.org/system")
self.arch = "x86_64"
_, self.connection, self.arch = get_hv_identification_from_pool_id(
resalloc_pool_id)
self.workdir = tempfile.mkdtemp()
self.script_path = os.path.dirname(os.path.realpath(__file__))
self.log = log
@ -358,7 +385,7 @@ def get_fedora_ipv6_address(pool_id, id_in_pool, dev=False):
offset = 0
# 01 => 0, 02 => 1, ...
hv_id = int(get_hv_id_from_pool_id(pool_id)) - 1
hv_id, _, _ = get_hv_identification_from_pool_id(pool_id)
# we have block of 256 ipv6 addresses for builder, and 4 hypervisors
block = int(256 / 4)
# give 48 IPs to each hv (32 prod, some dev), currently 4*48=192 ips

View file

@ -87,6 +87,34 @@ copr_hv_x86_64_{{ hv }}_{% if devel %}dev{% else %}prod{% endif %}:
{% endif %}
{% endfor %}
# x86_64 hypervisors
{% for hv in ["01"] %}
{% if "ppc64le_hypervisor_" + hv in builders %}
copr_hv_ppc64le_{{ hv }}_{% if devel %}dev{% else %}prod{% endif %}:
max: {{ builders["ppc64le_hypervisor_" + hv]["ppc64le"][0] }}
max_starting: {{ builders["ppc64le_hypervisor_" + hv]["ppc64le"][1] }}
max_prealloc: {{ builders["ppc64le_hypervisor_" + hv]["ppc64le"][2] }}
tags:
- copr_builder
- arch_ppc64le
- arch_ppc64le_native
- hypervisor
- hypervisor_ppc64le
- hypervisor_ppc64le_{{ hv }}
cmd_new: "/var/lib/resallocserver/provision/libvirt-new --swap-vol-size 168"
cmd_delete: "/var/lib/resallocserver/provision/libvirt-new --swap-vol-size 168"
cmd_delete: "/var/lib/resallocserver/provision/libvirt-delete"
cmd_livecheck: "/var/lib/resallocserver/resalloc_provision/vm-check"
cmd_release: "/var/lib/resallocserver/resalloc_provision/vm-release"
livecheck_period: 180
reuse_opportunity_time: 180
reuse_max_count: 8
reuse_max_time: 1800
{% endif %}
{% endfor %}
{% macro hw_aarch64(id, inst, max, max_starting, max_prealloc) %}
aarch64_{{ id }}_{{ inst }}:
max: 0