16.7. 为平台验证进行端到端测试

Cloud-native Network Function (CNF)测试镜像是一个容器化测试套件,用于验证运行 CNF 有效负载所需的功能。您可以使用此镜像验证启用了 CNF 的 OpenShift 集群,其中安装了运行 CNF 工作负载所需的所有组件。

由镜像运行的测试被分为三个不同的阶段:

  • 简单集群验证
  • 设置
  • 端到端测试

验证阶段检查集群中是否正确部署了所有需要测试的功能。

验证包括:

  • 划分属于要测试的机器的机器配置池
  • 在节点上启用 SCTP
  • 通过机器配置启用 xt_u32 内核模块
  • 安装了 Performance Addon Operator
  • 安装了 SR-IOV Operator
  • 安装了 PTP Operator
  • 使用 OVN kubernetes 作为 SDN

延迟测试(CNF-test 容器的一部分)也需要相同的验证。有关运行延迟测试的更多信息,请参阅运行延迟测试部分。

每次执行测试时都会执行环境配置。这包括创建 SR-IOV 节点策略、性能配置集或 PTP 配置集等项目。允许测试对已进行了配置的集群进行配置可能会影响集群的功能。另外,对配置项目(如 SR-IOV 节点策略)的更改可能会导致环境临时不可用,直到处理配置更改为止。

16.7.1. 先决条件

  • 测试入口点是 /usr/bin/test-run.sh。它运行设置测试集和真实的符合度测试套件。最低要求是为其提供 kubeconfig 文件及其相关的 $KUBECONFIG 环境变量,并挂载在一个卷中。
  • 测试假设集群中已存在指定功能(以 Operator 的方式)、在集群或机器配置中启用了相关的标记。
  • 有些测试需要已存在的机器配置池将其更改附加到其中。这必须在运行测试前在集群中创建。

    默认 worker 池为 worker-cnf,可使用以下清单创建:

    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfigPool
    metadata:
      name: worker-cnf
      labels:
        machineconfiguration.openshift.io/role: worker-cnf
    spec:
      machineConfigSelector:
        matchExpressions:
          - {
              key: machineconfiguration.openshift.io/role,
              operator: In,
              values: [worker-cnf, worker],
            }
      paused: false
      nodeSelector:
        matchLabels:
          node-role.kubernetes.io/worker-cnf: ""

    您可以使用 ROLE_WORKER_CNF 变量覆盖 worker 池名称:

    $ docker run -v $(pwd)/:/kubeconfig -e KUBECONFIG=/kubeconfig/kubeconfig -e
    ROLE_WORKER_CNF=custom-worker-pool registry.redhat.io/openshift4/cnf-tests-rhel8:v4.7 /usr/bin/test-run.sh
    注意

    目前,不是所有测试都选择性地在属于该池的节点中运行。