def test_basic(self): """ Sets up and tests dashboard, dns, storage, registry, ingress. """ print("Enabling DNS") microk8s_enable("dns") wait_for_pod_state("", "kube-system", "running", label="k8s-app=kube-dns") print("Enabling ingress") microk8s_enable("ingress") print("Validating ingress") validate_ingress() print("Disabling ingress") microk8s_disable("ingress") print("Enabling dashboard") microk8s_enable("dashboard") print("Validating dashboard") validate_dns_dashboard() print("Enabling storage") microk8s_enable("storage") print("Validating storage") validate_storage() microk8s_enable("registry") print("Validating registry") validate_registry() print("Validating Port Forward") validate_forward() print("Disabling registry") microk8s_disable("registry") print("Disabling dashboard") microk8s_disable("dashboard") print("Disabling storage") microk8s_disable("storage:destroy-storage") '''
def test_monitoring_addons(self): """ Test jaeger, prometheus and fluentd. """ # Prometheus operator on our lxc is chashlooping disabling the test for now. # print("Enabling prometheus") # microk8s_enable("prometheus") # print("Validating Prometheus") # validate_prometheus() # print("Disabling prometheus") # microk8s_disable("prometheus") print("Enabling fluentd") microk8s_enable("fluentd") print("Enabling jaeger") microk8s_enable("jaeger") print("Validating the Jaeger operator") validate_jaeger() print("Validating the Fluentd") validate_fluentd() print("Disabling jaeger") microk8s_disable("jaeger") print("Disabling fluentd") microk8s_disable("fluentd")
def test_monitoring_addons(self): """ Test jaeger, prometheus and fluentd. """ if platform.machine() != 'x86_64': print( "Fluentd, prometheus, jaeger tests are only relevant in x86 architectures" ) return if under_time_pressure == 'False': # Prometheus operator on our lxc is chashlooping disabling the test for now. #print("Enabling prometheus") #microk8s_enable("prometheus") #print("Validating Prometheus") #validate_prometheus() #print("Disabling prometheus") #microk8s_disable("prometheus") print("Enabling fluentd") microk8s_enable("fluentd") print("Enabling jaeger") microk8s_enable("jaeger") print("Validating the Jaeger operator") validate_jaeger() print("Validating the Fluentd") validate_fluentd() print("Disabling jaeger") microk8s_disable("jaeger") print("Disabling fluentd") microk8s_disable("fluentd") else: print('Skipping jaeger, prometheus and fluentd tests')
def test_basic(self): """ Sets up and tests dashboard, dns, storage, registry, ingress. """ print("Enabling DNS") microk8s_enable("dns") wait_for_pod_state("", "kube-system", "running", label="k8s-app=kube-dns") print("Enabling ingress") microk8s_enable("ingress") print("Validating ingress") validate_ingress() print("Disabling ingress") microk8s_disable("ingress") print("Enabling dashboard") microk8s_enable("dashboard") print("Validating dashboard") validate_dns_dashboard() print("Enabling storage") microk8s_enable("storage") print("Validating storage") validate_storage() microk8s_enable("registry") print("Validating registry") validate_registry() print("Validating Port Forward") validate_forward() print("Disabling registry") microk8s_disable("registry") print("Disabling dashboard") microk8s_disable("dashboard") print("Disabling storage") p = Popen("/snap/bin/microk8s.disable storage".split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT) p.communicate(input=b'Y\n')[0] '''
def test_metallb_addon(self): addon = "metallb" ip_ranges = "192.168.0.105-192.168.0.105,192.168.0.110-192.168.0.111,192.168.1.240/28" print("Enabling metallb") microk8s_enable("{}:{}".format(addon, ip_ranges), timeout_insec=500) validate_metallb_config(ip_ranges) print("Disabling metallb") microk8s_disable("metallb")
def test_multus(self): """ Sets up and validates Multus. """ print("Enabling Multus") microk8s_enable("multus") print("Validating Multus") validate_multus() print("Disabling Multus") microk8s_disable("multus")
def test_portainer(self): """ Sets up and validates Portainer. """ print("Enabling Portainer") microk8s_enable("portainer") print("Validating Portainer") validate_portainer() print("Disabling Portainer") microk8s_disable("portainer")
def test_openfaas(self): """ Sets up and validates OpenFaaS. """ print("Enabling openfaas") microk8s_enable("openfaas") print("Validating openfaas") validate_openfaas() print("Disabling openfaas") microk8s_disable("openfaas")
def test_traefik(self): """ Sets up and validates traefik. """ print("Enabling traefik") microk8s_enable("traefik") print("Validating traefik") validate_traefik() print("Disabling traefik") microk8s_disable("traefik")
def test_keda(self): """ Sets up and validates keda. """ print("Enabling keda") microk8s_enable("keda") print("Validating keda") validate_keda() print("Disabling keda") microk8s_disable("keda")
def test_falco(self): """ Sets up and validates falco. """ print("Enabling falco") microk8s_enable("falc") print("Validating falco") validate_keda() print("Disabling falco") microk8s_disable("falco")
def test_metrics_server(self): """ Test the metrics server. """ print("Enabling metrics-server") microk8s_enable("metrics-server") print("Validating the Metrics Server") validate_metrics_server() print("Disabling metrics-server") microk8s_disable("metrics-server")
def test_prometheus(self): """ Test prometheus. """ print("Enabling prometheus") microk8s_enable("prometheus") print("Validating Prometheus") validate_prometheus() print("Disabling prometheus") microk8s_disable("prometheus")
def test_ingress(self): """ Sets up ingress addon and validates it works. """ print("Enabling ingress") microk8s_enable("ingress") print("Validating ingress") validate_ingress() print("Disabling ingress") microk8s_disable("ingress")
def test_ambassador(self): """ Test Ambassador. """ print("Enabling Ambassador") microk8s_enable("ambassador") print("Validating ambassador") validate_ambassador() print("Disabling Ambassador") microk8s_disable("ambassador")
def test_linkerd(self): """ Sets up and validate linkerd """ print("Enabling Linkerd") microk8s_enable("linkerd") print("Validating Linkerd") validate_linkerd() print("Disabling Linkerd") microk8s_disable("linkerd")
def test_rbac_addon(self): """ Test RBAC. """ print("Enabling RBAC") microk8s_enable("rbac") print("Validating RBAC") validate_rbac() print("Disabling RBAC") microk8s_disable("rbac")
def test_kubeflow_addon(self): """ Test kubeflow. """ print("Enabling Kubeflow") microk8s_enable("kubeflow") print("Validating Kubeflow") validate_kubeflow() print("Disabling kubeflow") microk8s_disable("kubeflow")
def test_dns_addon(self): ip_ranges = "8.8.8.8,1.1.1.1" print("Enabling DNS") microk8s_enable("{}:{}".format("dns", ip_ranges), timeout_insec=500) wait_for_pod_state("", "kube-system", "running", label="k8s-app=kube-dns") print("Validating DNS config") validate_coredns_config(ip_ranges) print("Disabling DNS") microk8s_disable("dns")
def test_dns(self): """ Sets up DNS addon and validates it works. """ print("Enabling DNS") microk8s_enable("dns") wait_for_pod_state("", "kube-system", "running", label="k8s-app=kube-dns") # Create a bbox print("Validating dns") validate_dns() print("Disabling DNS") microk8s_disable("dns")
def test_storage(self): """ Sets up storage addon and validates it works. """ print("Enabling storage") microk8s_enable("storage") print("Validating storage") validate_storage() print("Disabling storage") p = Popen("/snap/bin/microk8s.disable storage".split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT) disable = p.communicate(input=b'Y')[0]
def test_inaccel(self): """ Sets up inaccel. """ try: print("Enabling inaccel") microk8s_enable("inaccel") except CalledProcessError: # Failed to enable addon. Skip the test. print("Could not enable inaccel support") return validate_inaccel() print("Disable inaccel") microk8s_disable("inaccel")
def test_linkerd(self): """ Sets up and validate linkerd """ if platform.machine() != 'x86_64': print("Linkerd tests are only relevant in x86 architectures") return print("Enabling Linkerd") microk8s_enable("linkerd") print("Validating Linkerd") validate_linkerd() print("Disabling Linkerd") microk8s_disable("linkerd")
def test_gpu(self): """ Sets up nvidia gpu in a gpu capable system. Skip otherwise. """ try: print("Enabling gpu") microk8s_enable("gpu") except CalledProcessError: # Failed to enable gpu. Skip the test. print("Could not enable GPU support") return validate_gpu() print("Disable gpu") microk8s_disable("gpu")
def test_openebs(self): """ Sets up and validates openebs. """ print("Enabling OpenEBS") try: check_output( "systemctl is-enabled iscsid".split()).strip().decode("utf8") microk8s_enable("openebs") print("Validating OpenEBS") validate_openebs() print("Disabling OpenEBS") microk8s_disable("openebs:force") except CalledProcessError as err: print("Nothing to do, since iscsid is not available") return
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_knative_istio(self): """ Sets up and validate istio. """ print("Enabling Knative and Istio") microk8s_enable("knative") print("Validating Istio") validate_istio() print("Validating Knative") validate_knative() print("Disabling Knative") microk8s_disable("knative") wait_for_namespace_termination("knative-serving", timeout_insec=600) print("Disabling Istio") microk8s_disable("istio")
def test_storage_registry(self): """ Sets up and tests the storage addon and the private registry. """ print("Enabling storage") microk8s_enable("storage") print("Validating storage") validate_storage() microk8s_enable("registry") print("Validating registry") validate_registry() print("Disabling registry") microk8s_disable("registry") print("Disabling storage") p = Popen("/snap/bin/microk8s.disable storage".split(), stdout=PIPE, stdin=PIPE, stderr=STDOUT) p.communicate(input=b'Y\n')[0]
def test_monitoring_addons(self): """ Test jaeger, prometheus and fluentd. """ print("Enabling fluentd") microk8s_enable("fluentd") print("Enabling jaeger") microk8s_enable("jaeger") print("Validating the Jaeger operator") validate_jaeger() print("Validating the Fluentd") validate_fluentd() print("Disabling jaeger") microk8s_disable("jaeger") print("Disabling fluentd") microk8s_disable("fluentd")
def test_linkerd(self): """ Sets up and validate linkerd """ if platform.machine() != 'x86_64': print("Linkerd tests are only relevant in x86 architectures") return if under_time_pressure != 'False': print("Skipping Linkerd tests as we are under time pressure") return print("Enabling Linkerd") microk8s_enable("linkerd") print("Validating Linkerd") validate_linkerd() print("Disabling Linkerd") microk8s_disable("linkerd")