Example #1
0
    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
Example #2
0
 def check_limits_cpu(self, m):
     containers = get_containers(m, include_init_containers=False)
     self.do_check_resource(containers, 'limits', 'cpu')
Example #3
0
 def check_requests_memory(self, m):
     containers = get_containers(m, include_init_containers=False)
     self.do_check_resource(containers, 'requests', 'memory')
Example #4
0
    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