@@ -39,6 +39,11 @@ const (
3939 defaultImagePullPolicy = corev1 .PullIfNotPresent
4040)
4141
42+ type PortInfo struct {
43+ Port int32
44+ Protocol corev1.Protocol
45+ }
46+
4247var emptyDirVolumeSource = corev1.VolumeSource {EmptyDir : & corev1.EmptyDirVolumeSource {}}
4348
4449func (p * NginxProvisioner ) buildNginxResourceObjects (
@@ -127,9 +132,18 @@ func (p *NginxProvisioner) buildNginxResourceObjects(
127132 openshiftObjs = p .buildOpenshiftObjects (objectMeta )
128133 }
129134
130- ports := make (map [int32 ]struct {} )
135+ ports := make (map [int32 ]PortInfo )
131136 for _ , listener := range gateway .Spec .Listeners {
132- ports [int32 (listener .Port )] = struct {}{}
137+ var protocol corev1.Protocol
138+ switch listener .Protocol {
139+ case gatewayv1 .TCPProtocolType :
140+ protocol = corev1 .ProtocolTCP
141+ case gatewayv1 .UDPProtocolType :
142+ protocol = corev1 .ProtocolUDP
143+ default :
144+ protocol = corev1 .ProtocolTCP
145+ }
146+ ports [int32 (listener .Port )] = PortInfo {Port : int32 (listener .Port ), Protocol : protocol }
133147 }
134148
135149 service := buildNginxService (objectMeta , nProxyCfg , ports , selectorLabels )
@@ -418,7 +432,7 @@ func (p *NginxProvisioner) buildOpenshiftObjects(objectMeta metav1.ObjectMeta) [
418432func buildNginxService (
419433 objectMeta metav1.ObjectMeta ,
420434 nProxyCfg * graph.EffectiveNginxProxy ,
421- ports map [int32 ]struct {} ,
435+ ports map [int32 ]PortInfo ,
422436 selectorLabels map [string ]string ,
423437) * corev1.Service {
424438 var serviceCfg ngfAPIv1alpha2.ServiceSpec
@@ -440,16 +454,17 @@ func buildNginxService(
440454 }
441455
442456 servicePorts := make ([]corev1.ServicePort , 0 , len (ports ))
443- for port := range ports {
457+ for _ , portInfo := range ports {
444458 servicePort := corev1.ServicePort {
445- Name : fmt .Sprintf ("port-%d" , port ),
446- Port : port ,
447- TargetPort : intstr .FromInt32 (port ),
459+ Name : fmt .Sprintf ("port-%d" , portInfo .Port ),
460+ Port : portInfo .Port ,
461+ TargetPort : intstr .FromInt32 (portInfo .Port ),
462+ Protocol : portInfo .Protocol ,
448463 }
449464
450465 if serviceType != corev1 .ServiceTypeClusterIP {
451466 for _ , nodePort := range serviceCfg .NodePorts {
452- if nodePort .ListenerPort == port {
467+ if nodePort .ListenerPort == portInfo . Port {
453468 servicePort .NodePort = nodePort .Port
454469 }
455470 }
@@ -506,7 +521,7 @@ func (p *NginxProvisioner) buildNginxDeployment(
506521 nProxyCfg * graph.EffectiveNginxProxy ,
507522 ngxIncludesConfigMapName string ,
508523 ngxAgentConfigMapName string ,
509- ports map [int32 ]struct {} ,
524+ ports map [int32 ]PortInfo ,
510525 selectorLabels map [string ]string ,
511526 agentTLSSecretName string ,
512527 dockerSecretNames map [string ]string ,
@@ -567,18 +582,19 @@ func (p *NginxProvisioner) buildNginxPodTemplateSpec(
567582 nProxyCfg * graph.EffectiveNginxProxy ,
568583 ngxIncludesConfigMapName string ,
569584 ngxAgentConfigMapName string ,
570- ports map [int32 ]struct {} ,
585+ ports map [int32 ]PortInfo ,
571586 agentTLSSecretName string ,
572587 dockerSecretNames map [string ]string ,
573588 jwtSecretName string ,
574589 caSecretName string ,
575590 clientSSLSecretName string ,
576591) corev1.PodTemplateSpec {
577592 containerPorts := make ([]corev1.ContainerPort , 0 , len (ports ))
578- for port := range ports {
593+ for _ , portInfo := range ports {
579594 containerPort := corev1.ContainerPort {
580- Name : fmt .Sprintf ("port-%d" , port ),
581- ContainerPort : port ,
595+ Name : fmt .Sprintf ("port-%d" , portInfo .Port ),
596+ ContainerPort : portInfo .Port ,
597+ Protocol : portInfo .Protocol ,
582598 }
583599 containerPorts = append (containerPorts , containerPort )
584600 }
0 commit comments