-
Notifications
You must be signed in to change notification settings - Fork 715
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Kubernetes Testing] Add DUT Join Kubernetes Master Test Cases (#2520)
Added four Kubernetes DUT Join Test Cases: - TC_JOIN_2: Ensure kube server disable flag works as expected- DUT joins master when disable=false, and DUT resets from master when disable=true - TC_JOIN_3: Ensure DUT joins after config reload with no config change (config saved with disable=false) - TC_JOIN_4: Ensure DUT resets from master when config reload toggles disable to true (config saved with disable=true) - TC_JOIN_5: Ensure DUT joins master when config reload toggles disable to false (config saved with disable=false)
- Loading branch information
1 parent
f69059e
commit ccc36ed
Showing
6 changed files
with
151 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
import pytest | ||
import time | ||
import k8s_test_utilities as ku | ||
|
||
from tests.common.helpers.assertions import pytest_assert | ||
from tests.common.platform.processes_utils import wait_critical_processes | ||
|
||
pytestmark = [ | ||
pytest.mark.topology('any') | ||
] | ||
|
||
def test_config_reload_no_toggle(duthost, k8scluster): | ||
""" | ||
Test case to ensure that when DUT starts as joined to master, and config is saved with disable=false, DUT is still joined to master after config reload | ||
Joins master | ||
Performs config reload | ||
Ensures that DUT is still joined to master after config reload | ||
Args: | ||
duthost: DUT host object | ||
k8scluster: shortcut fixture for getting cluster of Kubernetes master hosts | ||
""" | ||
ku.join_master(duthost, k8scluster.vip) # Assertion within to ensure successful join | ||
dut_cmds = ['sudo config save -y', | ||
'sudo config reload -y'] | ||
duthost.shell_cmds(cmds=dut_cmds) | ||
wait_critical_processes(duthost) | ||
|
||
server_connect_exp_status = True | ||
server_connect_act_status = ku.check_connected(duthost) | ||
server_connect_status_updated = ku.poll_for_status_change(duthost, server_connect_exp_status) | ||
pytest_assert(server_connect_status_updated, "Unexpected k8s server connection status after config reload, Expected server connected status: {}, Found server connected status: {}".format(server_connect_exp_status, server_connect_act_status)) | ||
|
||
|
||
def test_config_reload_toggle_join(duthost, k8scluster): | ||
""" | ||
Test case to ensure that when DUT is not joined to the master due to (unsaved) disable=true, but config is saved with disable=false, DUT joins after config reload | ||
Saves config with configured VIP and disable=false | ||
Sets disable=true without saving config, and ensure that DUT resets from master | ||
Performs config reload | ||
Ensures that DUT is joined to master after config reload | ||
Args: | ||
duthost: DUT host object | ||
k8scluster: shortcut fixture for getting cluster of Kubernetes master hosts | ||
""" | ||
dut_cmds = ['sudo config kube server ip {}'.format(k8scluster.vip), | ||
'sudo config kube server disable off', | ||
'sudo config save -y'] | ||
duthost.shell_cmds(cmds=dut_cmds) | ||
|
||
duthost.shell('sudo config kube server disable on') | ||
server_connect_exp_status = False | ||
server_connect_act_status = ku.check_connected(duthost) | ||
server_connect_status_updated = ku.poll_for_status_change(duthost, server_connect_exp_status) | ||
pytest_assert(server_connect_status_updated, "Unexpected k8s server connection status after setting disable=true, Expected server connected status: {}, Found server connected status: {}".format(server_connect_exp_status, server_connect_act_status)) | ||
|
||
duthost.shell('sudo config reload -y') | ||
wait_critical_processes(duthost) | ||
|
||
server_connect_exp_status = True | ||
server_connect_act_status = ku.check_connected(duthost) | ||
server_connect_status_updated = ku.poll_for_status_change(duthost, server_connect_exp_status) | ||
pytest_assert(server_connect_status_updated, "Unexpected k8s server connection status after config reload, Expected server connected status: {}, Found server connected status: {}".format(server_connect_exp_status, server_connect_act_status)) | ||
|
||
|
||
def test_config_reload_toggle_reset(duthost, k8scluster): | ||
""" | ||
Test case to ensure that when DUT is joined to master (disable=false, unsaved) but config is saved with disable=true, DUT resets from master after config reload | ||
Saves config with disable=true | ||
Joins master, which sets disable=false unsaved | ||
Performs config reload | ||
Ensures that DUT has reset from the master after config reload, as disable=true was saved | ||
Args: | ||
duthost: DUT host object | ||
k8scluster: shortcut fixture for getting cluster of Kubernetes master hosts | ||
""" | ||
dut_cmds = ['sudo config kube server disable on', | ||
'sudo config save -y'] | ||
duthost.shell_cmds(cmds=dut_cmds) | ||
|
||
ku.join_master(duthost, k8scluster.vip) | ||
|
||
duthost.shell('sudo config reload -y') | ||
wait_critical_processes(duthost) | ||
|
||
server_connect_exp_status = False | ||
server_connect_act_status = ku.check_connected(duthost) | ||
server_connect_status_updated = ku.poll_for_status_change(duthost, server_connect_exp_status) | ||
pytest_assert(server_connect_status_updated, "Unexpected k8s server connection status after config reload, Expected server connected status: {}, Found server connected status: {}".format(server_connect_exp_status, server_connect_act_status)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
import pytest | ||
import time | ||
import k8s_test_utilities as ku | ||
|
||
from tests.common.helpers.assertions import pytest_assert | ||
|
||
pytestmark = [ | ||
pytest.mark.topology('any') | ||
] | ||
|
||
def test_disable_flag(duthost, k8scluster): | ||
""" | ||
Test case to ensure that kube server disable flag works as expected when toggled | ||
Joins master to set baseline state (disable=false, joined to master) | ||
Set disable=true, ensure DUT resets from master | ||
Set disable=false, ensure DUT joins master | ||
Args: | ||
duthost: DUT host object | ||
k8scluster: shortcut fixture for getting cluster of Kubernetes master hosts | ||
""" | ||
ku.join_master(duthost, k8scluster.vip) | ||
|
||
duthost.shell('sudo config kube server disable on') | ||
server_connect_exp_status = False | ||
server_connect_act_status = ku.check_connected(duthost) | ||
server_connect_status_updated = ku.poll_for_status_change(duthost, server_connect_exp_status) | ||
pytest_assert(server_connect_status_updated, "Test disable flag failed, Expected server connected status: {}, Found server connected status: {}".format(server_connect_exp_status, server_connect_act_status)) | ||
|
||
duthost.shell('sudo config kube server disable off') | ||
server_connect_exp_status = True | ||
server_connect_act_status = ku.check_connected(duthost) | ||
server_connect_status_updated = ku.poll_for_status_change(duthost, server_connect_exp_status) | ||
pytest_assert(server_connect_status_updated, "Test disable flag failed, Expected server connected status: {}, Found server connected status: {}".format(server_connect_exp_status, server_connect_act_status)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters