Commit e8a3577
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
- tests/bgpvipconfigs.machineconfiguration.openshift.io
- zz_generated.crd-manifests
- zz_generated.featuregated-crd-manifests/bgpvipconfigs.machineconfiguration.openshift.io
- openapi
- generated_openapi
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
| 32 | + | |
31 | 33 | | |
32 | 34 | | |
33 | 35 | | |
| |||
0 commit comments