-
Notifications
You must be signed in to change notification settings - Fork 1
Cisco NXOS vPC Domain #96
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
base: main
Are you sure you want to change the base?
Conversation
7a146d3 to
57755c4
Compare
0b789b3 to
52078ca
Compare
52078ca to
b960688
Compare
218ebd5 to
2f2cd99
Compare
f6fb13c to
b3fd3db
Compare
b3fd3db to
5fede6d
Compare
509e272 to
cb86bf5
Compare
9fe01a4 to
a046ec2
Compare
a046ec2 to
5abe136
Compare
e39fa48 to
6e86fa3
Compare
| // +kubebuilder:validation:Maximum=65535 | ||
| VPCId int32 `json:"vpcId"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this field seems unused.
| ) | ||
|
|
||
| // parsePeerUptime parses the peerUpTime string returned by the device. | ||
| // It assumes time is formatted as "(<seconds>) seconds"; e.g., "(3600) seconds". |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| oldVRF := e.ObjectOld.(*corev1.VRF) | ||
| newVRF := e.ObjectNew.(*corev1.VRF) | ||
| return oldVRF.Spec.Name != newVRF.Spec.Name || | ||
| !equality.Semantic.DeepEqual(oldVRF.Status, newVRF.Status) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the reason that we should trigger a reconcilation once the vrf status changes? 🤔 Same applies to interface above.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can't reconstruct forvrf, but for interface: the switch can shutdown the port-channels that form the peer link, so I wanted to force a reconciliation to update the vpc domain status. If you prefer I can remove it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense. Could we then make the check a bit more specify? E.g. checking for a transition in the operational condition? I'm just a bit worried, that if we check for equality in the whole status subresource, we might end up adding more unrelated properties to the status later, which will then trigger unecessary reconcilations of the vpc domain, for something that doesn't effect the vpc domain. So basically, only checking for things, that we actively account for in the vpc domain.
Multi-Chassis Link Aggregation (MC-LAG) is quite vendor and platform specific. We don't see much intersection in their respective configuration to justify a common API type. Instead, we move forward with a platform specific API exclusive to Cisco NXOS devices. This commit adds new types, controller, and provider to configure virtual Port Channels (vPCs) via the operator.
Use `nx.cisco.networking.metal.ironcore.dev/channel-group-force` to tag an interface of type `Aggregate` on a Cisco NX device and force the addition of member interfaces to the port-channel. The value of the annotation is ignored.
6e86fa3 to
ae543e1
Compare
Merging this branch changes the coverage (2 decrease, 1 increase)
Coverage by fileChanged files (no unit tests)
Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code. Changed unit test files
|
Multi-Chassis Link Aggregation (MC-LAG) is quite vendor and platform
specific. We don't see much intersection in their respective
configuration to justify a common API type. Instead, we move forward
with a platform specific API exclusive to Cisco NXOS devices.
In this PR we add types, controller, and provider code to configure
virtual Port Channels (vPCs) via the operator as:
The
vpcdomaincontroller ensures that thevpc peer-linkis configured.This is because on gNMI this property is configured at the vpcDom (sub-)containers.
Having this property as a provider-specific resource does not seem a good
option and the moment as it complicates the code base.
The operational status of the resource is
UPif the peer is alive and the remotedevice returns a positive uptime value for the peer.