Run sonobuoy on tests
Supported modes by sonobuoy are: certified-conformance conformance-lite non-disruptive-conformance quick Default to quick Change-Id: I75cef50d022b3145719bb4271969297b5fd1beba
This commit is contained in:
parent
b3c601735b
commit
95f10fa786
|
@ -0,0 +1,148 @@
|
|||
<<<<<<< PATCH SET (b70060 Run sonobuoy on tests)
|
||||
- project:
|
||||
queue: magnum
|
||||
templates:
|
||||
- check-requirements
|
||||
- tempest-plugin-jobs
|
||||
check:
|
||||
jobs:
|
||||
- magnum-tempest-plugin-tests-api
|
||||
- magnum-tempest-plugin-tests-api-rbac
|
||||
- magnum-tempest-plugin-tests-api-2023-1
|
||||
- magnum-tempest-plugin-tests-api-zed
|
||||
- magnum-tempest-plugin-tests-api-yoga
|
||||
- magnum-tempest-plugin-tests-cluster-k8s_fcos_v1
|
||||
gate:
|
||||
jobs:
|
||||
- magnum-tempest-plugin-tests-api
|
||||
|
||||
- job:
|
||||
name: magnum-tempest-plugin-tests-api-2023-1
|
||||
parent: magnum-tempest-plugin-tests-api
|
||||
nodeset: openstack-single-node-jammy
|
||||
override-checkout: stable/2023.1
|
||||
|
||||
- job:
|
||||
name: magnum-tempest-plugin-tests-api-zed
|
||||
parent: magnum-tempest-plugin-tests-api
|
||||
nodeset: openstack-single-node-focal
|
||||
override-checkout: stable/zed
|
||||
|
||||
- job:
|
||||
name: magnum-tempest-plugin-tests-api-yoga
|
||||
parent: magnum-tempest-plugin-tests-api
|
||||
nodeset: openstack-single-node-focal
|
||||
override-checkout: stable/yoga
|
||||
|
||||
- job:
|
||||
name: magnum-tempest-plugin-tests-api-rbac
|
||||
parent: magnum-tempest-plugin-tests-api
|
||||
vars:
|
||||
tempest_test_regex: ^magnum_tempest_plugin.tests.api.v1.rbac
|
||||
devstack_localrc:
|
||||
MAGNUM_ENFORCE_SCOPE: true
|
||||
devstack_local_conf:
|
||||
test-config:
|
||||
$TEMPEST_CONFIG:
|
||||
enforce_scope:
|
||||
magnum: true
|
||||
|
||||
- job:
|
||||
name: magnum-tempest-plugin-tests-cluster-k8s_fcos_v1
|
||||
parent: magnum-tempest-plugin-tests-cluster
|
||||
|
||||
- job:
|
||||
name: magnum-tempest-plugin-tests-api
|
||||
parent: magnum-tempest-plugin-base
|
||||
vars:
|
||||
tox_envlist: all
|
||||
tempest_test_regex: ^magnum_tempest_plugin.tests.api
|
||||
tempest_exclude_regex: (test_create_list_sign_delete_clusters|test_create_cluster_with_zero_nodes)
|
||||
devstack_local_conf:
|
||||
test-config:
|
||||
$TEMPEST_CONFIG:
|
||||
magnum:
|
||||
image_id: fedora-coreos-38.20230806.3.0-openstack.x86_64
|
||||
nic_id: public
|
||||
keypair_id: default
|
||||
flavor_id: ds2G
|
||||
master_flavor_id: ds2G
|
||||
copy_logs: true
|
||||
|
||||
- job:
|
||||
name: magnum-tempest-plugin-tests-cluster
|
||||
parent: magnum-tempest-plugin-base
|
||||
nodeset: magnum-nested-virt-ubuntu-jammy
|
||||
vars:
|
||||
configure_swap_size: 8192
|
||||
tox_envlist: all
|
||||
tempest_test_regex: ^magnum_tempest_plugin.tests.api.v1.test_cluster.ClusterTest.test_create_list_sign_delete_clusters
|
||||
devstack_local_conf:
|
||||
test-config:
|
||||
$TEMPEST_CONFIG:
|
||||
magnum:
|
||||
image_id: fedora-coreos-38.20230806.3.0-openstack.x86_64
|
||||
nic_id: public
|
||||
keypair_id: default
|
||||
flavor_id: ds2G
|
||||
master_flavor_id: ds2G
|
||||
copy_logs: true
|
||||
copy_logs_sucess: true
|
||||
sonobuoy_mode: conformance-lite
|
||||
devstack_localrc:
|
||||
LIBVIRT_TYPE: kvm
|
||||
LIBVIRT_CPU_MODE: host-passthrough
|
||||
zuul_copy_output:
|
||||
/tmp/magnum-nodes: logs
|
||||
|
||||
- job:
|
||||
name: magnum-tempest-plugin-base
|
||||
description: |
|
||||
Magnum functional tests base layer
|
||||
parent: devstack-tempest
|
||||
required-projects:
|
||||
- openstack/barbican
|
||||
- openstack/heat
|
||||
- openstack/magnum
|
||||
- openstack/magnum-tempest-plugin
|
||||
- openstack/python-magnumclient
|
||||
vars:
|
||||
tempest_plugins:
|
||||
- magnum-tempest-plugin
|
||||
devstack_localrc:
|
||||
USE_PYTHON3: true
|
||||
GLANCE_LIMIT_IMAGE_SIZE_TOTAL: 5000
|
||||
MAGNUM_GUEST_IMAGE_URL: https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/38.20230806.3.0/x86_64/fedora-coreos-38.20230806.3.0-openstack.x86_64.qcow2.xz
|
||||
MAGNUM_IMAGE_NAME: fedora-coreos-38.20230806.3.0-openstack.x86_64
|
||||
devstack_plugins:
|
||||
heat: https://opendev.org/openstack/heat
|
||||
barbican: https://opendev.org/openstack/barbican
|
||||
magnum: https://opendev.org/openstack/magnum
|
||||
devstack_services:
|
||||
# Disable swift and dependent c-bak service to support upload of .qcow2.xz image in the gate
|
||||
s-account: false
|
||||
s-container: false
|
||||
s-object: false
|
||||
s-proxy: false
|
||||
c-bak: false
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^api-ref/.*$
|
||||
- ^doc/.*$
|
||||
- ^specs/.*$
|
||||
- ^install-guide/.*$
|
||||
- ^releasenotes/.*$
|
||||
- ^dockerfiles/.*$
|
||||
|
||||
- nodeset:
|
||||
name: magnum-nested-virt-ubuntu-jammy
|
||||
nodes:
|
||||
- name: controller
|
||||
label: nested-virt-ubuntu-jammy
|
||||
groups:
|
||||
- name: tempest
|
||||
nodes:
|
||||
- controller
|
||||
|
||||
=======
|
||||
>>>>>>> BASE (b3c601 CI: Wait before checking pods status)
|
|
@ -14,6 +14,7 @@ import logging
|
|||
import os
|
||||
import subprocess
|
||||
|
||||
from pathlib import Path
|
||||
from tempest import config
|
||||
from tempest import test
|
||||
|
||||
|
@ -121,3 +122,47 @@ class BaseMagnumTest(test.BaseTestCase):
|
|||
except Exception as e:
|
||||
cls.LOG.exception(e)
|
||||
raise
|
||||
|
||||
@classmethod
|
||||
def run_sonobuoy(cls, sonobuoy_mode="quick"):
|
||||
"""Run sonobuoy
|
||||
|
||||
This method will run sonobuoy tests,
|
||||
expects a kube.config file under /tmp/magnum-nodes/
|
||||
"""
|
||||
|
||||
try:
|
||||
cls.LOG.debug("running sonobuoy")
|
||||
subprocess.check_call(["/opt/stack/bin/sonobuoy",
|
||||
"run",
|
||||
"--mode",
|
||||
sonobuoy_mode,
|
||||
"--wait",
|
||||
"--kubeconfig",
|
||||
"/tmp/magnum-nodes/kube.conf"])
|
||||
except Exception as e:
|
||||
cls.LOG.exception(e)
|
||||
raise
|
||||
|
||||
if sonobuoy_mode != "quick":
|
||||
try:
|
||||
cls.LOG.debug("retrieving sonobuoy logs")
|
||||
Path("/tmp/magnum-nodes/sonobuoy").mkdir(parents=True,
|
||||
exist_ok=True)
|
||||
subprocess.check_call(["/opt/stack/bin/sonobuoy",
|
||||
"retrieve",
|
||||
"--extract",
|
||||
"--retrieve-path",
|
||||
"/tmp/magnum-nodes/sonobuoy",
|
||||
"--kubeconfig",
|
||||
"/tmp/magnum-nodes/kube.conf"])
|
||||
except Exception as e:
|
||||
cls.LOG.exception(e)
|
||||
cls.LOG.debug("Getting aggregator logs")
|
||||
aggregator = subprocess.check_call(["/opt/stack/bin/kubectl",
|
||||
"logs",
|
||||
"sonobuoy",
|
||||
"-nsonobuoy"])
|
||||
with open("/tmp/magnum-nodes/sonobuoy_logs.txt") as outfile:
|
||||
outfile.write(aggregator)
|
||||
raise
|
||||
|
|
|
@ -161,6 +161,14 @@ class Config(object):
|
|||
def set_labels(cls, config):
|
||||
cls.labels = ast.literal_eval(CONF.magnum.labels)
|
||||
|
||||
@classmethod
|
||||
def set_run_sonobuoy(cls, config):
|
||||
cls.run_sonobuoy = CONF.magnum.run_sonobuoy
|
||||
|
||||
@classmethod
|
||||
def set_sonobuoy_mode(cls, config):
|
||||
cls.sonobuoy_mode = CONF.magnum.sonobuoy_mode
|
||||
|
||||
@classmethod
|
||||
def setUp(cls):
|
||||
cls.set_admin_creds(config)
|
||||
|
@ -185,3 +193,5 @@ class Config(object):
|
|||
cls.set_cluster_template_id(config)
|
||||
cls.set_cluster_creation_timeout(config)
|
||||
cls.set_labels(config)
|
||||
cls.set_run_sonobuoy(config)
|
||||
cls.set_sonobuoy_mode(config)
|
||||
|
|
|
@ -79,7 +79,10 @@ class ClusterTestTemplate(base.BaseTempestTest):
|
|||
|
||||
# NOTE (dimtruck) by default tempest sets timeout to 20 mins.
|
||||
# We need more time.
|
||||
test_timeout = 3600
|
||||
if config.Config.run_sonobuoy:
|
||||
test_timeout = 7200
|
||||
else:
|
||||
test_timeout = 3600
|
||||
self.useFixture(fixtures.Timeout(test_timeout, gentle=True))
|
||||
|
||||
def tearDown(self):
|
||||
|
@ -256,6 +259,12 @@ users:
|
|||
except Exception as e:
|
||||
self.LOG.debug("kubectl exception: %s\n" % e)
|
||||
raise
|
||||
if config.Config.run_sonobuoy:
|
||||
try:
|
||||
self.run_sonobuoy(config.Config.sonobuoy_mode)
|
||||
except Exception as e:
|
||||
self.LOG.debug("sonobuoy exception: %s\n" % e)
|
||||
raise
|
||||
|
||||
# test cluster delete
|
||||
self._delete_cluster(cluster_model.uuid)
|
||||
|
|
|
@ -86,4 +86,11 @@ MagnumGroup = [
|
|||
cfg.StrOpt("labels",
|
||||
default={},
|
||||
help="A dict of labels to be defined in cluster template"),
|
||||
cfg.BoolOpt("run_sonobuoy",
|
||||
default=True,
|
||||
help="Specify whether to run sonobuoy in cluster creation "
|
||||
"test"),
|
||||
cfg.StrOpt("sonobuoy_mode",
|
||||
default="quick",
|
||||
help="Sonobuoy mode, default is quick"),
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue