Rafal Lal fe8b267b30 intel-ethernet-operator system app integration
Initial integration of intel-ethernet-operator application.
- Add intel-ethernet-operator helm charts together with dependencies and
  fluxcd wrapper.
- Add python-k8s-app for integration with starlingx system.
- Add debian packing and other miscellaneous files.
- Add UFT (Unified Flow Tool) docker image build script.

Test Status:
- PASS: Build application .deb, generate tarball, copy to stx active
  controller.
- PASS: Build UFT image using included scripts, image is built properly
  with provided patch applied.
- PASS: Verify that app is uploaded, applied and ethernet operator as
  well as dependencies pods are created.
- PASS: Check if '/var/lib/firmware' is written to
  '/sys/module/firmware_class/parameters/path' on nodes on which fwddp
  daemon or manager pods are present, on operator deployment and after
  reboots.
- PASS: Update firmware of NIC (Network Interface Card) to any of
  supported by operator versions.
- PASS: Place requested DDP (Dynamic Device Personalization) profile
  in correct directory for ice driver to pick up.
- PASS: Create VFs (Virtual Function) using sriov-network-operator,
  create FlowConfigNodeAgent deployment, verify that UFT container
  is bound to VF0 of selected VFs pool.
- PASS: Create NodeFlowConfig and ClusterFlowConfig rules.
- PASS: App upload, apply, remove, delete verified in simplex mode.
- PASS: All sriov-network and intel-ethernet operator CRDs
  (Custom Resource Definition) are deleted before app removal in
  intel-ethernet-operator namespace.
- PASS: Check if '/sys/module/firmware_class/parameters/path' file
  is cleared after uninstall on nodes on which operator enabled
  customized firmware search path.

Failure Tests:
- PASS: Operator deployment shall fail when docker image download fails
  during system application-apply.
- PASS: Applying EthernetCLusterConfig (firmware and ddp update CR) with
  incorrect checksums shall fail.
- PASS: Applying NodeFlowConfig or ClusterFlowConfig with incorrect
  rules shall fail on webhook verification stage.
- PASS: Applying any intel-ethernet-operator CRDs when operator is not
  deployed shall fail.
- PASS: Deleting VF to which FlowConfigNodeAgent is bound shall cause
  FlowConfigNodeAgent failure.

Story: 2010562
Task: 48522

Change-Id: I1bf36c181e1dc8e1f6c37a0d0e11f234e22d42d6
Signed-off-by: Rafal Lal <rafalx.lal@intel.com>
2023-08-28 11:37:47 +02:00

56 lines
1.4 KiB
INI

[tox]
envlist = linters
minversion = 2.9
skipsdist = True
sitepackages=False
[testenv]
install_command = pip install -U \
{opts} {packages} \
-c{env:TOX_CONSTRAINTS_FILE:https://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt}
setenv =
VIRTUAL_ENV={envdir}
OS_STDOUT_CAPTURE=1
OS_STDERR_CAPTURE=1
OS_DEBUG=1
OS_LOG_CAPTURE=1
deps =
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
allowlist_externals =
bash
passenv =
XDG_CACHE_HOME
[testenv:bashate]
# Treat all E* codes as Errors rather than warnings using: -e 'E*'
commands =
bash -c "find {toxinidir} \
-not \( -type d -name .?\* -prune \) \
-type f \
-not -name \*~ \
-not -name \*.md \
-name \*.sh \
-print0 | xargs -r -n 1 -0 bashate -v \
-e 'E*'"
[testenv:linters]
commands =
{[testenv:bashate]commands}
[testenv:flake8]
basepython = python3
description = Dummy environment to allow flake8 to be run in subdir tox
[testenv:pylint]
basepython = python3
description = Dummy environment to allow pylint to be run in subdir tox
[testenv:bandit]
basepython = python3
description = Dummy environment to allow bandit to be run in subdir tox