Skip to content

Commit e8a3577

Browse files
committed
machineconfiguration/v1alpha1: add BGPVIPConfig CRD
Typed, admission-validated configuration API for BGP-based VIP management (enhancement openshift/enhancements#1982, OPNET-595), gated on BGPBasedVIPManagement: a cluster-scoped singleton carrying the local ASN, the default BGP peer set, optional communities and per-host peer overrides, replacing the Dev Preview bgp-vip-config ConfigMap and the serialized-JSON ControllerConfigSpec.BGPVIPPeersJSON user surface (the JSON field remains as machine-config-operator internal transport). API conventions applied: Enabled/Disabled enums instead of booleans, integer-second timer fields (BGP wire-format uint16 seconds), no schema defaults (consumers default and godoc documents omitted behavior), list-map peers/overrides, CEL validation for the singleton name, peer IPs, timer relation and community segment ranges. Peer authentication is secret-only: passwordSecret references a kubernetes.io/basic-auth Secret in the openshift-config namespace ('password' key, 80-byte TCP MD5 limit) - passwords are never stored in this API; the shape mirrors frr-k8s's FRRConfiguration neighbor passwordSecret, which the cluster-network-operator maps it onto. Status carries observedGeneration and two conditions: Rendered (owned by machine-config-operator, set after the per-node peer configuration is applied to the ControllerConfig) and SessionsConfigured (owned by cluster-network-operator, set when the FRR session configuration has been rendered for application). Includes the integration test suite (validation matrix incl. dual-stack peers, host overrides, timer relation, community range and passwordSecret name validation). The consumers (installer, MCO, CNO) are implemented against the inline-password revision and were validated end to end on a live dual-stack baremetal cluster; their passwordSecret rework follows this API. Assisted-By: Claude Fable 5 Signed-off-by: Mat Kowalski <mko@redhat.com>
1 parent 72ae442 commit e8a3577

11 files changed

Lines changed: 2897 additions & 0 deletions

File tree

machineconfiguration/v1alpha1/register.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ func addKnownTypes(scheme *runtime.Scheme) error {
2828
&OSImageStreamList{},
2929
&InternalReleaseImage{},
3030
&InternalReleaseImageList{},
31+
&BGPVIPConfig{},
32+
&BGPVIPConfigList{},
3133
)
3234
metav1.AddToGroupVersion(scheme, GroupVersion)
3335
return nil

0 commit comments

Comments
 (0)