forked from k8snetworkplumbingwg/sriov-network-operator
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This patch adds a Jenkins file example, it also modifies the E2E kind script to support a new mode of operation: the bash service. The modification was done to support running the scripts in a limited privilege shell.
- Loading branch information
1 parent
7ce6ce2
commit a62d869
Showing
7 changed files
with
518 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
admin-list: | ||
- mellanox-ci | ||
org-list: | ||
- Mellanox | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
- project: | ||
name: sriov-network-operator-github-ci | ||
jobs: | ||
- 'sriov-network-operator-ci': | ||
project: sriov-network-operator | ||
disabled_var: false | ||
concurrent: false | ||
node: GITHUB | ||
git-site: https://github.com | ||
git-root: AbdYsn | ||
git-project: sriov-network-operator | ||
|
||
- job-template: | ||
name: 'sriov-network-operator-ci' | ||
node: '{node}' | ||
builders: | ||
- inject: | ||
properties-content: | | ||
KUBECONFIG=/etc/kubernetes/admin.conf | ||
INTERFACES_SWITCHER=bash_service | ||
- run-e2e-test | ||
concurrent: false | ||
description: <!-- Managed by Jenkins Job Builder --> | ||
disabled: false | ||
project-type: freestyle | ||
properties: | ||
- build-discarder: | ||
artifact-days-to-keep: 60 | ||
artifact-num-to-keep: 100 | ||
days-to-keep: 60 | ||
num-to-keep: 100 | ||
- github: | ||
url: '{git-site}/{git-root}/{git-project}' | ||
scm: | ||
- git: | ||
branches: ["${{sha1}}"] | ||
credentials-id: '{credentials-id}' | ||
name: '{git-project}' | ||
refspec: +refs/pull/*:refs/remotes/origin/pr/* | ||
url: '{git-site}/{git-root}/{git-project}' | ||
wipe-workspace: true | ||
triggers: | ||
- github-pull-request: | ||
admin-list: | ||
- mellanox-ci | ||
allow-whitelist-orgs-as-admins: true | ||
org-list: | ||
- Mellanox | ||
auth-id: '{auth-id}' | ||
auto-close-on-fail: false | ||
build-desc-template: null | ||
cron: H/5 * * * * | ||
github-hooks: false | ||
only-trigger-phrase: true | ||
cancel-builds-on-update: true | ||
permit-all: false | ||
status-url: --none-- | ||
success-status: "Build Passed" | ||
failure-status: "Build Failed, comment `/test-e2e` or `/test-all` to retrigger" | ||
error-status: "Build Failed, comment `/test-e2e` or `/test-all` to retrigger" | ||
status-context: '{project} CI' | ||
trigger-phrase: ".*/test-(all|e2e(,| |$)).*" | ||
white-list: | ||
- '*' | ||
white-list-target-branches: | ||
- master | ||
- github | ||
wrappers: | ||
- timeout: | ||
timeout: 120 | ||
fail: true | ||
- timestamps | ||
|
||
- builder: | ||
name: run-e2e-test | ||
builders: | ||
- shell: | | ||
#!/bin/bash | ||
status=0 | ||
./hack/teardown-e2e-kind-cluster.sh | ||
sleep 5 | ||
mlnx_pci=$(lspci | grep Mellanox | grep -Ev 'MT27500|MT27520|Virt' | head -n 1 | awk '{print $1}') | ||
./hack/run-e2e-test-kind.sh 0000:${mlnx_pci} | ||
let status=$status+$? | ||
./hack/teardown-e2e-kind-cluster.sh | ||
sleep 5 | ||
exit $status | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# E2E Tests | ||
E2E tests are used to deploy an sriovnetworknodepolicy on an existing Kubernetes cluster and make sure it creates VFs using different configurations. | ||
To run the tests on a Kubernetes cluster run: | ||
``` | ||
./hack/run-e2e-test.sh | ||
``` | ||
|
||
# E2E tests using KIND | ||
Kubernetes IN Docker (KIND) is a tool to deploy Kubernetes inside Docker containers. It is used to test multi nodes scenarios on a single baremetal node. | ||
To run the E2E tests inside a KIND cluster, `./hack/run-e2e-test-kind.sh` can be used. The script deploys a KIND cluster, switch the specified interface to the kind-worker namespace, deploys the operator, and run the E2E tests. There are two modes of operation for the E2E KIND scripts depending on the mechanism used to switch the specified PF into the KIND cluster: | ||
* `go` mode (default): In this mode, the E2E test suit handle the PF and its VFs switching to the test namespace. | ||
* `bash_service` mode: In this mode a dedicated bash service is used to switch the PF and VFs to the test namespace. | ||
|
||
`kind` tool need to be installed on the server, follow [kind documentation](https://kind.sigs.k8s.io/docs/user/quick-start/) to install kind. | ||
|
||
## Running E2E kind tests in `go` mode | ||
To Run the E2E tests in a kind cluster in go mode. In a root shell simply run the E2E kind script: | ||
``` | ||
./hack/run-e2e-test-kind.sh <interface pci> | ||
``` | ||
## Running the E2E kind tests in `bash_service` mode | ||
The `bash_service` mode uses a bash service to handle the interface switching. To prepare the service, the following needs to be done as root: | ||
``` | ||
cp ./hack/vf-netns-switcher.sh /usr/bin/ | ||
cp ./hack/vf-switcher.service /etc/systemd/system/ | ||
systemctl daemon-reload | ||
``` | ||
For the service to work probably the `yq` tool is needed. To install the tool use: | ||
``` | ||
wget https://github.com/mikefarah/yq/releases/download/3.4.0/yq_linux_amd64 -O /usr/bin/yq | ||
chmod +x /usr/bin/yq | ||
``` | ||
|
||
To run the E2E tests do: | ||
``` | ||
KUBECONFIG=/etc/kubernetes/admin.conf | ||
INTERFACES_SWITCHER=bash_service | ||
./hack/run-e2e-test-kind.sh <interface pci> | ||
``` | ||
|
||
## Teardown the KIND cluster | ||
To cleanup the KIND cluster use: | ||
``` | ||
./hack/teardown-e2e-kind-cluster.sh | ||
``` | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,3 +7,5 @@ if ! command -v kind &> /dev/null; then | |
fi | ||
|
||
kind delete cluster | ||
sudo systemctl stop vf-switcher.service | ||
|
Oops, something went wrong.