Skip to content

Add Configured condition to bgp and BGP Peer - #682

Merged
felix-kaestner merged 2 commits into
ironcore-dev:mainfrom
ObuMan:bgp-configured-condition
Oct 26, 2026
Merged

felix-kaestner merged 2 commits into
ironcore-dev:mainfrom
ObuMan:bgp-configured-condition

Conversation

@ObuMan

@ObuMan ObuMan commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Add Configured condition to BGP and BGP Peer controllers (feat/configured-condition #426)

Testing

Tested against a simulated Cisco N9K-C9300v (n9kv) in Containerlab using the provided BGP and BGPPeer samples.

 % kubectl get bgp -o wide
 NAME               AS NUMBER   ROUTER-ID   DEVICE   ADMIN STATE   READY   CONFIGURED   PAUSED   AGE
 bgp                65000       10.0.0.10   leaf1    Up            True    True         False    65s
 bgp-rdst           65000       10.0.0.10   leaf1    Up            False   False        False    65s
 bgp-vrf-cc-admin   65000       10.0.0.10   leaf1    Up            False   False        False    65s

 % kubectl get bgp bgp -o yaml
 # ...
 status:
   conditions:
   - lastTransitionTime: "2026-10-26T07:30:06Z"
     message: All conditions are ready
     observedGeneration: 2
     reason: Ready
     status: "True"
     type: Ready
   - lastTransitionTime: "2026-10-26T07:30:06Z"
     message: Configured successfully
     observedGeneration: 2
     reason: Configured
     status: "True"
     type: Configured
   - lastTransitionTime: "2026-10-26T07:29:58Z"
     message: ""
     observedGeneration: 2
     reason: NotPaused
     status: "False"
     type: Paused

Also verified the BGP failure path: bgp-vrf-cc-admin references a VRF that does not exist.

 % kubectl get bgp bgp-vrf-cc-admin -o yaml
 # ...
 status:
   conditions:
   - lastTransitionTime: "2026-10-26T07:30:09Z"
     message: One or more conditions are not ready
     observedGeneration: 1
     reason: NotReady
     status: "False"
     type: Ready
   - lastTransitionTime: "2026-10-26T07:30:09Z"
     message: VRF vrf-cc-admin not found
     observedGeneration: 1
     reason: VRFNotFound
     status: "False"
     type: Configured
   - lastTransitionTime: "2026-10-26T07:30:04Z"
     message: ""
     observedGeneration: 1
     reason: NotPaused
     status: "False"
     type: Paused

Tested the BGPPeer controller using the provided BGPPeer sample with leaf1-spine1 and leaf1-spine2 configured against bgp.

 % kubectl get bgppeer -o wide
 NAME                      PEER ADDRESS   PEER INTERFACE   DEVICE   ADMIN STATE   AS NUMBER   READY   CONFIGURED   OPERATIONAL   PAUSED   SESSION STATE   LAST ESTABLISHED   ADVERTISED PREFIXES   AGE
 leaf1-spine1              10.0.0.1                        leaf1    Up            65000       False   True         False         False    Idle            13m                0 (L2vpnEvpn)         13s
 leaf1-spine1-filtered     10.0.0.3                        leaf1    Up            65000       False   False        Unknown       False                                                             13s
 leaf1-spine1-unnumbered                                   leaf1    Up            external    Unknown False        Unknown       False                                                             13s
 leaf1-spine2              10.0.0.2                        leaf1    Up            65000       False   True         False         False    Idle            13m                0 (L2vpnEvpn)         13s

 % kubectl get bgppeer leaf1-spine1 -o yaml
 # ...
 status:
   conditions:
   - lastTransitionTime: "2026-10-26T07:30:17Z"
     message: One or more conditions are not ready
     observedGeneration: 1
     reason: NotReady
     status: "False"
     type: Ready
   - lastTransitionTime: "2026-10-26T07:30:17Z"
     message: Configured successfully
     observedGeneration: 1
     reason: Configured
     status: "True"
     type: Configured
   - lastTransitionTime: "2026-10-26T07:30:17Z"
     message: Session is not established
     observedGeneration: 1
     reason: Idle
     status: "False"
     type: Operational
   - lastTransitionTime: "2026-10-26T07:30:16Z"
     message: ""
     observedGeneration: 1
     reason: NotPaused
     status: "False"
     type: Paused

Also verified the BGPPeer failure path: leaf1-spine1-filtered references a RoutingPolicy that does not exist.

 % kubectl get bgppeer leaf1-spine1-filtered -o yaml
 # ...
 status:
   conditions:
   - lastTransitionTime: "2026-10-26T07:30:22Z"
     message: One or more conditions are not ready
     observedGeneration: 1
     reason: NotReady
     status: "False"
     type: Ready
   - lastTransitionTime: "2026-10-26T07:30:22Z"
     message: RoutingPolicy bgp-import-policy not found
     observedGeneration: 1
     reason: RoutingPolicyNotFound
     status: "False"
     type: Configured
   - lastTransitionTime: "2026-10-26T07:30:22Z"
     message: Reconciliation has not yet completed
     reason: ReconcilePending
     status: Unknown
     type: Operational
   - lastTransitionTime: "2026-10-26T07:30:22Z"
     message: ""
     observedGeneration: 1
     reason: NotPaused
     status: "False"
     type: Paused

Signed-off-by: Vasyl Paliuha <vasyl.paliuha@sap.com>
@ObuMan ObuMan closed this Oct 25, 2026
@ObuMan
ObuMan deleted the bgp-configured-condition branch October 25, 2026 17:34
@ObuMan
ObuMan restored the bgp-configured-condition branch October 25, 2026 17:34
@ObuMan ObuMan reopened this Oct 25, 2026
Signed-off-by: Vasyl Paliuha <vasyl.paliuha@sap.com>
@ObuMan ObuMan changed the title Add Configured condition to bgp Add Configured condition to bgp and BGP Peer Oct 26, 2026
@felix-kaestner
felix-kaestner merged commit 8a9cf3f into ironcore-dev:main Oct 26, 2026
18 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants