Skip to content

Commit

Permalink
jaegertracing#1307: Adding support for NodePort in Jaeger Query Service
Browse files Browse the repository at this point in the history
Signed-off-by: GitHub <[email protected]>
  • Loading branch information
csp197 authored Feb 16, 2021
1 parent aabb538 commit 5963567
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 7 deletions.
4 changes: 4 additions & 0 deletions pkg/apis/jaegertracing/v1/jaeger_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,10 @@ type JaegerQuerySpec struct {
// See https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
ServiceType v1.ServiceType `json:"serviceType,omitempty"`

// +optional
// NodePort represents the port at which the NodePort service to allocate
NodePort int32 `json:"nodePort,omitempty"`

// +optional
// TracingEnabled if set to false adds the JAEGER_DISABLED environment flag and removes the injected
// agent container from the query component to disable tracing requests to the query service.
Expand Down
26 changes: 19 additions & 7 deletions pkg/service/query.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,19 @@ func NewQueryService(jaeger *v1.Jaeger, selector map[string]string) *corev1.Serv
annotations["service.alpha.openshift.io/serving-cert-secret-name"] = GetTLSSecretNameForQueryService(jaeger)
}

ports := []corev1.ServicePort{
{
Name: getPortNameForQueryService(jaeger),
Port: int32(GetPortForQueryService(jaeger)),
TargetPort: intstr.FromInt(getTargetPortForQueryService(jaeger)),
},
}
if jaeger.Spec.Query.ServiceType == corev1.ServiceTypeNodePort {
ports = append(ports, corev1.ServicePort{
NodePort: int32(GetNodePortForQueryService(jaeger)),
})
}

return &corev1.Service{
TypeMeta: metav1.TypeMeta{
Kind: "Service",
Expand All @@ -41,13 +54,7 @@ func NewQueryService(jaeger *v1.Jaeger, selector map[string]string) *corev1.Serv
Spec: corev1.ServiceSpec{
Selector: selector,
Type: getTypeForQueryService(jaeger),
Ports: []corev1.ServicePort{
{
Name: getPortNameForQueryService(jaeger),
Port: int32(GetPortForQueryService(jaeger)),
TargetPort: intstr.FromInt(getTargetPortForQueryService(jaeger)),
},
},
Ports: ports,
},
}
}
Expand Down Expand Up @@ -90,3 +97,8 @@ func getTypeForQueryService(jaeger *v1.Jaeger) corev1.ServiceType {
}
return corev1.ServiceTypeClusterIP
}

// GetNodePortForQueryService returns the query service NodePort for this Jaeger instance
func GetNodePortForQueryService(jaeger *v1.Jaeger) int {
return int(jaeger.Spec.Query.NodePort)
}

0 comments on commit 5963567

Please sign in to comment.