コード例 #1
0
def test_calculate_required_auto_scaling_group_sizes():
    assert calculate_required_auto_scaling_group_sizes({}, {}, {}, {}, {}) == {}
    node = {'allocatable': {'cpu': 1, 'memory': 1, 'pods': 1}, 'unschedulable': False, 'master': False}
    assert calculate_required_auto_scaling_group_sizes({('a1', 'z1'): [node]}, {}, {}, {}, {}) == {'a1': 0}
    assert calculate_required_auto_scaling_group_sizes({('a1', 'z1'): [node]}, {('a1', 'z1'): {'cpu': 1, 'memory': 1, 'pods': 1}}, {}, {}, {}) == {'a1': 1}
    assert calculate_required_auto_scaling_group_sizes({('a1', 'z1'): [node]}, {('unknown', 'unknown'): {'cpu': 1, 'memory': 1, 'pods': 1}}, {}, {}, {}) == {'a1': 1}
    assert calculate_required_auto_scaling_group_sizes({('a1', 'z1'): [node]}, {}, {}, {}, {}, buffer_spare_nodes=2) == {'a1': 2}
コード例 #2
0
def test_calculate_required_auto_scaling_group_sizes_cordon():
    node = {
        'name': 'mynode',
        'allocatable': {
            'cpu': 1,
            'memory': 1,
            'pods': 1
        },
        'unschedulable': True,
        'master': False,
        'asg_lifecycle_state': 'InService'
    }
    assert calculate_required_auto_scaling_group_sizes({('a1', 'z1'): [node]},
                                                       {}, {}, {}) == {
                                                           'a1': 1
                                                       }
    assert calculate_required_auto_scaling_group_sizes(
        {('a1', 'z1'): [node]},
        {('a1', 'z1'): {
             'cpu': 1,
             'memory': 1,
             'pods': 1
         }}, {}, {}) == {
             'a1': 2
         }
コード例 #3
0
def test_calculate_required_auto_scaling_group_sizes_unschedulable_terminating(
):
    node = {
        'name': 'mynode',
        'allocatable': {
            'cpu': 1,
            'memory': 1,
            'pods': 1
        },
        'unschedulable': True,
        'master': False,
        'asg_lifecycle_state': 'Terminating'
    }
    # do not compensate if the instance is terminating.. (it will probably be replaced by ASG)
    assert calculate_required_auto_scaling_group_sizes({('a1', 'z1'): [node]},
                                                       {}, {}, {}) == {
                                                           'a1': 0
                                                       }
    assert calculate_required_auto_scaling_group_sizes(
        {('a1', 'z1'): [node]},
        {('a1', 'z1'): {
             'cpu': 1,
             'memory': 1,
             'pods': 1
         }}, {}, {}) == {
             'a1': 1
         }
コード例 #4
0
def test_calculate_required_auto_scaling_group_sizes_no_scaledown():
    nodes = [{
        'allocatable': {
            'cpu': 1,
            'memory': 1,
            'pods': 1
        },
        'unschedulable': False,
        'master': False
    }, {
        'allocatable': {
            'cpu': 1,
            'memory': 1,
            'pods': 1
        },
        'unschedulable': False,
        'master': False
    }]
    assert calculate_required_auto_scaling_group_sizes({('a1', 'z1'): nodes},
                                                       {}, {}, {}) == {
                                                           'a1': 0
                                                       }
    assert calculate_required_auto_scaling_group_sizes(
        {('a1', 'z1'): nodes}, {}, {}, {}, disable_scale_down=True) == {
             'a1': 2
         }
コード例 #5
0
def test_calculate_required_auto_scaling_group_sizes_with_asg_overrides_no_scale():
    node = {'allocatable': {'cpu': 1, 'memory': 1, 'pods': 10}, 'unschedulable': False, 'master': False}
    buffer_per_asg = {
        'asg1': {'cpu': 5, 'memory': 5, 'pods': 10, 'nodes': 0}
    }
    result = calculate_required_auto_scaling_group_sizes({('asg1', 'z1'): [node]},
                                                         {('asg1', 'z1'): {'cpu': 0.5, 'memory': 0.5, 'pods': 1}},
                                                         buffer_per_asg, {}, {})
    assert result == {'asg1': 1}