diff --git a/annotation/annotations.gen.go b/annotation/annotations.gen.go
index 73d3258297..d37af603de 100644
--- a/annotation/annotations.gen.go
+++ b/annotation/annotations.gen.go
@@ -784,6 +784,21 @@ Accepted values:
 		},
 	}
 
+	TrafficIngressPublicAddress = Instance {
+		Name:          "traffic.istio.io/ingress-public-address",
+		Description:   "Specifies the public address that can connect to this "+
+                        "service, enabling you to define an address different from "+
+                        "the one provisioned by the load balancer. This is "+
+                        "particularly useful when traffic is DNATed before "+
+                        "reaching a private load balancer.",
+		FeatureStatus: Stable,
+		Hidden:        false,
+		Deprecated:    false,
+		Resources: []ResourceTypes{
+			Service,
+		},
+	}
+
 	TrafficNodeSelector = Instance {
 		Name:          "traffic.istio.io/nodeSelector",
 		Description:   "This annotation is a set of node-labels "+
@@ -962,6 +977,7 @@ func AllResourceAnnotations() []*Instance {
 		&SidecarUserVolumeMount,
 		&SidecarStatusPort,
 		&TopologyControlPlaneClusters,
+		&TrafficIngressPublicAddress,
 		&TrafficNodeSelector,
 		&SidecarTrafficExcludeInboundPorts,
 		&SidecarTrafficExcludeInterfaces,
diff --git a/annotation/annotations.pb.html b/annotation/annotations.pb.html
index 9796c23ead..573049112a 100644
--- a/annotation/annotations.pb.html
+++ b/annotation/annotations.pb.html
@@ -904,6 +904,28 @@ <h2 id="TopologyControlPlaneClusters">topology.istio.io/controlPlaneClusters</h2
     </tr>
   </tbody>
 </table>
+<h2 id="TrafficIngressPublicAddress">traffic.istio.io/ingress-public-address</h2>
+<table class="annotations">
+  <tbody>
+    <tr>
+      <th>Name</th>
+      <td><code>traffic.istio.io/ingress-public-address</code></td>
+    </tr>
+    <tr>
+      <th>Feature Status</th>
+      <td>Stable</td>
+    </tr>
+    <tr>
+      <th>Resource Types</th>
+      <td>[Service]</td>
+    </tr>
+    <tr>
+      <th>Description</th>
+      <td><p>Specifies the public address that can connect to this service, enabling you to define an address different from the one provisioned by the load balancer. This is particularly useful when traffic is DNATed before reaching a private load balancer.</p>
+</td>
+    </tr>
+  </tbody>
+</table>
 <h2 id="TrafficNodeSelector">traffic.istio.io/nodeSelector</h2>
 <table class="annotations">
   <tbody>
diff --git a/annotation/annotations.yaml b/annotation/annotations.yaml
index 22caa6e6b8..fd47e3e75f 100644
--- a/annotation/annotations.yaml
+++ b/annotation/annotations.yaml
@@ -297,6 +297,16 @@ annotations:
     resources:
       - Service
 
+  - name: traffic.istio.io/ingress-public-address
+    featureStatus: Stable
+    description: Specifies the public address that can connect to this service, enabling you to
+      define an address different from the one provisioned by the load balancer. This is particularly useful
+      when traffic is DNATed before reaching a private load balancer.
+    deprecated: false
+    hidden: false
+    resources:
+      - Service
+
   - name: traffic.sidecar.istio.io/includeOutboundIPRanges
     featureStatus: Alpha
     description: A comma separated list of IP ranges in CIDR form to redirect to Envoy