Skip to content

Commit 1f2fa3f

Browse files
Merge pull request #2537 from ricky-rav/no_overlay_api
CORENET-6390: API changes and feature gate for OVN-Kubernetes no-overlay mode
2 parents 54a3998 + 221095e commit 1f2fa3f

23 files changed

Lines changed: 6585 additions & 2 deletions

features.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@
8080
| NewOLM| | <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> |
8181
| NewOLMOwnSingleNamespace| | <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> |
8282
| NewOLMWebhookProviderOpenshiftServiceCA| | <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> |
83+
| NoOverlayMode| | | <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> |
8384
| NutanixMultiSubnets| | | <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> |
8485
| OSStreams| | | <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> |
8586
| OVNObservability| | | <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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,14 @@ var (
202202
enable(inDevPreviewNoUpgrade()).
203203
mustRegister()
204204

205+
FeatureGateNoOverlayMode = newFeatureGate("NoOverlayMode").
206+
reportProblemsToJiraComponent("Networking/ovn-kubernetes").
207+
contactPerson("pliurh").
208+
productScope(ocpSpecific).
209+
enhancementPR("https://github.com/openshift/enhancements/pull/1859").
210+
enable(inDevPreviewNoUpgrade(), inTechPreviewNoUpgrade()).
211+
mustRegister()
212+
205213
FeatureGateEVPN = newFeatureGate("EVPN").
206214
reportProblemsToJiraComponent("Networking/ovn-kubernetes").
207215
contactPerson("jcaamano").

openapi/generated_openapi/zz_generated.openapi.go

Lines changed: 81 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

openapi/openapi.json

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41847,6 +41847,25 @@
4184741847
}
4184841848
}
4184941849
},
41850+
"com.github.openshift.api.operator.v1.BGPManagedConfig": {
41851+
"description": "BGPManagedConfig contains configuration options for BGP when routing is \"Managed\".",
41852+
"type": "object",
41853+
"required": [
41854+
"bgpTopology"
41855+
],
41856+
"properties": {
41857+
"asNumber": {
41858+
"description": "asNumber is the 2-byte or 4-byte Autonomous System Number (ASN) to be used in the generated FRR configuration. Valid values are 1 to 4294967295. When omitted, this defaults to 64512.",
41859+
"type": "integer",
41860+
"format": "int64",
41861+
"default": 64512
41862+
},
41863+
"bgpTopology": {
41864+
"description": "bgpTopology defines the BGP topology to be used. Allowed values are \"FullMesh\". When set to \"FullMesh\", every node peers directly with every other node via BGP. This field is required when BGPManagedConfig is specified.",
41865+
"type": "string"
41866+
}
41867+
}
41868+
},
4185041869
"com.github.openshift.api.operator.v1.BootImageSkewEnforcementConfig": {
4185141870
"description": "BootImageSkewEnforcementConfig is used to configure how boot image version skew is enforced on the cluster.",
4185241871
"type": "object",
@@ -46218,6 +46237,24 @@
4621846237
}
4621946238
}
4622046239
},
46240+
"com.github.openshift.api.operator.v1.NoOverlayConfig": {
46241+
"description": "NoOverlayConfig contains configuration options for networks operating in no-overlay mode.",
46242+
"type": "object",
46243+
"required": [
46244+
"outboundSNAT",
46245+
"routing"
46246+
],
46247+
"properties": {
46248+
"outboundSNAT": {
46249+
"description": "outboundSNAT defines the SNAT behavior for outbound traffic from pods. Allowed values are \"Enabled\" and \"Disabled\". When set to \"Enabled\", SNAT is performed on outbound traffic from pods. When set to \"Disabled\", SNAT is not performed and pod IPs are preserved in outbound traffic. This field is required when the network operates in no-overlay mode. This field can be set to any value at installation time and can be changed afterwards.",
46250+
"type": "string"
46251+
},
46252+
"routing": {
46253+
"description": "routing specifies whether the pod network routing is managed by OVN-Kubernetes or users. Allowed values are \"Managed\" and \"Unmanaged\". When set to \"Managed\", OVN-Kubernetes manages the pod network routing configuration through BGP. When set to \"Unmanaged\", users are responsible for configuring the pod network routing. This field is required when the network operates in no-overlay mode. This field is immutable once set.",
46254+
"type": "string"
46255+
}
46256+
}
46257+
},
4622146258
"com.github.openshift.api.operator.v1.NodeDisruptionPolicyClusterStatus": {
4622246259
"description": "NodeDisruptionPolicyClusterStatus is the type for the status object, rendered by the controller as a merge of cluster defaults and user provided policies",
4622346260
"type": "object",
@@ -46734,6 +46771,11 @@
4673446771
"description": "ovnKubernetesConfig contains the configuration parameters for networks using the ovn-kubernetes network project",
4673546772
"type": "object",
4673646773
"properties": {
46774+
"bgpManagedConfig": {
46775+
"description": "bgpManagedConfig configures the BGP properties for networks (default network or CUDNs) in no-overlay mode that specify routing=\"Managed\" in their noOverlayConfig. It is required when noOverlayConfig.routing is set to \"Managed\". When omitted, this means the user does not configure BGP for managed routing. This field can be set at installation time or on day 2, and can be modified at any time.",
46776+
"default": {},
46777+
"$ref": "#/definitions/com.github.openshift.api.operator.v1.BGPManagedConfig"
46778+
},
4673746779
"egressIPConfig": {
4673846780
"description": "egressIPConfig holds the configuration for EgressIP options.",
4673946781
"default": {},
@@ -46772,6 +46814,11 @@
4677246814
"type": "integer",
4677346815
"format": "int64"
4677446816
},
46817+
"noOverlayConfig": {
46818+
"description": "noOverlayConfig contains configuration for no-overlay mode. This configuration applies to the default network only. It is required when transport is \"NoOverlay\". When omitted, this means the user does not configure no-overlay mode options.",
46819+
"default": {},
46820+
"$ref": "#/definitions/com.github.openshift.api.operator.v1.NoOverlayConfig"
46821+
},
4677546822
"policyAuditConfig": {
4677646823
"description": "policyAuditConfig is the configuration for network policy audit events. If unset, reported defaults are used.",
4677746824
"$ref": "#/definitions/com.github.openshift.api.operator.v1.PolicyAuditConfig"
@@ -46780,6 +46827,10 @@
4678046827
"description": "routeAdvertisements determines if the functionality to advertise cluster network routes through a dynamic routing protocol, such as BGP, is enabled or not. This functionality is configured through the ovn-kubernetes RouteAdvertisements CRD. Requires the 'FRR' routing capability provider to be enabled as an additional routing capability. Allowed values are \"Enabled\", \"Disabled\" and ommited. When omitted, this means the user has no opinion and the platform is left to choose reasonable defaults. These defaults are subject to change over time. The current default is \"Disabled\".",
4678146828
"type": "string"
4678246829
},
46830+
"transport": {
46831+
"description": "transport sets the transport mode for pods on the default network. Allowed values are \"NoOverlay\" and \"Geneve\". \"NoOverlay\" avoids tunnel encapsulation, routing pod traffic directly between nodes. \"Geneve\" encapsulates pod traffic using Geneve tunnels between nodes. When omitted, this means the user has no opinion and the platform chooses a reasonable default which is subject to change over time. The current default is \"Geneve\". \"NoOverlay\" can only be set at installation time and cannot be changed afterwards. \"Geneve\" may be set explicitly at any time to lock in the current default.",
46832+
"type": "string"
46833+
},
4678346834
"v4InternalSubnet": {
4678446835
"description": "v4InternalSubnet is a v4 subnet used internally by ovn-kubernetes in case the default one is being already used by something else. It must not overlap with any other subnet being used by OpenShift or by the node network. The size of the subnet must be larger than the number of nodes. Default is 100.64.0.0/16",
4678546836
"type": "string"

0 commit comments

Comments
 (0)