Skip to content

Commit 0eb0709

Browse files
authored
Promote ServiceExternalIP to Beta (#6903)
Fixe #6743 Signed-off-by: Xu Liu <[email protected]>
1 parent 8c7344a commit 0eb0709

File tree

11 files changed

+38
-37
lines changed

11 files changed

+38
-37
lines changed

build/charts/antrea/conf/antrea-agent.conf

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ featureGates:
6666
{{- include "featureGate" (dict "featureGates" .Values.featureGates "name" "SecondaryNetwork" "default" false) }}
6767

6868
# Enable managing external IPs of Services of LoadBalancer type.
69-
{{- include "featureGate" (dict "featureGates" .Values.featureGates "name" "ServiceExternalIP" "default" false) }}
69+
{{- include "featureGate" (dict "featureGates" .Values.featureGates "name" "ServiceExternalIP" "default" true) }}
7070

7171
# Enable mirroring or redirecting the traffic Pods send or receive.
7272
{{- include "featureGate" (dict "featureGates" .Values.featureGates "name" "TrafficControl" "default" false) }}

build/charts/antrea/conf/antrea-controller.conf

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ featureGates:
3232
{{- include "featureGate" (dict "featureGates" .Values.featureGates "name" "AntreaIPAM" "default" false) }}
3333

3434
# Enable managing external IPs of Services of LoadBalancer type.
35-
{{- include "featureGate" (dict "featureGates" .Values.featureGates "name" "ServiceExternalIP" "default" false) }}
35+
{{- include "featureGate" (dict "featureGates" .Values.featureGates "name" "ServiceExternalIP" "default" true) }}
3636

3737
# Enable certificate-based authentication for IPSec tunnel.
3838
{{- include "featureGate" (dict "featureGates" .Values.featureGates "name" "IPsecCertAuth" "default" false) }}

build/yamls/antrea-aks.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -4047,7 +4047,7 @@ data:
40474047
# SecondaryNetwork: false
40484048
40494049
# Enable managing external IPs of Services of LoadBalancer type.
4050-
# ServiceExternalIP: false
4050+
# ServiceExternalIP: true
40514051
40524052
# Enable mirroring or redirecting the traffic Pods send or receive.
40534053
# TrafficControl: false
@@ -4480,7 +4480,7 @@ data:
44804480
# AntreaIPAM: false
44814481
44824482
# Enable managing external IPs of Services of LoadBalancer type.
4483-
# ServiceExternalIP: false
4483+
# ServiceExternalIP: true
44844484
44854485
# Enable certificate-based authentication for IPSec tunnel.
44864486
# IPsecCertAuth: false
@@ -5443,7 +5443,7 @@ spec:
54435443
kubectl.kubernetes.io/default-container: antrea-agent
54445444
# Automatically restart Pods with a RollingUpdate if the ConfigMap changes
54455445
# See https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
5446-
checksum/config: e9ed628a60f731498979612c9d28080dc89b4f54b1dcbb5e86fce29df7c482f1
5446+
checksum/config: 370890f19fdae1e870e0cf1d5e4c5227fb343efb9538535a0c65f7b7f6a054f5
54475447
labels:
54485448
app: antrea
54495449
component: antrea-agent
@@ -5687,7 +5687,7 @@ spec:
56875687
annotations:
56885688
# Automatically restart Pod if the ConfigMap changes
56895689
# See https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
5690-
checksum/config: e9ed628a60f731498979612c9d28080dc89b4f54b1dcbb5e86fce29df7c482f1
5690+
checksum/config: 370890f19fdae1e870e0cf1d5e4c5227fb343efb9538535a0c65f7b7f6a054f5
56915691
labels:
56925692
app: antrea
56935693
component: antrea-controller

build/yamls/antrea-eks.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -4047,7 +4047,7 @@ data:
40474047
# SecondaryNetwork: false
40484048
40494049
# Enable managing external IPs of Services of LoadBalancer type.
4050-
# ServiceExternalIP: false
4050+
# ServiceExternalIP: true
40514051
40524052
# Enable mirroring or redirecting the traffic Pods send or receive.
40534053
# TrafficControl: false
@@ -4480,7 +4480,7 @@ data:
44804480
# AntreaIPAM: false
44814481
44824482
# Enable managing external IPs of Services of LoadBalancer type.
4483-
# ServiceExternalIP: false
4483+
# ServiceExternalIP: true
44844484
44854485
# Enable certificate-based authentication for IPSec tunnel.
44864486
# IPsecCertAuth: false
@@ -5443,7 +5443,7 @@ spec:
54435443
kubectl.kubernetes.io/default-container: antrea-agent
54445444
# Automatically restart Pods with a RollingUpdate if the ConfigMap changes
54455445
# See https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
5446-
checksum/config: e9ed628a60f731498979612c9d28080dc89b4f54b1dcbb5e86fce29df7c482f1
5446+
checksum/config: 370890f19fdae1e870e0cf1d5e4c5227fb343efb9538535a0c65f7b7f6a054f5
54475447
labels:
54485448
app: antrea
54495449
component: antrea-agent
@@ -5688,7 +5688,7 @@ spec:
56885688
annotations:
56895689
# Automatically restart Pod if the ConfigMap changes
56905690
# See https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
5691-
checksum/config: e9ed628a60f731498979612c9d28080dc89b4f54b1dcbb5e86fce29df7c482f1
5691+
checksum/config: 370890f19fdae1e870e0cf1d5e4c5227fb343efb9538535a0c65f7b7f6a054f5
56925692
labels:
56935693
app: antrea
56945694
component: antrea-controller

build/yamls/antrea-gke.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -4047,7 +4047,7 @@ data:
40474047
# SecondaryNetwork: false
40484048
40494049
# Enable managing external IPs of Services of LoadBalancer type.
4050-
# ServiceExternalIP: false
4050+
# ServiceExternalIP: true
40514051
40524052
# Enable mirroring or redirecting the traffic Pods send or receive.
40534053
# TrafficControl: false
@@ -4480,7 +4480,7 @@ data:
44804480
# AntreaIPAM: false
44814481
44824482
# Enable managing external IPs of Services of LoadBalancer type.
4483-
# ServiceExternalIP: false
4483+
# ServiceExternalIP: true
44844484
44854485
# Enable certificate-based authentication for IPSec tunnel.
44864486
# IPsecCertAuth: false
@@ -5443,7 +5443,7 @@ spec:
54435443
kubectl.kubernetes.io/default-container: antrea-agent
54445444
# Automatically restart Pods with a RollingUpdate if the ConfigMap changes
54455445
# See https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
5446-
checksum/config: adf1e0f238974d7f83bd321a403f1613ae7e695f06b5366cee645a39141872db
5446+
checksum/config: 107cf72235dd1aabce91dd716bc3bd62a4b6500ef9d7ed309071a78e68b1ede1
54475447
labels:
54485448
app: antrea
54495449
component: antrea-agent
@@ -5685,7 +5685,7 @@ spec:
56855685
annotations:
56865686
# Automatically restart Pod if the ConfigMap changes
56875687
# See https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
5688-
checksum/config: adf1e0f238974d7f83bd321a403f1613ae7e695f06b5366cee645a39141872db
5688+
checksum/config: 107cf72235dd1aabce91dd716bc3bd62a4b6500ef9d7ed309071a78e68b1ede1
56895689
labels:
56905690
app: antrea
56915691
component: antrea-controller

build/yamls/antrea-ipsec.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -4060,7 +4060,7 @@ data:
40604060
# SecondaryNetwork: false
40614061
40624062
# Enable managing external IPs of Services of LoadBalancer type.
4063-
# ServiceExternalIP: false
4063+
# ServiceExternalIP: true
40644064
40654065
# Enable mirroring or redirecting the traffic Pods send or receive.
40664066
# TrafficControl: false
@@ -4493,7 +4493,7 @@ data:
44934493
# AntreaIPAM: false
44944494
44954495
# Enable managing external IPs of Services of LoadBalancer type.
4496-
# ServiceExternalIP: false
4496+
# ServiceExternalIP: true
44974497
44984498
# Enable certificate-based authentication for IPSec tunnel.
44994499
# IPsecCertAuth: false
@@ -5456,7 +5456,7 @@ spec:
54565456
kubectl.kubernetes.io/default-container: antrea-agent
54575457
# Automatically restart Pods with a RollingUpdate if the ConfigMap changes
54585458
# See https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
5459-
checksum/config: 9b14e08a59181e975a2326f4ef4a7c55a1640027bda93ad0ee09fe2ef18b7491
5459+
checksum/config: e40f0f3f4e412b4463e40c1062c1e10e6c66f471d31748e253262499103cb39f
54605460
checksum/ipsec-secret: d0eb9c52d0cd4311b6d252a951126bf9bea27ec05590bed8a394f0f792dcb2a4
54615461
labels:
54625462
app: antrea
@@ -5744,7 +5744,7 @@ spec:
57445744
annotations:
57455745
# Automatically restart Pod if the ConfigMap changes
57465746
# See https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
5747-
checksum/config: 9b14e08a59181e975a2326f4ef4a7c55a1640027bda93ad0ee09fe2ef18b7491
5747+
checksum/config: e40f0f3f4e412b4463e40c1062c1e10e6c66f471d31748e253262499103cb39f
57485748
labels:
57495749
app: antrea
57505750
component: antrea-controller

build/yamls/antrea.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -4047,7 +4047,7 @@ data:
40474047
# SecondaryNetwork: false
40484048
40494049
# Enable managing external IPs of Services of LoadBalancer type.
4050-
# ServiceExternalIP: false
4050+
# ServiceExternalIP: true
40514051
40524052
# Enable mirroring or redirecting the traffic Pods send or receive.
40534053
# TrafficControl: false
@@ -4480,7 +4480,7 @@ data:
44804480
# AntreaIPAM: false
44814481
44824482
# Enable managing external IPs of Services of LoadBalancer type.
4483-
# ServiceExternalIP: false
4483+
# ServiceExternalIP: true
44844484
44854485
# Enable certificate-based authentication for IPSec tunnel.
44864486
# IPsecCertAuth: false
@@ -5443,7 +5443,7 @@ spec:
54435443
kubectl.kubernetes.io/default-container: antrea-agent
54445444
# Automatically restart Pods with a RollingUpdate if the ConfigMap changes
54455445
# See https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
5446-
checksum/config: afc566f7a719f6dd3ff30e3b495df2e4f5991e5a8d0696f891dc9c77ce795e2f
5446+
checksum/config: 3e4001d4c859dc8db92b7889b13c97a682dd8771ef7cfdf3d04ab70f2cf18879
54475447
labels:
54485448
app: antrea
54495449
component: antrea-agent
@@ -5685,7 +5685,7 @@ spec:
56855685
annotations:
56865686
# Automatically restart Pod if the ConfigMap changes
56875687
# See https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments
5688-
checksum/config: afc566f7a719f6dd3ff30e3b495df2e4f5991e5a8d0696f891dc9c77ce795e2f
5688+
checksum/config: 3e4001d4c859dc8db92b7889b13c97a682dd8771ef7cfdf3d04ab70f2cf18879
56895689
labels:
56905690
app: antrea
56915691
component: antrea-controller

docs/feature-gates.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ edit the Agent configuration in the
4848
| `AntreaIPAM` | Agent + Controller | `false` | Alpha | v1.4 | N/A | N/A | Yes | |
4949
| `Multicast` | Agent + Controller | `true` | Beta | v1.5 | v1.12 | N/A | Yes | |
5050
| `SecondaryNetwork` | Agent | `false` | Alpha | v1.5 | N/A | N/A | Yes | |
51-
| `ServiceExternalIP` | Agent + Controller | `false` | Alpha | v1.5 | N/A | N/A | Yes | |
51+
| `ServiceExternalIP` | Agent + Controller | `false` | Beta | v1.5 | v2.3 | N/A | Yes | |
5252
| `TrafficControl` | Agent | `false` | Alpha | v1.7 | N/A | N/A | No | |
5353
| `Multicluster` | Agent + Controller | `false` | Alpha | v1.7 | N/A | N/A | Yes | Controller side feature gate added in v1.10.0 |
5454
| `IPsecCertAuth` | Agent + Controller | `false` | Alpha | v1.7 | N/A | N/A | No | |

docs/service-loadbalancer.md

+8-11
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ no extra configuration change is needed.
6363

6464
#### Enable Service external IP management feature
6565

66-
At this moment, external IP management for Services is an alpha feature of
67-
Antrea. The `ServiceExternalIP` feature gate of `antrea-agent` and
68-
`antrea-controller` must be enabled for the feature to work. You can enable
66+
The `ServiceExternalIP` feature is enabled by default since Antrea 2.3. If you are
67+
using an earlier version, the `ServiceExternalIP` feature gate of `antrea-agent`
68+
and `antrea-controller` must be enabled for the feature to work. You can enable
6969
the `ServiceExternalIP` feature gate in the `antrea-config` ConfigMap in
7070
the Antrea deployment YAML:
7171

@@ -292,6 +292,9 @@ LoadBalancer, and it sets the allocated IP to the `loadBalancer.ingress` field
292292
in the Service resource `status`. MetalLB also supports user specified `loadBalancerIP`
293293
in the Service spec. For more information, please refer to the [MetalLB usage](https://metallb.universe.tf/usage).
294294

295+
To avoid conflicts, make sure not to use the `service.antrea.io/external-ip-pool`
296+
annotation (Antrea ServiceExternalIP feature) when using MetallLB to allocate LoadBalancer IPs.
297+
295298
To learn more about MetalLB concepts and functionalities, you can read the
296299
[MetalLB concepts](https://metallb.universe.tf/concepts).
297300

@@ -306,14 +309,8 @@ kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.11/conf
306309
The commands will deploy MetalLB version 0.13.11 into Namespace
307310
`metallb-system`. You can also refer to this [MetalLB installation
308311
guide](https://metallb.universe.tf/installation) for other ways of installing
309-
MetalLB.
310-
311-
As MetalLB will allocate external IPs for all Services of type LoadBalancer,
312-
once it is running, the Service external IP management feature of Antrea should
313-
not be enabled to avoid conflicts with MetalLB. You can deploy Antrea with the
314-
default configuration (in which the `ServiceExternalIP` feature gate of
315-
`antrea-agent` is set to `false`). MetalLB can work with both Antrea Proxy and
316-
`kube-proxy` configurations of `antrea-agent`.
312+
MetalLB. MetalLB can work with both Antrea Proxy and `kube-proxy`
313+
configurations of `antrea-agent`.
317314

318315
### Configure MetalLB with layer 2 mode
319316

pkg/apiserver/handlers/featuregates/handler_test.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ var (
3636
egressStatus string
3737
multicastStatus string
3838
cleanupStaleUDPSvcConntrackStatus string
39+
serviceExternalIPStatus string
3940
)
4041

4142
func Test_getGatesResponse(t *testing.T) {
@@ -75,7 +76,7 @@ func Test_getGatesResponse(t *testing.T) {
7576
{Component: "agent", Name: "NodePortLocal", Status: "Enabled", Version: "GA"},
7677
{Component: "agent", Name: "PacketCapture", Status: "Disabled", Version: "ALPHA"},
7778
{Component: "agent", Name: "SecondaryNetwork", Status: "Disabled", Version: "ALPHA"},
78-
{Component: "agent", Name: "ServiceExternalIP", Status: "Disabled", Version: "ALPHA"},
79+
{Component: "agent", Name: "ServiceExternalIP", Status: serviceExternalIPStatus, Version: "BETA"},
7980
{Component: "agent", Name: "ServiceTrafficDistribution", Status: "Enabled", Version: "BETA"},
8081
{Component: "agent", Name: "SupportBundleCollection", Status: "Disabled", Version: "ALPHA"},
8182
{Component: "agent", Name: "TopologyAwareHints", Status: "Enabled", Version: "BETA"},
@@ -207,7 +208,7 @@ func Test_getControllerGatesResponse(t *testing.T) {
207208
{Component: "controller", Name: "Multicluster", Status: "Disabled", Version: "ALPHA"},
208209
{Component: "controller", Name: "NetworkPolicyStats", Status: "Enabled", Version: "BETA"},
209210
{Component: "controller", Name: "NodeIPAM", Status: "Enabled", Version: "BETA"},
210-
{Component: "controller", Name: "ServiceExternalIP", Status: "Disabled", Version: "ALPHA"},
211+
{Component: "controller", Name: "ServiceExternalIP", Status: serviceExternalIPStatus, Version: "BETA"},
211212
{Component: "controller", Name: "SupportBundleCollection", Status: "Disabled", Version: "ALPHA"},
212213
{Component: "controller", Name: "Traceflow", Status: "Enabled", Version: "BETA"},
213214
},
@@ -225,9 +226,11 @@ func init() {
225226
egressStatus = "Enabled"
226227
multicastStatus = "Enabled"
227228
cleanupStaleUDPSvcConntrackStatus = "Enabled"
229+
serviceExternalIPStatus = "Enabled"
228230
if runtime.IsWindowsPlatform() {
229231
egressStatus = "Disabled"
230232
multicastStatus = "Disabled"
231233
cleanupStaleUDPSvcConntrackStatus = "Disabled"
234+
serviceExternalIPStatus = "Disabled"
232235
}
233236
}

pkg/features/antrea_features.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ const (
120120
SecondaryNetwork featuregate.Feature = "SecondaryNetwork"
121121

122122
// alpha: v1.5
123+
// beta: v2.3
123124
// Enable controlling Services with ExternalIP.
124125
ServiceExternalIP featuregate.Feature = "ServiceExternalIP"
125126

@@ -209,7 +210,7 @@ var (
209210
Multicast: {Default: true, PreRelease: featuregate.Beta},
210211
Multicluster: {Default: false, PreRelease: featuregate.Alpha},
211212
SecondaryNetwork: {Default: false, PreRelease: featuregate.Alpha},
212-
ServiceExternalIP: {Default: false, PreRelease: featuregate.Alpha},
213+
ServiceExternalIP: {Default: true, PreRelease: featuregate.Beta},
213214
TrafficControl: {Default: false, PreRelease: featuregate.Alpha},
214215
IPsecCertAuth: {Default: false, PreRelease: featuregate.Alpha},
215216
ExternalNode: {Default: false, PreRelease: featuregate.Alpha},

0 commit comments

Comments
 (0)