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

design-proposal: Network binding plugin #280

Merged
merged 1 commit into from
Mar 28, 2024

Conversation

EdDev
Copy link
Member

@EdDev EdDev commented Mar 28, 2024

What this PR does / why we need it:

The network-binding-plugin feature design started back in mid 2023 and continued to evolve until implemented.

The design was conducted on a google document [1] out of convenience. (access is limited to the kubevirt-dev google group)

We now migrate it to a markdown version to provide better visibility.

[1] https://docs.google.com/document/d/13fLaqZuM8El_CT5XzxPv-1epKsB1-Spv_jtXveEkkdQ

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #

Special notes for your reviewer:
This is converting a google document to markdown, all design content has been already reviewed thoroughly
and implemented.

Checklist

This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

Release note:

NONE

@kubevirt-bot kubevirt-bot added the dco-signoff: yes Indicates the PR's author has DCO signed all their commits. label Mar 28, 2024
@EdDev
Copy link
Member Author

EdDev commented Mar 28, 2024

/assign @AlonaKaplan

@EdDev EdDev force-pushed the network-binding-plugin branch 2 times, most recently from abaf935 to 708da12 Compare March 28, 2024 10:05
@AlonaKaplan
Copy link
Member

/approve

@kubevirt-bot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: AlonaKaplan

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 Mar 28, 2024
initially protected by a FG.
Feature lifecycle is expected to pass alpha, beta and eventually to GA.

## Appendix B: Concrete example for bridge-binding
Copy link
Contributor

Choose a reason for hiding this comment

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

Should start at A?

Copy link
Member Author

Choose a reason for hiding this comment

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

Done

@EdDev EdDev force-pushed the network-binding-plugin branch from 708da12 to 00f9e53 Compare March 28, 2024 13:09
The network-binding-plugin feature design started back in mid 2023 and
continued to evolve until implemented.

The design was conducted on a google document [1] out of convenience.
(access is limited to the `kubevirt-dev` google group)

We now migrate it to a markdown version to provide better visibility.

[1] https://docs.google.com/document/d/13fLaqZuM8El_CT5XzxPv-1epKsB1-Spv_jtXveEkkdQ

Signed-off-by: Edward Haas <[email protected]>
@EdDev EdDev force-pushed the network-binding-plugin branch from 00f9e53 to 8bc2b5e Compare March 28, 2024 13:38
@kubevirt-bot kubevirt-bot added the lgtm Indicates that a PR is ready to be merged. label Mar 28, 2024
@kubevirt-bot kubevirt-bot merged commit 228b516 into kubevirt:main Mar 28, 2024
1 of 2 checks passed
@ormergi
Copy link
Contributor

ormergi commented Mar 28, 2024

Thanks!

RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Jul 31, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters + adding the appropriate NAD).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Jul 31, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters + adding the appropriate NAD).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Jul 31, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Jul 31, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 1, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 1, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 1, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 1, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 1, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 1, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 4, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 4, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 4, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 6, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 7, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 7, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 8, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 11, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 12, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
RamLavi added a commit to RamLavi/hyperconverged-cluster-operator that referenced this pull request Aug 12, 2024
The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
kubevirt#2603

Signed-off-by: Ram Lavi <[email protected]>
kubevirt-bot pushed a commit to kubevirt/hyperconverged-cluster-operator that referenced this pull request Aug 12, 2024
* api: Introduce PrimaryUserDefinedNetworkBinding FG enabler

Introduce a new enabler: PrimaryUserDefinedNetworkBinding.
The default value is false.
This commit only adds the relevant API and documentation.
The logic of this enabler will be added in later commits.

Signed-off-by: Ram Lavi <[email protected]>

* hco-operator: Add primary UDN Binding image env var

Adding a new image that is currently created by kubevirt/kubevirt [0].

[0] kubevirt/kubevirt#10425

Signed-off-by: Ram Lavi <[email protected]>

* util/cluster: Set HCO main() to fail if PrimaryUDNImageEnvV env var is not set

Signed-off-by: Ram Lavi <[email protected]>

* operands/kubevirt: Set Kubevirt CR new primary UDN Binding plugin

The ability to register network bindings to Kubevirt VMs was proposed
[0] in order to allow Kubevirt VMs to connect to network bindings and
gain advanced user defined network capabilities.
The configuration is added to the kubevirt CR (kubevirt feature gate* +
configuring the binding parameters).

This commit deploys and registers a primary user-defined-network (UDN)
binding to the kubevirt CR, so it could be used by kubevirt users.

* enabling the `NetworkBindingPlugins` kubevirt
feature-gate on kubevirt CR is not needed as it is already set by
default by HCO [1].

[0] kubevirt/community#280
[1]
#2603

Signed-off-by: Ram Lavi <[email protected]>

* docs/cluster-configuration: Add primaryUserDefinedNetworkBinding FG

Signed-off-by: Ram Lavi <[email protected]>

---------

Signed-off-by: Ram Lavi <[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/XL
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants