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())