def check_burstable(self, m): for container in get_containers(m, include_init_containers=False): name = container['name'] resources = container.get('resources', {}) requests = resources.get('requests', {}) limits = resources.get('limits', {}) cpu_req = requests.get('cpu') cpu_lim = limits.get('cpu') mem_req = requests.get('memory') mem_lim = limits.get('memory') def error_msg(msg): return "{} in container '{}'.".format(msg, name) # ensure values are defined assert cpu_req, error_msg('Expecting requests/cpu') assert cpu_lim, error_msg('Expecting limits/cpu') assert mem_req, error_msg('Expecting requests/memory') assert mem_lim, error_msg('Expecting limits/memory') # ensure reqs are smaller than limits cpu_msg = 'Expecting cpu_req ({}) < cpu_lim ({})'.format( cpu_req, cpu_lim) assert cpu_to_millicores(cpu_req) < cpu_to_millicores(cpu_lim), \ cpu_msg mem_msg = 'Expecting mem_req ({}) < mem_lim ({})'.format( mem_req, mem_lim) assert mem_to_bytes(mem_req) < mem_to_bytes(mem_lim), mem_msg
def check_limits_cpu(self, m): containers = get_containers(m, include_init_containers=False) self.do_check_resource(containers, 'limits', 'cpu')
def check_requests_memory(self, m): containers = get_containers(m, include_init_containers=False) self.do_check_resource(containers, 'requests', 'memory')
def check_registry_quay(self, m): e_msg_tpl = "Image should be hosted in quay.io: '{}'" for container in get_containers(m): e_msg = e_msg_tpl.format(container['image']) assert container['image'].startswith('quay.io/'), e_msg