github.com/SUSE/skuba@v1.4.17/ci/infra/testrunner/tests/test_dockercaps.py (about) 1 import logging 2 import pathlib 3 import textwrap 4 5 import pytest 6 7 from tests.utils import (check_pods_ready, wait) 8 9 logger = logging.getLogger("testrunner") 10 11 MANIFEST = """--- 12 apiVersion: v1 13 kind: Pod 14 metadata: 15 name: leap 16 spec: 17 containers: 18 - name: app 19 image: opensuse/leap:latest 20 command: ['/bin/sh', '-c', 'sleep 3600'] 21 --- 22 apiVersion: v1 23 kind: Pod 24 metadata: 25 name: sle12sp4 26 spec: 27 containers: 28 - name: app 29 image: registry.suse.com/suse/sles12sp4:latest 30 command: ['/bin/sh', '-c', 'sleep 3600'] 31 --- 32 apiVersion: v1 33 kind: Pod 34 metadata: 35 name: sle15 36 spec: 37 containers: 38 - name: app 39 image: registry.suse.com/suse/sle15:latest 40 command: ['/bin/sh', '-c', 'sleep 3600'] 41 --- 42 apiVersion: v1 43 kind: Pod 44 metadata: 45 name: sle15sp1 46 spec: 47 containers: 48 - name: app 49 image: registry.suse.de/suse/containers/sle-server/15/containers/suse/sle15:15.1 50 command: ['/bin/sh', '-c', 'sleep 3600']""" 51 52 53 @pytest.mark.flaky 54 def test_dockercaps(deployment, kubectl): 55 logger.info("Deploy testcases") 56 kubectl.run_kubectl( 57 "apply -f -", stdin=MANIFEST.encode()) 58 59 wait(check_pods_ready, 60 kubectl, 61 wait_delay=30, 62 wait_timeout=10, 63 wait_backoff=30, 64 wait_elapsed=180, 65 wait_allow=(AssertionError)) 66 67 logger.info("Test: Run 'su root -c id' on the containers") 68 pods = ["sle12sp4", "leap", "sle15", "sle15sp1"] 69 for container in pods: 70 output = kubectl.run_kubectl( 71 "exec -it {} -- su root -c id".format(container)) 72 assert 'uid=0' in output 73 74 logger.info("Test: Add a new user to the containers") 75 for container in pods: 76 output = kubectl.run_kubectl( 77 "exec -it {} -- useradd panos".format(container)) 78 assert 'PAM' not in output 79 80 # Remove the testing pods 81 kubectl.run_kubectl( 82 "delete -f -", stdin=MANIFEST.encode())