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
注意目前,不是所有测试都选择性地在属于该池的节点中运行。