@@ -167,7 +167,7 @@ func (p *NginxProvisioner) buildNginxResourceObjects(
167167 Annotations : maps .Clone (objectMeta .Annotations ),
168168 }
169169
170- service , err := buildNginxService (serviceObjectMeta , nProxyCfg , ports , selectorLabels )
170+ service , err := buildNginxService (serviceObjectMeta , nProxyCfg , ports , selectorLabels , gateway . Spec . Addresses )
171171 if err != nil {
172172 errs = append (errs , err )
173173 }
@@ -517,6 +517,7 @@ func buildNginxService(
517517 nProxyCfg * graph.EffectiveNginxProxy ,
518518 ports map [int32 ]struct {},
519519 selectorLabels map [string ]string ,
520+ addresses []gatewayv1.GatewaySpecAddress ,
520521) (* corev1.Service , error ) {
521522 var serviceCfg ngfAPIv1alpha2.ServiceSpec
522523 if nProxyCfg != nil && nProxyCfg .Kubernetes != nil && nProxyCfg .Kubernetes .Service != nil {
@@ -572,6 +573,8 @@ func buildNginxService(
572573 },
573574 }
574575
576+ setSvcExternalIPs (svc , addresses )
577+
575578 setIPFamily (nProxyCfg , svc )
576579
577580 setSvcLoadBalancerSettings (serviceCfg , & svc .Spec )
@@ -586,6 +589,14 @@ func buildNginxService(
586589 return svc , nil
587590}
588591
592+ func setSvcExternalIPs (svc * corev1.Service , addresses []gatewayv1.GatewaySpecAddress ) {
593+ for _ , address := range addresses {
594+ if address .Type != nil && * address .Type == gatewayv1 .IPAddressType {
595+ svc .Spec .ExternalIPs = append (svc .Spec .ExternalIPs , address .Value )
596+ }
597+ }
598+ }
599+
589600func setIPFamily (nProxyCfg * graph.EffectiveNginxProxy , svc * corev1.Service ) {
590601 if nProxyCfg != nil && nProxyCfg .IPFamily != nil && * nProxyCfg .IPFamily != ngfAPIv1alpha2 .Dual {
591602 svc .Spec .IPFamilyPolicy = helpers .GetPointer (corev1 .IPFamilyPolicySingleStack )
0 commit comments