Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create kind-1.23-sriov provider #897

Merged
merged 3 commits into from
Nov 14, 2022

Conversation

orelmisan
Copy link
Member

@orelmisan orelmisan commented Nov 10, 2022

Create an SR-IOV provider, based on kind running K8s v1.23.

There is a problem using kind with K8s 1.24 and above, so an upgrade to one K8s version should keep us in the latest three K8s versions until K8s 1.26 will be released.

Copy the `kind-1.22-sriov` directory to `kind-1.23-sriov`,
in order for it to use as a base.

Signed-off-by: Orel Misan <[email protected]>
@kubevirt-bot
Copy link
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@kubevirt-bot kubevirt-bot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. dco-signoff: yes Indicates the PR's author has DCO signed all their commits. labels Nov 10, 2022
@orelmisan
Copy link
Member Author

/uncc @rmohr @oshoval

orelmisan added a commit to orelmisan/project-infra that referenced this pull request Nov 10, 2022
Mirror kind node image v1.23.13 in order to use it in kubevirtci
kind-1.23-sriov provider [1].

[1] kubevirt/kubevirtci#897

Signed-off-by: Orel Misan <[email protected]>
orelmisan added a commit to orelmisan/project-infra that referenced this pull request Nov 10, 2022
PR kubevirt/kubevirtci#897 adds a `kind-1.23-sriov` provider.

In order to test it, add an optional pre-submit job.

Clone the `kind-1.22-sriov` pre-submit job, in order to serve as
a base for `kind-1.23-sriov` pre-submit job.

Signed-off-by: Orel Misan <[email protected]>
kubevirt-bot pushed a commit to kubevirt/project-infra that referenced this pull request Nov 10, 2022
Mirror kind node image v1.23.13 in order to use it in kubevirtci
kind-1.23-sriov provider [1].

[1] kubevirt/kubevirtci#897

Signed-off-by: Orel Misan <[email protected]>

Signed-off-by: Orel Misan <[email protected]>
Upgrade kind version to current latest v0.17.0.
Upgrade node image to 1.23.13.

Signed-off-by: Orel Misan <[email protected]>
@orelmisan
Copy link
Member Author

Change: Use mirrored node image.

kubevirt-bot pushed a commit to kubevirt/project-infra that referenced this pull request Nov 10, 2022
* kubevirtci, pre-submit: Clone kind-1.22-sriov job

PR kubevirt/kubevirtci#897 adds a `kind-1.23-sriov` provider.

In order to test it, add an optional pre-submit job.

Clone the `kind-1.22-sriov` pre-submit job, in order to serve as
a base for `kind-1.23-sriov` pre-submit job.

Signed-off-by: Orel Misan <[email protected]>

* kubevirtci, pre-submit: Add optional job to check kind-1.23-sriov

Make the kind-1.23-sriov pre-submit job optional.

Signed-off-by: Orel Misan <[email protected]>

Signed-off-by: Orel Misan <[email protected]>
@orelmisan
Copy link
Member Author

/test check-up-kind-1.23-sriov

4 similar comments
@orelmisan
Copy link
Member Author

/test check-up-kind-1.23-sriov

@orelmisan
Copy link
Member Author

/test check-up-kind-1.23-sriov

@orelmisan
Copy link
Member Author

/test check-up-kind-1.23-sriov

@orelmisan
Copy link
Member Author

/test check-up-kind-1.23-sriov

@orelmisan orelmisan changed the title [WIP] Create kind-1.23-sriov provider Create kind-1.23-sriov provider Nov 13, 2022
@orelmisan orelmisan marked this pull request as ready for review November 13, 2022 06:39
@kubevirt-bot kubevirt-bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Nov 13, 2022
@kubevirt-bot kubevirt-bot requested a review from oshoval November 13, 2022 06:40
@@ -0,0 +1,115 @@
package certlib
Copy link
Contributor

@oshoval oshoval Nov 13, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove the whole folder of cert creator, we don't use it for long time already IIRC

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

@oshoval oshoval Nov 13, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but we dont deploy sriov_operator.sh anymore, nor maintain it
so it uses a very old version
we can remove that as well please imo

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest we remove it in a follow-up PR.
I don't think it helps the reviewer to see that removal in this PR.

Copy link
Contributor

@oshoval oshoval Nov 13, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Imo an additional commit that removes it can be clean and easy enough to review,
I don't see why to take the files with us again and again.
It will be more self contained.

but whatever you prefer

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer to handle this change in a follow up PR.
I think there are more leftovers, for example:
https://github.com/kubevirt/kubevirtci/pull/897/files#diff-c5f5c4a7c70b52eb6c6561e5629101c50defa39f231960e5a5d4751f4152c82dR1

Copy link
Contributor

@oshoval oshoval Nov 13, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I honestly don't see a reason to postpone it, it will make this PR not clean enough
It should be pretty trivial to clean all needed, as it is not used
maybe worth to at least try first ?

we can also wait to see more opinions

Note that for me personally it will be easier to review it cleaner
but i won't block for it

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there are more leftovers that we are not aware of.
Starting a cleanup operation could be an adventure that I don't want to get into at the moment.
Additionally I think that there could be multiple small improvements that could be made in order to improve the code.
But, they all could be done in follow-up PRs.

Copy link
Contributor

@oshoval oshoval Nov 13, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sriov operator scope should be few files that you just delete and forgot
for example the script / yamls and the cert lib
imo it is right to at least try it, (and if you see it is adventure drop it) but again this is just my 2 cents
rest of the cleaning can be done of course on follow PR

EDIT - from a glance, this is all that need to be removed related to the sriov operator

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would remove what I can, but I won't insist that it will be part of this PR.

@oshoval
Copy link
Contributor

oshoval commented Nov 13, 2022

It was tested with all the SRIOV tests and kubevirt right ?

Beside the comments above lgtm

@orelmisan
Copy link
Member Author

It was tested with all the SRIOV tests and kubevirt right ?

Beside the comments above lgtm

Thank you.
AFAIU this provider is only used for the SR-IOV e2e tests.
@ormergi Please correct me if I'm wrong.

@oshoval
Copy link
Contributor

oshoval commented Nov 13, 2022

It was tested with all the SRIOV tests and kubevirt right ?
Beside the comments above lgtm

Thank you. AFAIU this provider is only used for the SR-IOV e2e tests. @ormergi Please correct me if I'm wrong.

It is used for only those, i meant to try the kubevirt SR-IOV e2e tests with it before we merge it
(maybe you already did, just making sure)

@ormergi
Copy link
Contributor

ormergi commented Nov 13, 2022

It looks like there is a check-up job for this new provider, but did it took this PR changes?

@orelmisan
Copy link
Member Author

orelmisan commented Nov 13, 2022

I ran the SR-IOV e2e tests numerous times on a bare-metal server with an SR-IOV NIC and this provider.
I've added a job to project-infra to test this provider, and ran it five times.

@oshoval
Copy link
Contributor

oshoval commented Nov 13, 2022

It looks like there is a check-up job for this new provider, but did it took this PR changes?

Yes as it uses the right KUBEVIRT_PROVIDER
https://prow.ci.kubevirt.io/view/gs/kubevirt-prow/pr-logs/pull/kubevirt_kubevirtci/897/check-up-kind-1.23-sriov/1591002280692289536#1:build-log.txt%3A109

@oshoval
Copy link
Contributor

oshoval commented Nov 13, 2022

I ran the SR-IOV e2e tests numerous times on a bare-metal server with an SR-IOV NIC and this provider. I've added a job to project-infra to test this provider, and ran it five times.

Thanks
just note that the mention job doesn't check kubevirt SR-IOV e2e tests, but those you ran manually so all is ok
(maybe this what you meant)

@orelmisan
Copy link
Member Author

I ran the SR-IOV e2e tests numerous times on a bare-metal server with an SR-IOV NIC and this provider. I've added a job to project-infra to test this provider, and ran it five times.

Thanks just note that the mention job doesn't check kubevirt SR-IOV e2e tests, but those you ran manually so all is ok (maybe this what you meant)

Isn't this line indicating the execution of the e2e SR-IOV test suite?
https://github.com/kubevirt/project-infra/pull/2447/files#diff-ab108ff0d13755bd671fe2f0a2397f0c0290dc6655d2a03659b2cee3fa5958f7R135

@ormergi
Copy link
Contributor

ormergi commented Nov 13, 2022

I ran the SR-IOV e2e tests numerous times on a bare-metal server with an SR-IOV NIC and this provider. I've added a job to project-infra to test this provider, and ran it five times.

Thanks just note that the mention job doesn't check kubevirt SR-IOV e2e tests, but those you ran manually so all is ok (maybe this what you meant)

Isn't this line indicating the execution of the e2e SR-IOV test suite? https://github.com/kubevirt/project-infra/pull/2447/files#diff-ab108ff0d13755bd671fe2f0a2397f0c0290dc6655d2a03659b2cee3fa5958f7R135

It does run SR-IOV tests using sonobouy and kubevirt plugin.

@kubevirt-bot kubevirt-bot added the lgtm Indicates that a PR is ready to be merged. label Nov 13, 2022
@oshoval
Copy link
Contributor

oshoval commented Nov 13, 2022

Right, two here are skipped, they should be skipped ?
They are not skipped on kubevirt, just on conformance (or at least we do run 13 on kubevirt e2e but 11 here)

<testcase name="[Serial]SRIOV VMI connected to single SRIOV network should have cloud-init meta_data with aligned cpus to sriov interface numa node for VMIs with dedicatedCPUs" classname="Tests Suite" time="5.673313703">
<skipped/>
</testcase>
<testcase name="[Serial]SRIOV VMI connected to single SRIOV network should have cloud-init meta_data with tagged sriov nics" classname="Tests Suite" time="58.596065772"/>
<testcase name="[Serial]SRIOV VMI connected to single SRIOV network [test_id:1754]should create a virtual machine with sriov interface" classname="Tests Suite" time="33.614782728"/>
<testcase name="[Serial]SRIOV VMI connected to single SRIOV network [test_id:1754]should create a virtual machine with sriov interface with all pci devices on the root bus" classname="Tests Suite" time="35.19714611"/>
<testcase name="[Serial]SRIOV VMI connected to single SRIOV network [test_id:3959]should create a virtual machine with sriov interface and dedicatedCPUs" classname="Tests Suite" time="5.644881961">
<skipped/>
</testcase>
<testcase name="[Serial]SRIOV VMI connected to single SRIOV network [test_id:3985]should create a virtual machine with sriov interface with custom MAC address" classname="Tests Suite" time="36.356837491"/>
<testcase name="[Serial]SRIOV VMI connected to single SRIOV network migration should be successful with a running VMI on the target" classname="Tests Suite" time="57.725623362"/>
<testcase name="[Serial]SRIOV VMI connected to two SRIOV networks [test_id:1755]should create a virtual machine with two sriov interfaces referring the same resource" classname="Tests Suite" time="41.812583509"/>
<testcase name="[Serial]SRIOV Connected to multiple SRIOV networks should correctly plug all the interfaces based on the specified MAC and (guest) PCI addresses" classname="Tests Suite" time="55.549018169"/>
<testcase name="[Serial]SRIOV VMI connected to link-enabled SRIOV network [test_id:3956]should connect to another machine with sriov interface over IPv4" classname="Tests Suite" time="48.666218362"/>
<testcase name="[Serial]SRIOV VMI connected to link-enabled SRIOV network [test_id:3957]should connect to another machine with sriov interface over IPv6" classname="Tests Suite" time="48.307891759"/>
<testcase name="[Serial]SRIOV VMI connected to link-enabled SRIOV network With VLAN should be able to ping between two VMIs with the same VLAN over SRIOV network" classname="Tests Suite" time="40.644563216"/>
<testcase name="[Serial]SRIOV VMI connected to link-enabled SRIOV network With VLAN should NOT be able to ping between Vlaned VMI and a non Vlaned VMI" classname="Tests Suite" time="44.26897302"/>

@ormergi
Copy link
Contributor

ormergi commented Nov 13, 2022

Right, two here are skipped, they should be skipped ?

<testcase name="[Serial]SRIOV VMI connected to single SRIOV network should have cloud-init meta_data with aligned cpus to sriov interface numa node for VMIs with dedicatedCPUs" classname="Tests Suite" time="5.673313703">
<skipped/>
</testcase>
<testcase name="[Serial]SRIOV VMI connected to single SRIOV network should have cloud-init meta_data with tagged sriov nics" classname="Tests Suite" time="58.596065772"/>
<testcase name="[Serial]SRIOV VMI connected to single SRIOV network [test_id:1754]should create a virtual machine with sriov interface" classname="Tests Suite" time="33.614782728"/>
<testcase name="[Serial]SRIOV VMI connected to single SRIOV network [test_id:1754]should create a virtual machine with sriov interface with all pci devices on the root bus" classname="Tests Suite" time="35.19714611"/>
<testcase name="[Serial]SRIOV VMI connected to single SRIOV network [test_id:3959]should create a virtual machine with sriov interface and dedicatedCPUs" classname="Tests Suite" time="5.644881961">
<skipped/>
</testcase>
<testcase name="[Serial]SRIOV VMI connected to single SRIOV network [test_id:3985]should create a virtual machine with sriov interface with custom MAC address" classname="Tests Suite" time="36.356837491"/>
<testcase name="[Serial]SRIOV VMI connected to single SRIOV network migration should be successful with a running VMI on the target" classname="Tests Suite" time="57.725623362"/>
<testcase name="[Serial]SRIOV VMI connected to two SRIOV networks [test_id:1755]should create a virtual machine with two sriov interfaces referring the same resource" classname="Tests Suite" time="41.812583509"/>
<testcase name="[Serial]SRIOV Connected to multiple SRIOV networks should correctly plug all the interfaces based on the specified MAC and (guest) PCI addresses" classname="Tests Suite" time="55.549018169"/>
<testcase name="[Serial]SRIOV VMI connected to link-enabled SRIOV network [test_id:3956]should connect to another machine with sriov interface over IPv4" classname="Tests Suite" time="48.666218362"/>
<testcase name="[Serial]SRIOV VMI connected to link-enabled SRIOV network [test_id:3957]should connect to another machine with sriov interface over IPv6" classname="Tests Suite" time="48.307891759"/>
<testcase name="[Serial]SRIOV VMI connected to link-enabled SRIOV network With VLAN should be able to ping between two VMIs with the same VLAN over SRIOV network" classname="Tests Suite" time="40.644563216"/>
<testcase name="[Serial]SRIOV VMI connected to link-enabled SRIOV network With VLAN should NOT be able to ping between Vlaned VMI and a non Vlaned VMI" classname="Tests Suite" time="44.26897302"/>

From what I remember they are skipped because Kubevirt tests perform some stuff the plugin won't, lemme check..

EDIT: Maybe it's Kubevirt CPUMannager feature gate that is missing.
It's not related to this PR changes though.

@orelmisan
Copy link
Member Author

/assign @qinqon

@oshoval
Copy link
Contributor

oshoval commented Nov 13, 2022

Please ref the kind issue to the PR desc

@oshoval
Copy link
Contributor

oshoval commented Nov 13, 2022

From what I remember they are skipped because Kubevirt tests perform some stuff the plugin won't, lemme check..

EDIT: Maybe it's Kubevirt CPUMannager feature gate that is missing. It's not related to this PR changes though.

Not worth to add the feature gate / solve it if its something that make sense ?
even on a follow PR

@orelmisan
Copy link
Member Author

Please ref the kind issue to the PR desc

Done.

@qinqon
Copy link
Contributor

qinqon commented Nov 14, 2022

/lgtm
/approve

@kubevirt-bot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: qinqon

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kubevirt-bot kubevirt-bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 14, 2022
@kubevirt-bot kubevirt-bot merged commit 2f57cdf into kubevirt:main Nov 14, 2022
@orelmisan orelmisan deleted the kind-1.23-sriov branch November 14, 2022 09:11
kubevirt-bot added a commit to kubevirt-bot/kubevirt that referenced this pull request Nov 22, 2022
[021efaa Revert "bump: k8s-1.2[4,5] to cnao v0.81.0](https://github.com/kubevirt/kubevirtci/pull/895)"](https://github.com/kubevirt/kubevirtci/pull/904)
[75a155b vm based providers: Change default dns host port](kubevirt/kubevirtci#903)
[71777d3 Support centos9 provisioner ](kubevirt/kubevirtci#896)
[3ddc5b7 Run bazelisk run //robots/cmd/kubevirtci-bumper:kubevirtci-bumper -- -ensure-last-three-minor-of v1 --k8s-provider-dir /home/prow/go/src/github.com/kubevirt/project-infra/../kubevirtci/cluster-provision/k8s](kubevirt/kubevirtci#898)
[765bf0b kind-1.23-sriov: Remove SR-IOV operator leftovers](kubevirt/kubevirtci#899)
[2f57cdf Create kind-1.23-sriov provider](kubevirt/kubevirtci#897)
[dd31ea6 bump: k8s-1.2[4,5] to cnao v0.81.0](kubevirt/kubevirtci#895)
[fa031f8 Bump default provider version](kubevirt/kubevirtci#894)
[8cca8c0 vm based providers: Expose a UDP port for DNS](kubevirt/kubevirtci#867)
[2fea446 kind-1.22-sriov, provider.sh: Remove unused SRIOV_TESTS_NS variable](kubevirt/kubevirtci#891)

```release-note
NONE
```

Signed-off-by: kubevirt-bot <[email protected]>
Barakmor1 pushed a commit to Barakmor1/kubevirt that referenced this pull request Nov 24, 2022
[021efaa Revert "bump: k8s-1.2[4,5] to cnao v0.81.0](https://github.com/kubevirt/kubevirtci/pull/895)"](https://github.com/kubevirt/kubevirtci/pull/904)
[75a155b vm based providers: Change default dns host port](kubevirt/kubevirtci#903)
[71777d3 Support centos9 provisioner ](kubevirt/kubevirtci#896)
[3ddc5b7 Run bazelisk run //robots/cmd/kubevirtci-bumper:kubevirtci-bumper -- -ensure-last-three-minor-of v1 --k8s-provider-dir /home/prow/go/src/github.com/kubevirt/project-infra/../kubevirtci/cluster-provision/k8s](kubevirt/kubevirtci#898)
[765bf0b kind-1.23-sriov: Remove SR-IOV operator leftovers](kubevirt/kubevirtci#899)
[2f57cdf Create kind-1.23-sriov provider](kubevirt/kubevirtci#897)
[dd31ea6 bump: k8s-1.2[4,5] to cnao v0.81.0](kubevirt/kubevirtci#895)
[fa031f8 Bump default provider version](kubevirt/kubevirtci#894)
[8cca8c0 vm based providers: Expose a UDP port for DNS](kubevirt/kubevirtci#867)
[2fea446 kind-1.22-sriov, provider.sh: Remove unused SRIOV_TESTS_NS variable](kubevirt/kubevirtci#891)

```release-note
NONE
```

Signed-off-by: kubevirt-bot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. dco-signoff: yes Indicates the PR's author has DCO signed all their commits. lgtm Indicates that a PR is ready to be merged. size/XXL
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants