mirror of
https://github.com/linux-system-roles/network.git
synced 2026-01-23 10:25:28 +00:00
ci: Add test plan that runs CI tests and customize it for the network role
* Add 6 managed nodes to make tests faster * Provision each test node with 2 NICs eth0 and eth1 Signed-off-by: Sergei Petrosian <spetrosi@redhat.com>
This commit is contained in:
parent
3dc49b94cf
commit
1b57520aa9
2 changed files with 111 additions and 3 deletions
4
.github/workflows/tft.yml
vendored
4
.github/workflows/tft.yml
vendored
|
|
@ -157,7 +157,6 @@ jobs:
|
|||
uses: sclorg/testing-farm-as-github-action@v3
|
||||
if: contains(needs.prepare_vars.outputs.supported_platforms, matrix.platform)
|
||||
with:
|
||||
git_url: https://github.com/linux-system-roles/tft-tests
|
||||
git_ref: main
|
||||
pipeline_settings: '{ "type": "tmt-multihost" }'
|
||||
environment_settings: '{ "provisioning": { "tags": { "BusinessUnit": "system_roles" } } }'
|
||||
|
|
@ -180,8 +179,7 @@ jobs:
|
|||
tf_scope: private
|
||||
api_key: ${{ secrets.TF_API_KEY_RH }}
|
||||
update_pull_request_status: false
|
||||
tmt_hardware: '{ "memory": ">= ${{ needs.prepare_vars.outputs.memory }} MB", "network": [{"type": "eth", "device-name": "eth0"}, {"type": "eth", "device-name": "eth1"}] }'
|
||||
tmt_plan_filter: "tag:general,network"
|
||||
tmt_plan_filter: "tag:playbooks_parallel,network"
|
||||
|
||||
- name: Set final commit status
|
||||
uses: myrotvorets/set-commit-status-action@master
|
||||
|
|
|
|||
110
plans/test_playbooks_parallel.fmf
Normal file
110
plans/test_playbooks_parallel.fmf
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
summary: A general test for a system role
|
||||
tag: playbooks_parallel
|
||||
provision:
|
||||
# TF uses `how: artemis`, and `tmt try`` uses `how: virtual`.
|
||||
# Hence there is no need to define `how` explicitly.
|
||||
- name: control-node1
|
||||
role: control_node
|
||||
# `connection: system` is required for `how: virtual` to assign VMs a real
|
||||
# IP making SSH configuration easier.
|
||||
# This setting is ignored in `artemis`, so we can leave it as is.
|
||||
connection: system
|
||||
- name: managed-node1
|
||||
role: managed_node
|
||||
connection: system
|
||||
hardware:
|
||||
network:
|
||||
- type: eth
|
||||
- type: eth
|
||||
- name: managed-node2
|
||||
role: managed_node
|
||||
connection: system
|
||||
hardware:
|
||||
network:
|
||||
- type: eth
|
||||
- type: eth
|
||||
- name: managed-node3
|
||||
role: managed_node
|
||||
connection: system
|
||||
hardware:
|
||||
network:
|
||||
- type: eth
|
||||
- type: eth
|
||||
- name: managed-node4
|
||||
role: managed_node
|
||||
connection: system
|
||||
hardware:
|
||||
network:
|
||||
- type: eth
|
||||
- type: eth
|
||||
- name: managed-node5
|
||||
role: managed_node
|
||||
connection: system
|
||||
hardware:
|
||||
network:
|
||||
- type: eth
|
||||
- type: eth
|
||||
- name: managed-node6
|
||||
role: managed_node
|
||||
connection: system
|
||||
hardware:
|
||||
network:
|
||||
- type: eth
|
||||
- type: eth
|
||||
environment:
|
||||
ANSIBLE_VER: 2.17
|
||||
REPO_NAME: network
|
||||
PYTHON_VERSION: 3.12
|
||||
SYSTEM_ROLES_ONLY_TESTS: ""
|
||||
TEST_LOCAL_CHANGES: true
|
||||
PR_NUM: ""
|
||||
LINUXSYSTEMROLES_USER: ""
|
||||
LINUXSYSTEMROLES_DOMAIN: ""
|
||||
LINUXSYSTEMROLES_SSH_KEY: ""
|
||||
ARTIFACTS_DIR: ""
|
||||
ARTIFACTS_URL: ""
|
||||
LSR_TFT_DEBUG: false
|
||||
prepare:
|
||||
- name: Use vault.centos.org repos (CS 7, 8 EOL workaround)
|
||||
script: |
|
||||
if grep -q 'CentOS Stream release 8' /etc/redhat-release; then
|
||||
sed -i '/^mirror/d;s/#\(baseurl=http:\/\/\)mirror/\1vault/' /etc/yum.repos.d/*.repo
|
||||
fi
|
||||
if grep -q 'CentOS Linux release 7.9' /etc/redhat-release; then
|
||||
sed -i '/^mirror/d;s/#\?\(baseurl=http:\/\/\)mirror/\1vault/' /etc/yum.repos.d/*.repo
|
||||
fi
|
||||
# Replace with feature: epel: enabled once https://github.com/teemtee/tmt/pull/3128 is merged
|
||||
- name: Enable epel to install beakerlib
|
||||
script: |
|
||||
# CS 10 and Fedora doesn't require epel
|
||||
if grep -q -e 'CentOS Stream release 10' -e 'Fedora release' /etc/redhat-release; then
|
||||
exit 0
|
||||
fi
|
||||
yum install epel-release yum-utils -y
|
||||
yum-config-manager --enable epel epel-debuginfo epel-source
|
||||
- name: Test NICs
|
||||
script: lshw -C network
|
||||
discover:
|
||||
- name: Prepare managed node
|
||||
how: fmf
|
||||
where: managed_node
|
||||
filter: tag:prep_managed_node
|
||||
url: https://github.com/linux-system-roles/tft-tests
|
||||
ref: main
|
||||
- name: Run test playbooks from control_node
|
||||
how: fmf
|
||||
where: control_node
|
||||
filter: tag:test_playbooks
|
||||
url: https://github.com/linux-system-roles/tft-tests
|
||||
ref: main
|
||||
# Uncomment this step for troubleshooting
|
||||
# This is required because currently testing-farm cli doesn't support running multi-node plans
|
||||
# You can set ID_RSA_PUB in the environment section above to your public key to distribute it to nodes
|
||||
# - name: Inject your ssh public key to test systems
|
||||
# how: fmf
|
||||
# where: control_node
|
||||
# filter: tag:reserve_system
|
||||
# url: https://github.com/linux-system-roles/tft-tests
|
||||
# ref: main
|
||||
execute:
|
||||
how: tmt
|
||||
Loading…
Add table
Add a link
Reference in a new issue