def test_dashboard(self): """ Validates dashboards works. """ wait_for_pod_state("", "kube-system", "running", label="k8s-app=kube-dns") validate_dashboard()
def test_dashboard(self): """ Sets up dashboard and validates it works. """ print("Enabling DNS") microk8s_enable("dns") wait_for_pod_state("", "kube-system", "running", label="k8s-app=kube-dns") print("Enabling dashboard") microk8s_enable("dashboard") print("Validating dashboard") validate_dashboard() print("Disabling DNS") microk8s_disable("dns") print("Disabling dashboard") microk8s_disable("dashboard")
def test_upgrade(self): """ Deploy, probe, upgrade, validate nothing broke. """ print("Testing upgrade from {} to {}".format(upgrade_from, upgrade_to)) cmd = "sudo snap install microk8s --classic --channel={}".format( upgrade_from).split() check_call(cmd) wait_for_installation() if is_container(): # In some setups (eg LXC on GCE) the hashsize nf_conntrack file under # sys is marked as rw but any update on it is failing causing kube-proxy # to fail. here = os.path.dirname(os.path.abspath(__file__)) apply_patch = os.path.join(here, "patch-kube-proxy.sh") check_call("sudo {}".format(apply_patch).split()) # Run through the validators and # select those that were valid for the original snap test_matrix = {} try: enable = microk8s_enable("dns") wait_for_pod_state("", "kube-system", "running", label="k8s-app=kube-dns") assert "Nothing to do for" not in enable validate_dns() test_matrix['dns'] = validate_dns except: print('Will not test dns') try: enable = microk8s_enable("dashboard") assert "Nothing to do for" not in enable validate_dashboard() test_matrix['dashboard'] = validate_dashboard except: print('Will not test dashboard') try: enable = microk8s_enable("storage") assert "Nothing to do for" not in enable validate_storage() test_matrix['storage'] = validate_storage except: print('Will not test storage') try: enable = microk8s_enable("ingress") assert "Nothing to do for" not in enable validate_ingress() test_matrix['ingress'] = validate_ingress except: print('Will not test ingress') try: enable = microk8s_enable("gpu") assert "Nothing to do for" not in enable validate_gpu() test_matrix['gpu'] = validate_gpu except: print('Will not test gpu') try: enable = microk8s_enable("registry") assert "Nothing to do for" not in enable validate_registry() test_matrix['registry'] = validate_registry except: print('Will not test registry') try: validate_forward() test_matrix['forward'] = validate_forward except: print('Will not test port forward') try: enable = microk8s_enable("metrics-server") assert "Nothing to do for" not in enable validate_metrics_server() test_matrix['metrics_server'] = validate_metrics_server except: print('Will not test the metrics server') # Refresh the snap to the target if upgrade_to.endswith('.snap'): cmd = "sudo snap install {} --classic --dangerous".format( upgrade_to).split() else: cmd = "sudo snap refresh microk8s --channel={}".format( upgrade_to).split() check_call(cmd) # Allow for the refresh to be processed time.sleep(10) wait_for_installation() # Test any validations that were valid for the original snap for test, validation in test_matrix.items(): print("Testing {}".format(test)) validation() if not is_container(): # On lxc umount docker overlay is not permitted. check_call("sudo snap remove microk8s".split())
def test_upgrade(self): """ Deploy, probe, upgrade, validate nothing broke. """ print("Testing upgrade from {} to {}".format(upgrade_from, upgrade_to)) cmd = "sudo snap install microk8s --classic --{}".format( upgrade_from).split() check_call(cmd) wait_for_installation() # Run through the validators and # select those that were valid for the original snap test_matrix = {} try: microk8s_enable("dns") wait_for_pod_state("", "kube-system", "running", label="k8s-app=kube-dns") validate_dns() test_matrix['dns'] = validate_dns except: print('Will not test dns') try: microk8s_enable("dashboard") validate_dashboard() test_matrix['dashboard'] = validate_dashboard except: print('Will not test dashboard') try: microk8s_enable("storage") validate_storage() test_matrix['storage'] = validate_storage except: print('Will not test storage') try: microk8s_enable("ingress") validate_ingress() test_matrix['ingress'] = validate_ingress except: print('Will not test ingress') # Refresh the snap to the target if upgrade_to.endswith('.snap'): cmd = "sudo snap install {} --classic --dangerous".format( upgrade_to).split() else: cmd = "sudo snap refresh microk8s --{}".format(upgrade_to).split() check_call(cmd) # Allow for the refresh to be processed time.sleep(10) wait_for_installation() # Test any validations that were valid for the original snap for test, validation in test_matrix.items(): print("Testing {}".format(test)) validation() cmd = "sudo snap remove microk8s".split() check_call(cmd)
def test_upgrade(self): """ Deploy, probe, upgrade, validate nothing broke. """ print("Testing upgrade from {} to {}".format(upgrade_from, upgrade_to)) cmd = "sudo snap install microk8s --classic --channel={}".format( upgrade_from).split() check_call(cmd) wait_for_installation() # Run through the validators and # select those that were valid for the original snap test_matrix = {} try: enable = microk8s_enable("dns") wait_for_pod_state("", "kube-system", "running", label="k8s-app=kube-dns") assert "Nothing to do for" not in enable validate_dns() test_matrix['dns'] = validate_dns except: print('Will not test dns') try: enable = microk8s_enable("dashboard") assert "Nothing to do for" not in enable validate_dashboard() test_matrix['dashboard'] = validate_dashboard except: print('Will not test dashboard') try: enable = microk8s_enable("storage") assert "Nothing to do for" not in enable validate_storage() test_matrix['storage'] = validate_storage except: print('Will not test storage') try: enable = microk8s_enable("ingress") assert "Nothing to do for" not in enable validate_ingress() test_matrix['ingress'] = validate_ingress except: print('Will not test ingress') try: enable = microk8s_enable("gpu") assert "Nothing to do for" not in enable validate_gpu() test_matrix['gpu'] = validate_gpu except: print('Will not test gpu') try: enable = microk8s_enable("registry") assert "Nothing to do for" not in enable validate_registry() test_matrix['registry'] = validate_registry except: print('Will not test registry') try: validate_forward() test_matrix['forward'] = validate_forward except: print('Will not test port forward') try: enable = microk8s_enable("metrics-server") assert "Nothing to do for" not in enable validate_metrics_server() test_matrix['metrics_server'] = validate_metrics_server except: print('Will not test the metrics server') # Refresh the snap to the target if upgrade_to.endswith('.snap'): cmd = "sudo snap install {} --classic --dangerous".format( upgrade_to).split() else: cmd = "sudo snap refresh microk8s --channel={}".format( upgrade_to).split() check_call(cmd) # Allow for the refresh to be processed time.sleep(10) wait_for_installation() # Test any validations that were valid for the original snap for test, validation in test_matrix.items(): print("Testing {}".format(test)) validation() # On lxc umount docker overlay is not permitted. try: check_call( "sudo grep -E (lxc|hypervisor) /proc/1/environ /proc/cpuinfo". split()) except CalledProcessError: check_call("sudo snap remove microk8s".split())