Skip to content

Commit c8c4ce3

Browse files
committed
ClusterNetworkOperator API: promote the additionalRoutingCapabilities gate
Promoting the feature gate as the deployed daemonset is being used by metallb and covered by MetalLB tests. Signed-off-by: Federico Paolinelli <[email protected]>
1 parent e7f23be commit c8c4ce3

File tree

8 files changed

+49
-16
lines changed

8 files changed

+49
-16
lines changed

features.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
| GatewayAPI| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | | |
1010
| NewOLM| | <span style="background-color: #519450">Enabled</span> | | <span style="background-color: #519450">Enabled</span> | | <span style="background-color: #519450">Enabled</span> |
1111
| AWSClusterHostedDNS| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
12-
| AdditionalRoutingCapabilities| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
1312
| AutomatedEtcdBackup| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
1413
| BootcNodeManagement| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
1514
| CSIDriverSharedResource| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
@@ -54,6 +53,7 @@
5453
| VolumeGroupSnapshot| | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
5554
| ExternalOIDC| <span style="background-color: #519450">Enabled</span> | | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
5655
| AWSEFSDriverVolumeMetrics| <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
56+
| AdditionalRoutingCapabilities| <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
5757
| AdminNetworkPolicy| <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
5858
| AlibabaPlatform| <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |
5959
| AzureWorkloadIdentity| <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> | <span style="background-color: #519450">Enabled</span> |

features/features.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ var (
248248
contactPerson("jcaamano").
249249
productScope(ocpSpecific).
250250
enhancementPR(legacyFeatureGateWithoutEnhancement).
251-
enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
251+
enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
252252
mustRegister()
253253

254254
FeatureGateRouteAdvertisements = newFeatureGate("RouteAdvertisements").

operator/v1/types_network.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ type NetworkList struct {
5454

5555
// NetworkSpec is the top-level network configuration object.
5656
// +kubebuilder:validation:XValidation:rule="!has(self.defaultNetwork) || !has(self.defaultNetwork.ovnKubernetesConfig) || !has(self.defaultNetwork.ovnKubernetesConfig.gatewayConfig) || !has(self.defaultNetwork.ovnKubernetesConfig.gatewayConfig.ipForwarding) || self.defaultNetwork.ovnKubernetesConfig.gatewayConfig.ipForwarding == oldSelf.defaultNetwork.ovnKubernetesConfig.gatewayConfig.ipForwarding || self.defaultNetwork.ovnKubernetesConfig.gatewayConfig.ipForwarding == 'Restricted' || self.defaultNetwork.ovnKubernetesConfig.gatewayConfig.ipForwarding == 'Global'",message="invalid value for IPForwarding, valid values are 'Restricted' or 'Global'"
57-
// +openshift:validation:FeatureGateAwareXValidation:featureGate=AdditionalRoutingCapabilities,rule="(has(self.additionalRoutingCapabilities) && ('FRR' in self.additionalRoutingCapabilities.providers)) || !has(self.defaultNetwork) || !has(self.defaultNetwork.ovnKubernetesConfig) || !has(self.defaultNetwork.ovnKubernetesConfig.routeAdvertisements) || self.defaultNetwork.ovnKubernetesConfig.routeAdvertisements != 'Enabled'",message="Route advertisements cannot be Enabled if 'FRR' routing capability provider is not available"
57+
// +openshift:validation:FeatureGateAwareXValidation:featureGate=RouteAdvertisements,rule="(has(self.additionalRoutingCapabilities) && ('FRR' in self.additionalRoutingCapabilities.providers)) || !has(self.defaultNetwork) || !has(self.defaultNetwork.ovnKubernetesConfig) || !has(self.defaultNetwork.ovnKubernetesConfig.routeAdvertisements) || self.defaultNetwork.ovnKubernetesConfig.routeAdvertisements != 'Enabled'",message="Route advertisements cannot be Enabled if 'FRR' routing capability provider is not available"
5858
type NetworkSpec struct {
5959
OperatorSpec `json:",inline"`
6060

operator/v1/zz_generated.crd-manifests/0000_70_network_01_networks-Default.crd.yaml

+33
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,39 @@ spec:
178178
x-kubernetes-list-map-keys:
179179
- name
180180
x-kubernetes-list-type: map
181+
additionalRoutingCapabilities:
182+
description: |-
183+
additionalRoutingCapabilities describes components and relevant
184+
configuration providing additional routing capabilities. When set, it
185+
enables such components and the usage of the routing capabilities they
186+
provide for the machine network. Upstream operators, like MetalLB
187+
operator, requiring these capabilities may rely on, or automatically set
188+
this attribute. Network plugins may leverage advanced routing
189+
capabilities acquired through the enablement of these components but may
190+
require specific configuration on their side to do so; refer to their
191+
respective documentation and configuration options.
192+
properties:
193+
providers:
194+
description: |-
195+
providers is a set of enabled components that provide additional routing
196+
capabilities. Entries on this list must be unique. The only valid value
197+
is currrently "FRR" which provides FRR routing capabilities through the
198+
deployment of FRR.
199+
items:
200+
description: RoutingCapabilitiesProvider is a component providing
201+
routing capabilities.
202+
enum:
203+
- FRR
204+
type: string
205+
maxItems: 1
206+
minItems: 1
207+
type: array
208+
x-kubernetes-list-type: atomic
209+
x-kubernetes-validations:
210+
- rule: self.all(x, self.exists_one(y, x == y))
211+
required:
212+
- providers
213+
type: object
181214
clusterNetwork:
182215
description: |-
183216
clusterNetwork is the IP address pool to use for pod IPs.

operator/v1/zz_generated.featuregated-crd-manifests/networks.operator.openshift.io/AdditionalRoutingCapabilities.yaml

-7
Original file line numberDiff line numberDiff line change
@@ -874,13 +874,6 @@ spec:
874874
type: boolean
875875
type: object
876876
x-kubernetes-validations:
877-
- message: Route advertisements cannot be Enabled if 'FRR' routing capability
878-
provider is not available
879-
rule: (has(self.additionalRoutingCapabilities) && ('FRR' in self.additionalRoutingCapabilities.providers))
880-
|| !has(self.defaultNetwork) || !has(self.defaultNetwork.ovnKubernetesConfig)
881-
|| !has(self.defaultNetwork.ovnKubernetesConfig.routeAdvertisements)
882-
|| self.defaultNetwork.ovnKubernetesConfig.routeAdvertisements !=
883-
'Enabled'
884877
- message: invalid value for IPForwarding, valid values are 'Restricted'
885878
or 'Global'
886879
rule: '!has(self.defaultNetwork) || !has(self.defaultNetwork.ovnKubernetesConfig)

operator/v1/zz_generated.featuregated-crd-manifests/networks.operator.openshift.io/RouteAdvertisements.yaml

+7
Original file line numberDiff line numberDiff line change
@@ -857,6 +857,13 @@ spec:
857857
type: boolean
858858
type: object
859859
x-kubernetes-validations:
860+
- message: Route advertisements cannot be Enabled if 'FRR' routing capability
861+
provider is not available
862+
rule: (has(self.additionalRoutingCapabilities) && ('FRR' in self.additionalRoutingCapabilities.providers))
863+
|| !has(self.defaultNetwork) || !has(self.defaultNetwork.ovnKubernetesConfig)
864+
|| !has(self.defaultNetwork.ovnKubernetesConfig.routeAdvertisements)
865+
|| self.defaultNetwork.ovnKubernetesConfig.routeAdvertisements !=
866+
'Enabled'
860867
- message: invalid value for IPForwarding, valid values are 'Restricted'
861868
or 'Global'
862869
rule: '!has(self.defaultNetwork) || !has(self.defaultNetwork.ovnKubernetesConfig)

payload-manifests/featuregates/featureGate-Hypershift-Default.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@
1616
{
1717
"name": "AWSClusterHostedDNS"
1818
},
19-
{
20-
"name": "AdditionalRoutingCapabilities"
21-
},
2219
{
2320
"name": "AutomatedEtcdBackup"
2421
},
@@ -174,6 +171,9 @@
174171
{
175172
"name": "AWSEFSDriverVolumeMetrics"
176173
},
174+
{
175+
"name": "AdditionalRoutingCapabilities"
176+
},
177177
{
178178
"name": "AdminNetworkPolicy"
179179
},

payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@
1616
{
1717
"name": "AWSClusterHostedDNS"
1818
},
19-
{
20-
"name": "AdditionalRoutingCapabilities"
21-
},
2219
{
2320
"name": "AutomatedEtcdBackup"
2421
},
@@ -174,6 +171,9 @@
174171
{
175172
"name": "AWSEFSDriverVolumeMetrics"
176173
},
174+
{
175+
"name": "AdditionalRoutingCapabilities"
176+
},
177177
{
178178
"name": "AdminNetworkPolicy"
179179
},

0 commit comments

Comments
 (0)