github.com/SUSE/skuba@v1.4.17/ci/infra/testrunner/tests/test_nginx_deployment.py (about)

     1  import pytest
     2  import requests
     3  
     4  
     5  @pytest.mark.pr
     6  def test_nginx_deployment(deployment, platform, skuba, kubectl):
     7      workers = skuba.num_of_nodes("worker")
     8      kubectl.run_kubectl("create deployment nginx --image=nginx:stable-alpine")
     9      kubectl.run_kubectl("scale deployment nginx --replicas={replicas}".format(replicas=workers))
    10      kubectl.run_kubectl("expose deployment nginx --port=80 --type=NodePort")
    11      kubectl.run_kubectl("wait --for=condition=available deploy/nginx --timeout=3m")
    12      readyReplicas = kubectl.run_kubectl("get deployment/nginx -o jsonpath='{ .status.readyReplicas }'")
    13  
    14      assert int(readyReplicas) == workers
    15  
    16      nodePort = kubectl.run_kubectl("get service/nginx -o jsonpath='{ .spec.ports[0].nodePort }'")
    17  
    18      wrk_idx = 0
    19      ip_addresses = platform.get_nodes_ipaddrs("worker")
    20  
    21      url = "{protocol}://{ip}:{port}{path}".format(protocol="http", ip=str(ip_addresses[wrk_idx]), port=str(nodePort), path="/")
    22      r = requests.get(url)
    23  
    24      assert "Welcome to nginx" in r.text
    25  
    26      # Cleanup
    27      kubectl.run_kubectl("delete --wait --timeout=60s service/nginx")
    28      kubectl.run_kubectl("delete --wait --timeout=60s deployments/nginx")
    29  
    30      with pytest.raises(Exception):
    31          kubectl.run_kubectl("get service/nginx")
    32  
    33      with pytest.raises(Exception):
    34          kubectl.run_kubectl("get deployments/nginx")