Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What type of this PR
Which issue(s) this PR fixes:
Add a new BGP announce policy
local
.To use this policy, annotate subnet/pod with
ovn.kubernetes.io/bgp=local
.WHAT
🤖 Generated by Copilot at 0286577
This pull request adds BGP integration testing and configuration for kube-ovn. It introduces new Makefile targets and a network topology template for creating a BGP lab with containerlab. It also adds a node name flag and a BGP policy annotation for the speaker component, which announces node subnet routes to the network. It modifies the
yamls/speaker.yaml
file to pass the node name to the speaker container.🤖 Generated by Copilot at 0286577
HOW
🤖 Generated by Copilot at 0286577
CLAB_IMAGE
to store the containerlab image name (link)kind-init-bgp
to create a network topology with a BGP router and two Kubernetes nodes using containerlab (link)kind-install-bgp
to enable BGP peering and route advertisement on the nodes (link)kind-clean-bgp
to destroy the network topology and delete the kind cluster and the kube-ovn images (link)clean
target to also remove theyamls/clab-bgp.yaml
file (link)strings
package to the import list inpkg/speaker/config.go
(link)NodeName
to theConfiguration
struct inpkg/speaker/config.go
(link)--node-name
to theParseFlags
function inpkg/speaker/config.go
(link)--node-name
flag to theNodeName
field and convert it to lower case in theParseFlags
function inpkg/speaker/config.go
(link)syncSubnetRoutes
function inpkg/speaker/subnet.go
to support different BGP policies specified by theovn.kubernetes.io/bgp
annotation on the subnets and pods (link)yamls/clab-bgp.yaml.j2
, which is a Jinja2 template for defining the network topology for the BGP test scenario using containerlab (link)KUBE_NODE_NAME
to thekube-ovn-speaker
container in theyamls/speaker.yaml
file (link)