第 2 章 使用 Test Operator 运行 Tempest 测试


使用 Tempest 测试时,请使用 OpenShift (RHOSO) test-operator 上的 Red Hat OpenStack Services。

先决条件

  • 已部署 RHOSO 环境。
  • 确保您位于 OpenStack 项目中:

    $ oc project openstack
    Now using project "openstack" on server "https://api.crc.testing:6443".

2.1. tempest 自定义资源配置文件

test-v1beta1-tempest.yaml 文件是一个 Tempest 自定义资源(CR)示例,您可以编辑并使用 test-operator 执行 Tempest 测试。

apiVersion: test.openstack.org/v1beta1
kind: Tempest
metadata:
  name: tempest-tests
  namespace: openstack
spec:
  containerImage: ""
  # storageClass: local-storage
  # parallel: false
  # debug: false

  # configOverwrite
  # ---------------
  # An interface to overwrite default config files like e.g. logging.conf But can also
  # be used to add additional files. Those get added to the service config dir in
  # /etc/test_operator/<file>
  #
  # configOverwrite:
  #   file.txt: |
  #     content of the file

  # SSHKeySecretName
  # ----------------
  # SSHKeySecretName is the name of the k8s secret that contains an ssh key. The key is
  # mounted to ~/.ssh/id_ecdsa in the tempest pod. Note, the test-operator looks for
  # the private key in ssh-privatekey field of the secret.
  #
  # SSHKeySecretName: secret_name

  # Privileged
  # ----------
  # When the privileged parameter has the default value of false, the test pods spawn with
  # allowedPrivilegedEscalation: false and without NET_ADMIN, NET_RAW, and the default capabilities.
  # You must set the value of the privileged parameter to true for some test-operator functionalities,
  # such as extraRPMs in Tempest CR, or some set tobiko tests, but setting privileged: true can decrease security.

  # privileged: false

  tempestRun:
    # NOTE: All parameters have default values (use only when you want to override
    #       the default behaviour)
    includeList: | # <-- Use | to preserve \n
      tempest.api.identity.v3.*
    concurrency: 8
    # excludeList: | # <-- Use | to preserve \n
    #   tempest.api.identity.v3.*
    # workerFile: | # <-- Use | to preserve \n
    #   - worker:
    #     - tempest.api.*
    #     - neutron_tempest_tests
    #   - worker:
    #     - tempest.scenario.*
    # smoke: false
    # serial: false
    # parallel: true
    # externalPlugin:
    #   - repository: "https://opendev.org/openstack/barbican-tempest-plugin.git"
    #   - repository: "https://opendev.org/openstack/neutron-tempest-plugin.git"
    #     changeRepository: "https://review.opendev.org/openstack/neutron-tempest-plugin"
    #     changeRefspec: "refs/changes/97/896397/2"
    # extraImages:
    #   - URL: https://download.cirros-cloud.net/0.6.2/cirros-0.6.2-x86_64-disk.img
    #     name: cirros-0.6.2-test-operator
    #       flavor:
    #         name: cirros-0.6.2-test-operator-flavor
    #         RAM: 512
    #         disk: 20
    #         vcpus: 1

    # extraRPMs:
    # ----------
    # A list of URLs that point to RPMs that should be installed before
    # the execution of tempest. WARNING! This parameter has no efect when used
    # in combination with externalPlugin parameter.
    # extraRPMs:
    #   - https://cbs.centos.org/kojifiles/packages/python-sshtunnel/0.4.0/12.el9s/noarch/python3-sshtunnel-0.4.0-12.el9s.noarch.rpm
    #   - https://cbs.centos.org/kojifiles/packages/python-whitebox-tests-tempest/0.0.3/0.1.766ff04git.el9s/noarch/python3-whitebox-tests-tempest-0.0.3-0.1.766ff04git.el9s.noarch.rpm

  tempestconfRun:
    # NOTE: All parameters have default values (use only when you want to override
    #       the default behaviour)
    # create: true
    # collectTiming: false
    # insecure: false
    # noDefaultDeployer: false
    # debug: false
    # verbose: false
    # nonAdmin: false
    # retryImage: false
    # convertToRaw: false
    # out: ./etc/tempest.conf
    # flavorMinMem: 128
    # flavorMinDisk: 1
    # timeout: 600
    # imageDiskFormat: qcow2
    # image: https://download.cirros-cloud.net/0.5.2/cirros-0.5.2-x86_64-disk.img

    # The following text will be mounted to the tempest pod
    # as /etc/test_operator/deployer_input.yaml
    # deployerInput: |
    #   [section]
    #   value1 = exmaple_value2
    #   value2 = example_value2

    # The following text will be mounted to the tempest pod
    # as /etc/test_operator/accounts.yaml
    # testAccounts: |
    #  - username: 'multi_role_user'
    #    tenant_name: 'test_tenant_42'
    #    password: 'test_password'
    #     roles:
    #       - 'fun_role'
    #       - 'not_an_admin'
    #       - 'an_admin'

    # The following text will be mounted to the tempest pod
    # as /etc/test_operator/profile.yaml
    # profile: |
    #   collect_timing: false
    #   create: false
    #   create_accounts_file: null

    # createAccountsFile: /path/to/accounts.yaml
    # generateProfile: /path/to/profile.yaml
    # networkID:
    # append: |  # <-- Use | to preserve \n
    #   section1.name1 value1
    #   section1.name1 value2
    # remove: |  # <-- Use | to preserve \n
    #   section1.name1 value1
    #   section1.name1 value2
    # overrides: | # <-- Use | to preserve \n
    #  overrides_section1.name1 value1
    #  overrides_section1.name1 value2

  # Workflow
  # --------
  # Workflow section can be utilized to spawn multiple test pods at the same time.
  # The commented out example spawns two test pods that are executed sequentially.
  # Each step inherits all configuration that is specified outside of the workflow
  # field. For each step you can overwrite values specified in the tempestRun and
  # tempestconfRun sections.
  #
  # workflow:
  #   - stepName: firstStep
  #     tempestRun:
  #       includeList: |
  #         tempest.api.*
  #   - stepName: secondStep
  #     tempestRun:
  #       includeList: |
  #         neutron_tempest_plugin.*
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.